---
title: "List Guidelines"
method: GET
path: "/marketing/guidelines/documents"
tags: ["marketing-guidelines"]
---

# List Guidelines

`GET /marketing/guidelines/documents`

Every marketing standard, with the state of its requirement library.

The one endpoint the guideline list polls while anything is running: it already carries each
guideline's decomposition status, so there is never a request per row.

## Response `200`

Successful Response

- GuidelineSummary[]
  - `file_id` string, uuid, required
  - `filename` string, nullable, required
  - `upload_id` string, uuid, nullable, required
  - `newer_version_processing` boolean, required
  - `active_requirement_count` integer, required
  - `total_requirement_count` integer, required
  - `needs_requirements` boolean, required
  - `stale` boolean, required
  - `latest_decomposition` DecompositionSummary, required — One extraction run, and how it went. `status` is the *effective* status: a run whose worker never reported back reads as failed rather than as permanently running, so the surface never offers a spinner that will not resolve.
    - `decomposition_id` string, uuid, required
    - `upload_id` string, uuid, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed', required — Lifecycle of one decomposition run.
    - `stage` 'queued' | 'downloading' | 'extracting' | 'grounding' | 'storing' | 'done', required — Where a running decomposition has got to. Only the stages a watching human can perceive. Resolving the model's channel names to `MarketingCollateralType` and writing the rows are both sub-second, so they are not stages — a step that never renders is a step that misleads. `EXTRACTING` is the one that takes the minute.
    - `queue_wait_seconds` integer, nullable, required
    - `requirements_total` integer, nullable, required
    - `requirements_written` integer, required
    - `page_count` integer, nullable, required
    - `error` string, nullable, required
    - `started_at` string, date-time, nullable, required
    - `finished_at` string, date-time, nullable, required
    - `requested_by_email` string, nullable, required
    - `superseded` boolean, required

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/3ff4c0bd276b/schema)
