Skip to content

Extract

Create Extract Job
POST/api/v2/extract
List Extract Jobs
GET/api/v2/extract
Get Extract Job
GET/api/v2/extract/{job_id}
Delete Extract Job
DELETE/api/v2/extract/{job_id}
Validate Extraction Schema
POST/api/v2/extract/schema/validation
Generate Extraction Schema
POST/api/v2/extract/schema/generate
ModelsExpand Collapse
ExtractConfiguration = object { extract_options, parse_config_id, parse_tier }

Extraction configuration combining parse and extract settings.

extract_options: ExtractOptions { data_schema, cite_sources, confidence_scores, 4 more }

Extract-specific configuration options including the data schema

data_schema: map[map[unknown] or array of unknown or string or 2 more]

JSON schema used for extraction

Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
cite_sources: optional boolean

Include citations in results

confidence_scores: optional boolean

Include confidence scores in results

extract_version: optional string

Extraction algorithm version to use (e.g., '2026-01-08', 'latest')

extraction_target: optional "per_doc" or "per_page" or "per_table_row"

Extraction scope: per_doc, per_page, or per_table_row

Accepts one of the following:
"per_doc"
"per_page"
"per_table_row"
system_prompt: optional string

Custom system prompt for extraction

tier: optional "cost_effective" or "agentic"

Extraction tier: cost_effective (10 credits) or agentic (20 credits)

Accepts one of the following:
"cost_effective"
"agentic"
parse_config_id: optional string

Parse config ID used for extraction

parse_tier: optional string

Parse tier to use for extraction (e.g. fast, cost_effective, agentic).

ExtractJobMetadata = object { field_metadata, parse_job_id, parse_tier, usage }

Extraction metadata.

field_metadata: optional ExtractedFieldMetadata { document_metadata, page_metadata, row_metadata }

Metadata for extracted fields including document, page, and row level info.

document_metadata: optional map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
page_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
row_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
parse_job_id: optional string

Reference to the ParseJob ID used for parsing

parse_tier: optional string

Parse tier used for parsing the document

usage: optional ExtractJobUsage { num_document_tokens, num_output_tokens, num_pages_extracted }

Extraction usage metrics.

num_document_tokens: optional number

Number of document tokens

num_output_tokens: optional number

Number of output tokens

num_pages_extracted: optional number

Number of pages extracted

ExtractJobUsage = object { num_document_tokens, num_output_tokens, num_pages_extracted }

Extraction usage metrics.

num_document_tokens: optional number

Number of document tokens

num_output_tokens: optional number

Number of output tokens

num_pages_extracted: optional number

Number of pages extracted

ExtractOptions = object { data_schema, cite_sources, confidence_scores, 4 more }

Extract-specific configuration options.

data_schema: map[map[unknown] or array of unknown or string or 2 more]

JSON schema used for extraction

Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
cite_sources: optional boolean

Include citations in results

confidence_scores: optional boolean

Include confidence scores in results

extract_version: optional string

Extraction algorithm version to use (e.g., '2026-01-08', 'latest')

extraction_target: optional "per_doc" or "per_page" or "per_table_row"

Extraction scope: per_doc, per_page, or per_table_row

Accepts one of the following:
"per_doc"
"per_page"
"per_table_row"
system_prompt: optional string

Custom system prompt for extraction

tier: optional "cost_effective" or "agentic"

Extraction tier: cost_effective (10 credits) or agentic (20 credits)

Accepts one of the following:
"cost_effective"
"agentic"
ExtractV2Job = object { id, created_at, parameters, 9 more }

An extraction job.

id: string

Unique job identifier (job_id)

created_at: string

Creation timestamp

formatdate-time
parameters: map[map[unknown] or array of unknown or string or 2 more]

Job configuration parameters (includes parse_config_id, extract_options)

Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
project_id: string

Project this job belongs to

status: "PENDING" or "THROTTLED" or "RUNNING" or 3 more

Current status of the job

Accepts one of the following:
"PENDING"
"THROTTLED"
"RUNNING"
"COMPLETED"
"FAILED"
"CANCELLED"
type: "url" or "file_id" or "parse_job_id"

Type of document input.

Accepts one of the following:
"url"
"file_id"
"parse_job_id"
updated_at: string

Last update timestamp

formatdate-time
value: string

Document identifier (URL, file ID, or parse job ID).

configuration_id: optional string

Extract configuration ID (ProductConfiguration) used for this job (if any)

error_message: optional string

Error message if failed

extract_metadata: optional ExtractJobMetadata { field_metadata, parse_job_id, parse_tier, usage }

Extraction metadata.

field_metadata: optional ExtractedFieldMetadata { document_metadata, page_metadata, row_metadata }

Metadata for extracted fields including document, page, and row level info.

document_metadata: optional map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
page_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
row_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
parse_job_id: optional string

Reference to the ParseJob ID used for parsing

parse_tier: optional string

Parse tier used for parsing the document

usage: optional ExtractJobUsage { num_document_tokens, num_output_tokens, num_pages_extracted }

Extraction usage metrics.

num_document_tokens: optional number

Number of document tokens

num_output_tokens: optional number

Number of output tokens

num_pages_extracted: optional number

Number of pages extracted

extract_result: optional map[map[unknown] or array of unknown or string or 2 more] or array of map[map[unknown] or array of unknown or string or 2 more]

Extracted data (object or array depending on extraction_target)

Accepts one of the following:
UnionMember0 = map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
UnionMember1 = array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
ExtractV2JobCreate = object { type, value, config, 2 more }

Request to create an extraction job. Provide configuration_id or inline config.

type: "url" or "file_id" or "parse_job_id"

Type of document input.

Accepts one of the following:
"url"
"file_id"
"parse_job_id"
value: string

Document identifier (URL, file ID, or parse job ID).

config: optional ExtractConfiguration { extract_options, parse_config_id, parse_tier }

Extraction configuration combining parse and extract settings.

extract_options: ExtractOptions { data_schema, cite_sources, confidence_scores, 4 more }

Extract-specific configuration options including the data schema

data_schema: map[map[unknown] or array of unknown or string or 2 more]

JSON schema used for extraction

Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
cite_sources: optional boolean

Include citations in results

confidence_scores: optional boolean

Include confidence scores in results

extract_version: optional string

Extraction algorithm version to use (e.g., '2026-01-08', 'latest')

extraction_target: optional "per_doc" or "per_page" or "per_table_row"

Extraction scope: per_doc, per_page, or per_table_row

Accepts one of the following:
"per_doc"
"per_page"
"per_table_row"
system_prompt: optional string

Custom system prompt for extraction

tier: optional "cost_effective" or "agentic"

Extraction tier: cost_effective (10 credits) or agentic (20 credits)

Accepts one of the following:
"cost_effective"
"agentic"
parse_config_id: optional string

Parse config ID used for extraction

parse_tier: optional string

Parse tier to use for extraction (e.g. fast, cost_effective, agentic).

configuration_id: optional string

Saved extract configuration ID (mutually exclusive with config)

webhook_configurations: optional array of WebhookConfiguration { webhook_events, webhook_headers, webhook_output_format, webhook_url }

The outbound webhook configurations

webhook_events: optional array of "extract.pending" or "extract.success" or "extract.error" or 14 more

List of event names to subscribe to

Accepts one of the following:
"extract.pending"
"extract.success"
"extract.error"
"extract.partial_success"
"extract.cancelled"
"parse.pending"
"parse.running"
"parse.success"
"parse.error"
"parse.partial_success"
"parse.cancelled"
"classify.pending"
"classify.success"
"classify.error"
"classify.partial_success"
"classify.cancelled"
"unmapped_event"
webhook_headers: optional map[string]

Custom HTTP headers to include with webhook requests.

webhook_output_format: optional string

The output format to use for the webhook. Defaults to string if none supplied. Currently supported values: string, json

webhook_url: optional string

The URL to send webhook notifications to.

ExtractV2JobQueryResponse = object { items, next_page_token, total_size }

Paginated list of extraction jobs.

items: array of ExtractV2Job { id, created_at, parameters, 9 more }

The list of items.

id: string

Unique job identifier (job_id)

created_at: string

Creation timestamp

formatdate-time
parameters: map[map[unknown] or array of unknown or string or 2 more]

Job configuration parameters (includes parse_config_id, extract_options)

Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
project_id: string

Project this job belongs to

status: "PENDING" or "THROTTLED" or "RUNNING" or 3 more

Current status of the job

Accepts one of the following:
"PENDING"
"THROTTLED"
"RUNNING"
"COMPLETED"
"FAILED"
"CANCELLED"
type: "url" or "file_id" or "parse_job_id"

Type of document input.

Accepts one of the following:
"url"
"file_id"
"parse_job_id"
updated_at: string

Last update timestamp

formatdate-time
value: string

Document identifier (URL, file ID, or parse job ID).

configuration_id: optional string

Extract configuration ID (ProductConfiguration) used for this job (if any)

error_message: optional string

Error message if failed

extract_metadata: optional ExtractJobMetadata { field_metadata, parse_job_id, parse_tier, usage }

Extraction metadata.

field_metadata: optional ExtractedFieldMetadata { document_metadata, page_metadata, row_metadata }

Metadata for extracted fields including document, page, and row level info.

document_metadata: optional map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
page_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
row_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
parse_job_id: optional string

Reference to the ParseJob ID used for parsing

parse_tier: optional string

Parse tier used for parsing the document

usage: optional ExtractJobUsage { num_document_tokens, num_output_tokens, num_pages_extracted }

Extraction usage metrics.

num_document_tokens: optional number

Number of document tokens

num_output_tokens: optional number

Number of output tokens

num_pages_extracted: optional number

Number of pages extracted

extract_result: optional map[map[unknown] or array of unknown or string or 2 more] or array of map[map[unknown] or array of unknown or string or 2 more]

Extracted data (object or array depending on extraction_target)

Accepts one of the following:
UnionMember0 = map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
UnionMember1 = array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
next_page_token: optional string

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

total_size: optional number

The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only.

ExtractV2SchemaGenerateRequest = object { data_schema, file_id, name, prompt }

Request schema for generating an extraction schema.

data_schema: optional map[map[unknown] or array of unknown or string or 2 more] or string

Optional schema to validate, refine, or extend

Accepts one of the following:
UnionMember0 = map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
UnionMember1 = string
file_id: optional string

Optional file ID to analyze for schema generation

name: optional string

Name for the generated configuration (auto-generated if omitted)

maxLength255
prompt: optional string

Natural language description of the data structure to extract

ExtractV2SchemaValidateRequest = object { data_schema }

Request schema for validating an extraction schema.

data_schema: map[map[unknown] or array of unknown or string or 2 more] or string

Schema to validate

Accepts one of the following:
UnionMember0 = map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
UnionMember1 = string
ExtractV2SchemaValidateResponse = object { data_schema }

Response schema for schema validation.

data_schema: map[map[unknown] or array of unknown or string or 2 more]

Validated JSON schema

Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
ExtractedFieldMetadata = object { document_metadata, page_metadata, row_metadata }

Metadata for extracted fields including document, page, and row level info.

document_metadata: optional map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
page_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean
row_metadata: optional array of map[map[unknown] or array of unknown or string or 2 more]
Accepts one of the following:
UnionMember0 = map[unknown]
UnionMember1 = array of unknown
UnionMember2 = string
UnionMember3 = number
UnionMember4 = boolean