Skip to content

Create Extract Job

ExtractV2Job Extract.Create(ExtractCreateParamsparameters, CancellationTokencancellationToken = default)
POST/api/v2/extract

Create an extraction job.

Extracts structured data from a document using either a saved configuration or an inline JSON Schema.

Input

Provide exactly one of:

  • configuration_id — reference a saved extraction config
  • configuration — inline configuration with a data_schema

Document input

Set file_input to a file ID (dfl-...) or a completed parse job ID (pjb-...).

The job runs asynchronously. Poll GET /extract/{job_id} or register a webhook to monitor completion.

ParametersExpand Collapse
ExtractCreateParams parameters
required string fileInput

Body param: File ID or parse job ID to extract from

maxLength200
string? organizationID

Query param

formatuuid
string? projectID

Query param

formatuuid
ExtractConfiguration? configuration

Body param: Extract configuration combining parse and extract settings.

string? configurationID

Body param: Saved configuration ID

IReadOnlyList<WebhookConfiguration>? webhookConfigurations

Body param: Outbound webhook endpoints to notify on job status changes

IReadOnlyList<WebhookEvent>? WebhookEvents

Events to subscribe to (e.g. ‘parse.success’, ‘extract.error’). If null, all events are delivered.

One of the following:
"classify.cancelled"ClassifyCancelled
"classify.error"ClassifyError
"classify.partial_success"ClassifyPartialSuccess
"classify.pending"ClassifyPending
"classify.running"ClassifyRunning
"classify.success"ClassifySuccess
"extract.cancelled"ExtractCancelled
"extract.error"ExtractError
"extract.partial_success"ExtractPartialSuccess
"extract.pending"ExtractPending
"extract.success"ExtractSuccess
"parse.cancelled"ParseCancelled
"parse.error"ParseError
"parse.partial_success"ParsePartialSuccess
"parse.pending"ParsePending
"parse.running"ParseRunning
"parse.success"ParseSuccess
"sheets.cancelled"SheetsCancelled
"sheets.error"SheetsError
"sheets.partial_success"SheetsPartialSuccess
"sheets.pending"SheetsPending
"sheets.success"SheetsSuccess
"split.cancelled"SplitCancelled
"split.error"SplitError
"split.pending"SplitPending
"split.processing"SplitProcessing
"split.success"SplitSuccess
"unmapped_event"UnmappedEvent
IReadOnlyDictionary<string, string>? WebhookHeaders

Custom HTTP headers sent with each webhook request (e.g. auth tokens)

string? WebhookOutputFormat

Response format sent to the webhook: ‘string’ (default) or ‘json’

string? WebhookSigningSecret

Shared signing secret used to sign webhook deliveries. When set, each request includes an HMAC-SHA256 signature of the request body in the ‘LC-Signature’ header (value ‘sha256=’). Recompute the HMAC over the raw request body with this secret to verify the delivery is authentic.

string? WebhookUrl

URL to receive webhook POST notifications

ReturnsExpand Collapse
class ExtractV2Job:

An extraction job.

required string ID

Unique job identifier (job_id)

required DateTimeOffset CreatedAt

Creation timestamp

formatdate-time
required string FileInput

File ID or parse job ID that was extracted

required string ProjectID

Project this job belongs to

required string Status

Current job status.

  • PENDING — queued, not yet started
  • RUNNING — actively processing
  • COMPLETED — finished successfully
  • FAILED — terminated with an error
  • CANCELLED — cancelled by user
required DateTimeOffset UpdatedAt

Last update timestamp

formatdate-time
ExtractConfiguration? Configuration

Extract configuration combining parse and extract settings.

required IReadOnlyDictionary<string, DataSchema?> DataSchema

JSON Schema defining the fields to extract. Validate with the /schema/validate endpoint first.

One of the following:
IReadOnlyDictionary<string, JsonElement>
IReadOnlyList<JsonElement>
string
Double
Boolean
Boolean CiteSources

Include citations in results

Boolean ConfidenceScores

Include confidence scores in results

ExtractionTarget ExtractionTarget

Granularity of extraction: per_doc returns one object per document, per_page returns one object per page, per_table_row returns one object per table row

One of the following:
"per_doc"PerDoc
"per_page"PerPage
"per_table_row"PerTableRow
Long? MaxPages

Maximum number of pages to process. Omit for no limit.

minimum1
string? ParseConfigID

Saved parse configuration ID to control how the document is parsed before extraction

string? ParseTier

Parse tier to use before extraction. Defaults to the extract tier if not specified.

string? SystemPrompt

Custom system prompt to guide extraction behavior

string? TargetPages

Comma-separated page numbers or ranges to process (1-based). Omit to process all pages.

Tier Tier

Extract tier: cost_effective (5 credits/page), agentic (15 credits/page), or agentic_plus (50 credits/page)

One of the following:
"agentic"Agentic
"agentic_plus"AgenticPlus
"cost_effective"CostEffective
string Version

Use ‘latest’ for the latest release for the selected tier or a date string (YYYY-MM-DD format) to pin to the nearest release at or before that date. Job responses always report the concrete resolved version the job runs, fixed at job creation; saved configurations keep the value as provided.

string? ConfigurationID

Saved extract configuration ID used for this job, if any

string? ErrorMessage

Error details when status is FAILED

ExtractJobMetadata? ExtractMetadata

Extraction metadata.

ExtractedFieldMetadata? FieldMetadata

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

IReadOnlyDictionary<string, DocumentMetadata?>? DocumentMetadata

Per-field metadata keyed by field name from your schema. Scalar fields (e.g. vendor) map to a FieldMetadataEntry with citation and confidence. Array fields (e.g. items) map to a list where each element contains per-sub-field FieldMetadataEntry objects, indexed by array position. Nested objects contain sub-field entries recursively.

One of the following:
IReadOnlyDictionary<string, JsonElement>
IReadOnlyList<JsonElement>
string
Double
Boolean
IReadOnlyList<IReadOnlyDictionary<string, PageMetadata?>>? PageMetadata

Per-page metadata when extraction_target is per_page

One of the following:
IReadOnlyDictionary<string, JsonElement>
IReadOnlyList<JsonElement>
string
Double
Boolean
IReadOnlyList<IReadOnlyDictionary<string, RowMetadata?>>? RowMetadata

Per-row metadata when extraction_target is per_table_row

One of the following:
IReadOnlyDictionary<string, JsonElement>
IReadOnlyList<JsonElement>
string
Double
Boolean
string? ParseJobID

Reference to the ParseJob ID used for parsing

string? ParseTier

Parse tier used for parsing the document

ExtractResult? ExtractResult

Extracted data conforming to the data_schema. Returns a single object for per_doc, or an array for per_page / per_table_row.

One of the following:
IReadOnlyDictionary<string, UnionMember0Item?>
One of the following:
IReadOnlyDictionary<string, JsonElement>
IReadOnlyList<JsonElement>
string
Double
Boolean
IReadOnlyList<IReadOnlyDictionary<string, UnnamedSchemaWithArrayParent1Item?>>
One of the following:
IReadOnlyDictionary<string, JsonElement>
IReadOnlyList<JsonElement>
string
Double
Boolean
Metadata? Metadata

Job-level metadata.

Extraction usage metrics.

Long? NumPagesBilled

Number of effective pages billed

Long? NumPagesExtracted

Number of pages extracted

Create Extract Job

ExtractCreateParams parameters = new()
{
    FileInput = "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
};

var extractV2Job = await client.Extract.Create(parameters);

Console.WriteLine(extractV2Job);
{
  "id": "ext-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "created_at": "2019-12-27T18:11:19.117Z",
  "file_input": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "project_id": "prj-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "status": "COMPLETED",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "configuration": {
    "data_schema": {
      "foo": {
        "foo": "bar"
      }
    },
    "cite_sources": true,
    "confidence_scores": true,
    "extraction_target": "per_doc",
    "max_pages": 10,
    "parse_config_id": "cfg-11111111-2222-3333-4444-555555555555",
    "parse_tier": "fast",
    "system_prompt": "Extract all monetary values in USD. If a currency is not specified, assume USD.",
    "target_pages": "1,3,5-7",
    "tier": "cost_effective",
    "version": "latest"
  },
  "configuration_id": "cfg-11111111-2222-3333-4444-555555555555",
  "error_message": "error_message",
  "extract_metadata": {
    "field_metadata": {
      "document_metadata": {
        "items": [
          {
            "amount": {
              "citation": [
                {
                  "matching_text": "$10.00",
                  "page": 1
                }
              ],
              "confidence": 1
            },
            "description": {
              "citation": [
                {
                  "matching_text": "$10/month",
                  "page": 1
                }
              ],
              "confidence": 0.998
            }
          }
        ],
        "total": {
          "citation": "bar",
          "confidence": "bar"
        },
        "vendor": {
          "citation": "bar",
          "confidence": "bar",
          "extraction_confidence": "bar",
          "parsing_confidence": "bar"
        }
      },
      "page_metadata": [
        {
          "foo": {
            "foo": "bar"
          }
        }
      ],
      "row_metadata": [
        {
          "foo": {
            "foo": "bar"
          }
        }
      ]
    },
    "parse_job_id": "parse_job_id",
    "parse_tier": "parse_tier"
  },
  "extract_result": {
    "foo": {
      "foo": "bar"
    }
  },
  "metadata": {
    "usage": {
      "num_pages_billed": 0,
      "num_pages_extracted": 0
    }
  }
}
Returns Examples
{
  "id": "ext-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "created_at": "2019-12-27T18:11:19.117Z",
  "file_input": "dfl-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "project_id": "prj-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "status": "COMPLETED",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "configuration": {
    "data_schema": {
      "foo": {
        "foo": "bar"
      }
    },
    "cite_sources": true,
    "confidence_scores": true,
    "extraction_target": "per_doc",
    "max_pages": 10,
    "parse_config_id": "cfg-11111111-2222-3333-4444-555555555555",
    "parse_tier": "fast",
    "system_prompt": "Extract all monetary values in USD. If a currency is not specified, assume USD.",
    "target_pages": "1,3,5-7",
    "tier": "cost_effective",
    "version": "latest"
  },
  "configuration_id": "cfg-11111111-2222-3333-4444-555555555555",
  "error_message": "error_message",
  "extract_metadata": {
    "field_metadata": {
      "document_metadata": {
        "items": [
          {
            "amount": {
              "citation": [
                {
                  "matching_text": "$10.00",
                  "page": 1
                }
              ],
              "confidence": 1
            },
            "description": {
              "citation": [
                {
                  "matching_text": "$10/month",
                  "page": 1
                }
              ],
              "confidence": 0.998
            }
          }
        ],
        "total": {
          "citation": "bar",
          "confidence": "bar"
        },
        "vendor": {
          "citation": "bar",
          "confidence": "bar",
          "extraction_confidence": "bar",
          "parsing_confidence": "bar"
        }
      },
      "page_metadata": [
        {
          "foo": {
            "foo": "bar"
          }
        }
      ],
      "row_metadata": [
        {
          "foo": {
            "foo": "bar"
          }
        }
      ]
    },
    "parse_job_id": "parse_job_id",
    "parse_tier": "parse_tier"
  },
  "extract_result": {
    "foo": {
      "foo": "bar"
    }
  },
  "metadata": {
    "usage": {
      "num_pages_billed": 0,
      "num_pages_extracted": 0
    }
  }
}
Note for AI agents: this documentation is built for programmatic access. - Overview of all docs: https://developers.llamaindex.ai/llms.txt - Any page is available as raw Markdown by appending index.md to its URL — e.g. https://developers.llamaindex.ai/llamaparse/parse/getting_started/index.md - Agent-friendly REST search APIs live under https://developers.llamaindex.ai/api/ — search (BM25 full-text), grep (regex), read (fetch a page), and list (browse the doc tree). See https://developers.llamaindex.ai/llms.txt for parameters. - A hosted documentation MCP server is available at https://developers.llamaindex.ai/mcp. If you support MCP, you can ask the user to install it for browsing these docs directly (an alternative to the REST API). Setup: https://developers.llamaindex.ai/for-agents/mcp/ - Other LlamaIndex tooling for agents — the LlamaParse Platform MCP server, agent skills and plugins, and the n8n node — is mapped at https://developers.llamaindex.ai/for-agents/