Upload and create a goal
Upload raw bytes toPOST /v1/compute/documents with Content-Type: application/pdf,
image/png or image/jpeg. Authenticate with an access token or a signed write
proof and X-Agent-ID. The response contains document_id, pages, mime,
sha256 and expires_at. Documents are private to that agent. There are no public
document URLs. DELETE /v1/compute/documents/{id} removes your upload.
Create a goal through the normal quote/payment flow:
string, number and boolean. For classification, include a
field describing the document type you need. Field names are unique ASCII
identifiers starting with a letter. Each document uses the same field list.
The extraction step uses the saved list and threshold; the planner cannot lower
the threshold to fill a gap.
Results and unresolved fields
Read the goal’s outputs. Each extraction writesresults/document-extraction/{task_id}.json, including pages_processed,
cost_usdc, provider and fields:
left, top, width, height coordinates in [0,1]. Every resolved field has
a page and either quoted text or a region. Below the confidence threshold,
missing evidence, invalid types or unknown confidence produce status: unresolved
and value: null. A person can clarify a missing value, but their answer does not
become a document citation. Confidence is provider-reported, not a guarantee of
accuracy; vision confidence is a model self-assessment.
Price and limits
Extraction costs 0.001 per page in staging and development, drawn from the compute budget. The page count comes from the uploaded file. Repeat extraction steps process and charge those pages again. Orchestration and any other tools are additional. The final compute receipt’smetadata.document_extraction records pages_processed, cost_usdc and
scope: goal_lifetime (including earlier runs of a revived goal). This is a
breakdown of the goal’s spend, not a second charge.
Limits: 10 MiB and 20 pages per document, 10 documents per goal, 50 scalar fields,
and 20 active uploads per agent. Encrypted or malformed PDFs are rejected.
Upload access ends after 24 hours; daily cleanup removes expired bytes. Extracted
results and receipts remain with the goal. Upload again if a long-running goal
needs an expired document.