---
title: "Get Spreadsheet Summary"
method: GET
path: "/api/v1/spreadsheets/{spreadsheet_id}/summary"
tags: ["spreadsheets"]
---

# Get Spreadsheet Summary

`GET /api/v1/spreadsheets/{spreadsheet_id}/summary`

What a card shows — title, grades, thumbnail — without running a source.

## Path parameters

- `spreadsheet_id` string, uuid, required

## Response `200`

Successful Response

- SpreadsheetSummary
  - `id` string, uuid, required
  - `title` string, required
  - `state` 'streaming' | 'draft' | 'edited' | 'approved' | 'sent' | 'archived', required
  - `kind` 'report' | 'document' | 'table' | 'spreadsheet' | 'visualization', required — What a document IS, derived from its body — never declared by an author. Orthogonal to :class:`ArtifactType`, which says which product surface owns the row. For a ``document`` the kind says whether it reads as a written report, plain prose, a single table or a single chart, and :func:`app.artifacts.public.doc_body.classify_doc_kind` is the only thing that decides. ``spreadsheet`` is reserved for a real spreadsheet artifact (sheets, cells, formulas — PLAN-spreadsheet-artifact.md). A Doc that is one table is a ``table``: two different things must not share one name in the gallery.
  - `folder_id` string, uuid, nullable, required
  - `conversation_id` string, uuid, nullable, required
  - `version_number` integer, required
  - `last_author` 'agent' | 'user', required
  - `last_author_user_id` string, uuid, nullable, required
  - `created_by_user_id` string, uuid, nullable, required
  - `period` DocPeriod, required — Min/max over the doc's widget fences — the list's subtitle.
    - `start_date` string, date, required
    - `end_date` string, date, required
  - `grades` Grades, required
    - `audited` integer, required
    - `cited` integer, required
    - `unverified` integer, required
  - `published_version` integer, nullable, required
  - `preview_text` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `preview` SpreadsheetPreview, required — The top-left of the first sheet, formatted, for a card thumbnail (D18). Stored at save so a chat card or gallery card never runs a source query.
    - `cells` PreviewCell[], required
      - `ref` string, required
      - `text` string, required
      - `numeric` boolean, required
      - `style` CellStyle, required
        - `role` 'body' | 'title' | 'caption' | 'heading' | 'header' | 'note'
        - `bold` boolean
        - `italic` boolean
        - `align` 'auto' | 'left' | 'center' | 'right'
        - `wrap` boolean
        - `fill` 'none' | 'accent' | 'muted'
    - `column_widths` object, required

## Other responses

- `403` — Error
- `404` — Error
- `422` — Validation Error

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/6b978a517225?raw)
