---
title: "Get Tdoc"
method: GET
path: "/tdocs/{tdoc_id}"
tags: ["tdocs"]
---

# Get Tdoc

`GET /tdocs/{tdoc_id}`

## Request

- Base URL: `https://api.3gppscout.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.3gppscout.com/tdocs/{tdoc_id}`
- Auth: none declared

Get one 3GPP TDoc (meeting contribution, CR, LS, summary, report) by ID, for example R1-2605951.

Returns register metadata: title, doc_kind, register status, meeting, agenda item, source companies
with roles (submitter, co_submitter, editor), revision links, and the official 3GPP download URL.

With `include=units`, returns the document's units as verbatim quotes with a page or paragraph anchor.
`units_source` says which extraction was used: "t4" (proposals, observations, agreements, working
assumptions, conclusions, FFS items, CR changes, LS actions) or "t1" (numbered "Proposal N" and
"Observation N" only, before full structuring has run). Long unit lists are cut at a size budget
(`units_truncated`, `units_total`, `units_next_text_offset`). With `include=text`, returns document text
blocks with anchors.

Excerpt limit: API and MCP calls return one TDoc section and at most 2,000 words of units and text
together. `excerpt` reports `returned_words`, `limit_words`, `truncated` and the `official_url` of the
full document on the 3GPP server; `text.truncation_reason` is `one_section_per_call` or `word_limit`,
and `text.next_offset` starts the next section.

`content.status` is `complete`, `partial` (with `partial_reasons`), or `not_retrieved`. When it is
`not_retrieved`, call `POST /tdocs/{tdoc_id}/fetch` (MCP tool `fetch_tdoc`) to parse it on demand.

Errors: 404 `tdoc_not_indexed` (ID not in the catalog yet, call fetch), 404 `tdoc_not_found`,
410 `tdoc_withdrawn` (metadata in `detail.tdoc`).

Evidence rules: a company's position comes only from a TDoc where it is submitter or co_submitter.
Register status is a decision source. Proposal text is not an agreement.

## Path parameters

- `tdoc_id` string, required

## Query parameters

- `include` string, nullable: Comma-separated extras: 'units' (labeled proposals, observations, agreements, and other units as quotes with anchors), 'text' (document text blocks with anchors), 'revisions' (revision chain). Example: include=units,revisions.
- `text_offset` integer: First text block to return when include has 'text'. Use text.next_offset to page.
- `max_text_chars` integer: Character budget for text blocks.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/3gppscout/apis/3gpp-scout-api.md) · [All operations](https://skmtc.dev/3gppscout/apis/3gpp-scout-api/llms.txt) · [OpenAPI document](https://skmtc.dev/3gppscout/apis/3gpp-scout-api/revisions/60bd6896e5b9?raw)
