Skip to documentation
Browse documentation

Extract Page

Capture one public webpage or supported content URL and return data shaped by a caller-provided JSON Schema or fields shorthand. Deterministic extraction uses page metadata, the evidence graph, parsed files, and filtered URL enumeration first; internal AI resolves remaining fields per the ai mode.

Capability ID web.page.extract
Cost 1 credit per request
Maximum runtime 120 seconds
View raw

POST /execute Shared execution endpoint

Input parameters

accept_statuses array<integer> optional

Accept statuses supplied for this request.

ai string optional

Extraction mode. never: deterministic only. auto: deterministic first, internal AI only for unresolved fields (degrades gracefully when AI is unavailable). always: deterministic plus AI. Defaults to auto when fields is used, otherwise never.

Example never
Available values neverautoalways
ai_enabled boolean optional

Deprecated alias for ai: always. Prefer the ai parameter.

allow_browser_fallback boolean optional

Allow browser fallback supplied for this request.

allow_truncated boolean optional

Allow truncated supplied for this request.

document object optional

Optional document processing controls used before deterministic or AI field extraction.

document.chunk_chars integer optional

Chunk chars supplied for this request.

document.continuation_token string optional

Continuation token supplied for this request.

document.ocr string optional

Ocr supplied for this request. Allowed values: `auto`, `never`, `always`.

Available values autoneveralways
document.outputs array<string> optional

Requested document outputs. source returns the originally captured bytes: inline through 5.5 MB, otherwise through a hash-verified durable store, and fails if neither path can deliver them. When source is omitted, remote_source is provenance only and contains no bytes.

document.page_end integer optional

Page end supplied for this request.

document.page_start integer optional

Page start supplied for this request.

fields object optional

Shorthand alternative to output_schema: field name mapped to a natural-language description of what to extract. Compiled into a schema internally. Provide exactly one of output_schema or fields.

Example {"canonical_url":"canonical url of the page","description":"short page description","title":"page title"}
instructions string optional

Optional extraction guidance. Do not include secrets.

max_body_bytes integer optional

Max body bytes supplied for this request.

max_total_bytes integer optional

Max total bytes supplied for this request.

output_schema object optional

JSON Schema object describing the desired data shape. Property descriptions double as per-field extraction hints. Constraints such as items.pattern filter deterministic URL enumeration. Provide exactly one of output_schema or fields.

url string required

Public http(s) webpage or supported content URL to extract from.

Example https://example.com/

Response

Successful output is returned in results[0].data. Raw platform output is intentionally open-ended and may evolve with the upstream source.

Illustrative sample The full redacted fixture is shown in the response panel.

Illustrative output fields

Derived from the sample above for orientation only. These observed fields are not a fixed response schema.

PathObserved typeExample
data object 3 fields
data.canonical_url string https://example.com/
data.description null null
data.title string Example Domain
evidence array 2 items
evidence array 2 items
extractor_version string web-extractor-2026-08-23-universal-v4
fields object 2 fields
fields.canonical_url object 4 fields
fields.title object 4 fields
schema_valid boolean true
semantic_valid boolean true
semantic_validation_errors array 0 items
stats object 18 fields
stats.ai_attempts integer 0
stats.ai_completion_tokens integer 0
stats.ai_enabled boolean false
stats.ai_mode string never
stats.ai_prompt_tokens integer 0
stats.ai_used boolean false
stats.capture_backend string http
stats.deterministic_fields integer 2
stats.fetch_ms integer 1704
stats.html_bytes integer 559
stats.rendered boolean false
stats.schema_field_count integer 3
stats.schema_valid boolean true
stats.semantic_valid boolean true
stats.source_blocked boolean false
stats.text_chars integer 142
stats.unresolved_fields integer 1
stats.work_units integer 1
unresolved_fields array 1 items
unresolved_fields array 1 items
validation_errors null null
warnings array 0 items

Execution behavior

A 200 response completed inline. A 202 response was queued; poll GET /jobs/:id until the job reaches completed or failed.