---
title: "Get Bill Document Text"
method: GET
path: "/api/v1/bills/{bill_id}/documents/{document_id}/text"
tags: ["bills"]
---

# Get Bill Document Text

`GET /api/v1/bills/{bill_id}/documents/{document_id}/text`

## Request

- Base URL: `https://api.billcommons.org`
- URL: `https://api.billcommons.org/api/v1/bills/{bill_id}/documents/{document_id}/text`
- Auth: none declared

Extracted full text of one document, as JSON.

Reads the same `bill_documents.extracted_text` column /compare diffs and
MCP's `get_bill_record(include_full_text=True)` read (see
`compare_bill_versions` above and apps/mcp/billcommons_mcp/tools.py) --
exposed directly here rather than only reachable via a diff or the MCP
tool. Heavy route: see `_HEAVY_ROUTE_PATTERNS` in rate_limit.py, same
quota/rate-limit tier as /compare and /full.

## Path parameters

- `bill_id` string, uuid, required
- `document_id` string, uuid, required

## Response `200`

Successful Response

- BillDocumentTextOut
  - `document_id` string, uuid, required
  - `bill_id` string, uuid, required
  - `version_id` string, uuid, required
  - `extracted_text` string, required
  - `char_count` integer, required
  - `fulltext_status` string, nullable: Parsed from bill_documents.license_note's `fulltext_status=<token>` encoding; null if the note doesn't carry one.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/billcommons/apis/bill-commons-api.md) · [All operations](https://skmtc.dev/billcommons/apis/bill-commons-api/llms.txt) · [OpenAPI document](https://skmtc.dev/billcommons/apis/bill-commons-api/revisions/bfb8cd50a317?raw)
