Skip to main content
POST
cURL

Usage notes

  • For a working extraction, provide exactly one source: a non-empty file_ids array or non-empty source_text.
  • file_urls remains accepted as a legacy compatibility field, but the extraction worker does not download those URLs. The request can be queued without producing a valid extraction. Download the remote file and upload it with POST /files first.
  • Duplicate source file names are rejected. The combined extraction size limit is 512 MB.
  • The selected Product Schema is copied into the table when you create it. Later changes to the reusable Product Schema do not rewrite the table’s snapshot.
  • A successful request returns 201 with status queued_for_processing. Poll GET /tables/{table_id} until the status is completed, error, or cancelled.
  • Set webhook_url to receive the final extraction result without polling.
The upload limit and the extraction limit are different. See Files and extraction limits before submitting large documents.

Examples

Example response

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
schema_id
string
required

Schema defining the column structure

name
string
required

Table name

file_ids
string<uuid>[]

IDs of previously uploaded files

Minimum array length: 1
file_urls
string<uri>[]
deprecated

Legacy compatibility field. The handler accepts and queues these URLs, but the current extraction worker does not download them, so the extraction cannot complete correctly. Download each file and use file_ids instead.

source_text
string

Raw text containing product data

Minimum string length: 1
additional_context
string

Extra instructions for the AI extraction

enhancement_context
string

Default context for all AI enhancements on this table

webhook_url
string<uri>

URL to notify when extraction completes or fails

Response

Created table, extraction started

id
string
required
name
string
required
schema_id
string
required
status
enum<string>
required

Raw extraction job status returned by the API.

Available options:
queued,
queued_for_processing,
processing,
processing_by_worker,
completed,
error,
cancelled
total_rows
integer
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
progress
integer
Required range: 0 <= x <= 100
source_type
enum<string>
Available options:
files,
text
additional_context
string | null
enhancement_context
string | null
error_message
string | null
files
object[]
locked
boolean
locked_at
string<date-time> | null
locked_by
string<uuid> | null
skipped_source_updates
integer
last_skipped_source_update_at
string<date-time> | null