---
title: "Read a page range as markdown"
method: GET
path: "/v1/documents/{id}/text"
tags: ["Documents"]
---

# Read a page range as markdown

`GET /v1/documents/{id}/text`

## Request

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

Bounded to 40 pages and 120k characters, CLAMPED rather than rejected. Text is assembled from the page windows overlapping the range, so `covered` may differ from `requested` — cite `covered`.

Pages are transcribed from rendered pixels, not the PDF text layer, so scanned tables come through as text and an unreadable page is a marked hole, never a silent omission.

## Path parameters

- `id` string, required

## Query parameters

- `first_page` integer
- `last_page` integer

## Response `200`

The markdown for the covered range

- object
  - `data` object, required
    - `text` string
    - `requested` object
      - `first_page` integer
      - `last_page` integer
    - `covered` object
      - `first_page` integer
      - `last_page` integer
  - `meta` object, required
    - `max_page_span` integer

## Other responses

- `400`: Malformed or invalid parameters.
- `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)
