Skip to content
Guide
Extract

Using the REST API

Guide on how to use the LlamaExtract v2 REST API for programmatic data extraction, including uploading documents, running extraction jobs, and retrieving results.

Upload a document using the Upload API.

Terminal window
curl -X 'POST' \
'https://api.cloud.llamaindex.ai/api/v1/beta/files' \
-H 'Content-Type: multipart/form-data' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
-F 'file=@/path/to/file' \
-F purpose='extract'

Save the returned id (e.g. dfl-xxxxxxxx-...) — you’ll use it as file_input below.

Submit an extraction job with your schema and configuration inline. No agent creation needed — just provide your data_schema and options directly.

Terminal window
curl -X 'POST' \
'https://api.cloud.llamaindex.ai/api/v2/extract?project_id={PROJECT_ID}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
-d '{
"file_input": "{FILE_ID}",
"configuration": {
"tier": "agentic",
"extraction_target": "per_doc",
"data_schema": {
"type": "object",
"properties": {
"company_name": {
"type": "string",
"description": "Name of the company"
},
"revenue": {
"type": "number",
"description": "Annual revenue in USD"
},
"fiscal_year": {
"type": "integer",
"description": "Fiscal year of the report"
}
}
},
"cite_sources": true,
"confidence_scores": false,
"system_prompt": "Focus on the most recent fiscal year if multiple are present"
}
}'

Tip: The tier field maps to UI tiers — cost_effective = Cost Effective, agentic = Agentic. See Tiers and versions for details.

Jobs are processed asynchronously. Poll for the status using the job id from the response.

Terminal window
curl -X 'GET' \
'https://api.cloud.llamaindex.ai/api/v2/extract/{JOB_ID}?project_id={PROJECT_ID}' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"

When status is COMPLETED, the extract_result field contains your extracted data.

To include extraction metadata (citations, confidence scores) and usage stats, use the expand parameter:

Terminal window
curl -X 'GET' \
'https://api.cloud.llamaindex.ai/api/v2/extract/{JOB_ID}?project_id={PROJECT_ID}&expand=extract_metadata&expand=metadata' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"

The configuration object supports many options, see the full API reference for all configuration parameters.

If you need to use the v1 agent-based API, select the v1 toggle at the top of the sidebar to switch to Extract v1 documentation.

See all available endpoints in the full API documentation.