---
title: "One document's metadata"
method: GET
path: "/v1/documents/{id}"
tags: ["Documents"]
---

# One document's metadata

`GET /v1/documents/{id}`

## Request

- Base URL: `https://api.openpublica.com`
- URL: `https://api.openpublica.com/v1/documents/{id}`
- Auth: none declared

## Path parameters

- `id` string, required

## Response `200`

The document

- object
  - `data` Document, required
    - `document_id` string
    - `government_id` string
    - `title` string
    - `status` 'converted' | 'superseded' | 'failed': `converted` is served and searchable. `superseded` is retired by a newer edition, stored but not searchable. `failed` means WE HOLD THIS PIN AND COULD NOT READ IT — not that the government published nothing.
    - `element` string, nullable: The slot whose pin acquired this document.
    - `covers` string[]: Every slot the document answers for. A city binding one general plan pins it as `combined` and it answers for all eight elements — reading `element` alone makes the rest look unpublished.
    - `page_count` integer, nullable
    - `source_url` string, uri: Always the government's own copy. Cite it, especially on a failed entry.
    - `markdown_url` string, uri, nullable
    - `availability` DocumentAvailability: Present ONLY when something is wrong — a clean document omits it, so its presence is the signal. Read it before quoting figures.
      - `complete` boolean
      - `reason` string: Drawn from a fixed caller-safe set.
      - `problems` string[]
  - `meta` object, required

## Other responses

- `404`: No such record.
- `429`: Per-IP rate limit exceeded.
- `500`: Internal server error.

---

[API](https://skmtc.dev/openpublica/apis/openpublica-api.md) · [All operations](https://skmtc.dev/openpublica/apis/openpublica-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openpublica/apis/openpublica-api/revisions/91a0635e7686?raw)
