---
title: "Get annotated document"
method: GET
path: "/contents/v1/documents/{content_id}/annotated"
tags: ["Documents"]
---

# Get annotated document

`GET /contents/v1/documents/{content_id}/annotated`

Returns a time-limited pre-signed URL to download **private** document content in annotated (structured) JSON format. Use this only for documents you ingested via the Content API (connectors or direct upload). When you GET the URL, the response contains document content, metadata and annotations. The URL expires after 24 hours; request a new one if needed.

## Path parameters

- `content_id` string, required

## Response `200`

The endpoint returns an object containing a pre-signed url. Perform a GET request on that URL to retrieve the annotated document in JSON format. The URL is valid for 24 hours; request a new one if needed.

- object
  - `url` string, uri, required — Pre-signed URL that provides temporary access to the annotated document in JSON format. When you access the URL, you receive the complete document with structure: document (metadata), content (title and body blocks), profiling (processor timestamps), and analytics (document-level metrics, events array, entities array).
  - `document` PrivateDocument — Document metadata returned when accessing the annotated document URL.
    - `rp_document_id` string, required — Internal document identifier
    - `source` PrivateDocumentSource, required — Information about the document source.
      - `rp_source_id` string, required — Identifier of the source system
      - `name` string, required — Source display name
      - `rank` integer, required — Ranking classification of the source
    - `timestamp` string, date-time, required — Document timestamp in ISO format
    - `metadata` PrivateDocumentMetadata, required — Additional document metadata.
      - `file_name` string — Original file name of the uploaded document
      - `content_type` string — MIME type of the document
      - `user_id` string — ID of the user who uploaded the document
      - `org_id` string — ID of the organization
  - `content` PrivateDocumentContent — Structured content extracted from the document including title and body blocks.
    - `title` ContentTitleBlock, required — A title content block representing the title of the document.
      - `text` string — Extracted document title
      - `sentences` Sentence[] — Index ranges for title text segments
        - `start` integer, required — Start character index of the sentence.
        - `end` integer, required — End character index of the sentence.
        - `sentiment` string — Sentiment score ranging from -1.00 (negative) to 1.00 (positive).
        - `sentiment_confidence` string — Confidence score for the sentiment analysis (0.00 to 1.00).
      - `entities` TextEntity[] — Entities detected inside the title text
        - `rp_entity_id` string, required — Bigdata.com unique entity identifier.
        - `name` string — Display name of the entity.
        - `type` 'COMPANY' | 'PERSON' | 'PLACE' | 'PRODUCT' | 'ORGANIZATION' | 'ETF' — Entity type classification.
        - `start` integer, required — Start character index where the entity appears in the text.
        - `end` integer, required — End character index where the entity appears in the text.
      - `events` ContentTitleInlineEvent[] — Optional title-span events with character offsets into the title text.
        - `event_similarity_key` string
        - `start` integer — Start character index in the title text.
        - `end` integer — End character index in the title text.
    - `body` ContentBlock[], required — Array of content blocks extracted from the document
      - `type` 'TEXT' | 'TABLE' | 'LIST_ORDERED' | 'LIST_UNORDERED' | 'HEADING' | 'FOOTER', required — Type of content block
      - `text` string — Text content (for TEXT blocks)
      - `normalized_coordinates` number[] — Normalized coordinates for the block position
      - `sentences` Sentence[] — Sentence segmentation with sentiment
        - `start` integer, required — Start character index of the sentence.
        - `end` integer, required — End character index of the sentence.
        - `sentiment` string — Sentiment score ranging from -1.00 (negative) to 1.00 (positive).
        - `sentiment_confidence` string — Confidence score for the sentiment analysis (0.00 to 1.00).
      - `entities` TextEntity[] — Entities detected in the text
        - `rp_entity_id` string, required — Bigdata.com unique entity identifier.
        - `name` string — Display name of the entity.
        - `type` 'COMPANY' | 'PERSON' | 'PLACE' | 'PRODUCT' | 'ORGANIZATION' | 'ETF' — Entity type classification.
        - `start` integer, required — Start character index where the entity appears in the text.
        - `end` integer, required — End character index where the entity appears in the text.
      - `rows` object[] — Table rows (for TABLE blocks)
      - `entries` object[] — List entries (for LIST blocks)
  - `profiling` object — **Returned by URL** - Processor timestamps for collection.
    - `collection` object
      - `processor_in_timestamp_utc` string
      - `processor_out_timestamp_utc` string
  - `analytics` object — **Returned by URL** - Document-level analytics, events array, and entities array.
    - `document` object — Document-level analytics (analytics_version, document_type, document_sentiment, etc.).
    - `events` unknown[] — Detected events with topic, type, relevance, roles, and sentiment.
      - unknown
    - `entities` unknown[] — Detected entities with entity_type, entity_name, relevance, and sentiment.
      - unknown

## Other responses

- `401` — Unauthorized - Invalid or missing API key.
- `403` — You do not have permission to access this document.
- `404` — No document found with this content_id.

---

[API](https://skmtc.dev/bigdata/apis/bigdata-structured-data-api.md) · [All operations](https://skmtc.dev/bigdata/apis/bigdata-structured-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bigdata/bigdata-structured-data-api/revisions/18082de268c4/schema)
