---
title: "Get 1099-Consolidated extraction response in 5-tab tree format"
method: POST
path: "/internal/api/document/1099c/{document_id}/response"
tags: ["DOCUMENT"]
---

# Get 1099-Consolidated extraction response in 5-tab tree format

`POST /internal/api/document/1099c/{document_id}/response`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/document/1099c/{document_id}/response`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Returns the same year-grouped extraction data as the v2 endpoint, but reshaped for the 1099-Consolidated UI: a common header (TaxYear, Payer.*, Recipient.*) plus 5 tabs (1099-INT, 1099-DIV, 1099-OID, 1099-MISC, 1099-B) inside each year. The 1099-B tab is nested as Part I/II > Box A-F > leaves. 1099-DA (Form 8949 codes G-L) is intentionally excluded from this endpoint. Returns HTTP 400 if the document is not classified as 1099-Consolidated; use the /v2/{document_id}/response endpoint for other document types.

## Path parameters

- `document_id` string, uuid, required: Document ID

## Request body

- DocumentExtractionRequest: Request schema for document extraction response
  - `client_id` string, uuid, required: Client ID for the document

## Response `200`

Successful Response

- Document1099CExtractionResponse: Response schema for the 1099-Consolidated tree-format extraction endpoint.
  - `document_classification` string, nullable: DEPRECATED legacy LLM classification varchar from tenant_client_dms_documents.document_classification. Frozen at upload — NOT updated on reclassify, so it goes stale once the user supersedes the type. Use document_type_identifier for routing.
  - `document_type_identifier` string, nullable: Canonical document_identifier of the document's CURRENT type (e.g. 'FORM_1099_CONSOLIDATED_STATEMENT'), resolved from the canonical document_type_id. Source of truth after a reclassify — route on THIS, not on the (possibly stale) document_classification.
  - `data` YearGroup1099C[], required: List of year-grouped 1099-C tree data, sorted by year (descending)
    - `year` integer, required: Tax year for this group
    - `tabs` Tab1099C[]: 6 tabs in order: Basic Info (TaxYear, Payer.*, Recipient.* top-of-form metadata), 1099-INT, 1099-DIV, 1099-OID, 1099-MISC, 1099-B.
      - `tab_key` string, required: Stable tab key. One of: BASIC_INFO (top-of-form metadata: TaxYear, Payer.*, Recipient.*), FORM_1099_INT, FORM_1099_DIV, FORM_1099_OID, FORM_1099_MISC, FORM_1099_B.
      - `tab_label` string, required: Human-readable tab label
      - `nodes` union[]: Top-level nodes inside this tab
        - union
          - LeafNode1099C: One extracted attribute as a leaf in the 1099-C tree.
            - `node_type` 'leaf': Discriminator: this is a leaf
            - `id` string, uuid, required: Extracted attribute ID
            - `attribute_identifier` string, required: DB attribute_identifier (e.g. FORM_1099_INT_BOX_1)
            - `key` string, required: Vendor attribute name (dotted path, e.g. form_1099_int.box_1)
            - `display_name` string, required: Human-readable label for this row
            - `datatype` string, required: Data type of the attribute
            - `value` union, required: Extracted value (formatted for ADDRESS / OBJECT / ARRAY datatypes)
              - …
            - `confidence_score` number, nullable: Confidence score (0.0 to 1.0)
            - `bounding_regions` BoundingRegion[]: Bounding regions where the attribute was found
              - …
            - `status` string, required: Validation status (e.g., 'NEEDS_REVIEW', 'VERIFIED')
            - `document_key` string, nullable: Original line item name (for LLM extractions only)
          - SectionNode1099C: A nested section in the 1099-C tree (e.g. Part I, or Box A — Basis Reported to IRS).
            - `node_type` 'section': Discriminator: this is a section
            - `section_key` string, required: Stable section key (e.g. PART_I, BOX_A)
            - `section_label` string, required: Human-readable section label for the UI
            - `children` union[]: Child nodes (leaves and/or sub-sections)
              - …
  - `provided_document_type_id` string, uuid, nullable: Document type UUID from POST /internal/api/document/extract request body when `document_type_id` was supplied (reextract-with-type).

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
