Skip to content

LlamaExtract REST API

curl -X 'POST' \
'https://api.cloud.llamaindex.ai/api/v1/extraction/extraction-agents' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"name": "resume_parser",
"data_schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Candidate name"
},
"experience": {
"type": "array",
"description": "Work history",
"items": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "Company name"
},
"title": {
"type": "string",
"description": "Job title"
},
"start_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Start date of employment"
},
"end_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "End date of employment"
}
}
}
}
}
},
"config": {
"extraction_target": "PER_DOC",
"extraction_mode": "BALANCED",
}
}'

You can list all your existing agents with the following command. The project_id can be obtained from the web UI. Also refer to the the Projects API for programmatically creating/editing projects.

curl -X 'GET' \
'https://api.cloud.llamaindex.ai/api/v1/extraction/extraction-agents?project_id={project_id}' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"

You can also fetch a specific agent_id by name:

curl -X 'GET' \
'https://api.cloud.llamaindex.ai/api/v1/extraction/extraction-agents/by-name/{agent_name}' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"

Upload a document using our Upload API.

curl -X 'POST' \
'https://api.cloud.llamaindex.ai/api/v1/files' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
-F 'upload_file=@/path/to/your/file.pdf;type=application/pdf'

Use the extraction_agent_id and file_id from the previous steps to run an extraction job.

curl -X 'POST' \
'https://api.cloud.llamaindex.ai/api/v1/extraction/jobs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
-d '{
"extraction_agent_id": "{$AGENT_ID}",
"file_id": "{$FILE_ID}",
}'

Jobs are processed asynchronously. You can poll for the status of a job using the following endpoint.

curl -X 'GET' \
'https://api.cloud.llamaindex.ai/api/v1/extraction/jobs/{$JOB_ID}' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"

If the job is successfully completed, you will see the status as SUCCESS. You can then retrieve the results from the following endpoint.

curl -X 'GET' \
'https://api.cloud.llamaindex.ai/api/v1/extraction/jobs/{$JOB_ID}/result' \
-H 'accept: application/json' \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"

This is just a subset of the available endpoints to help you get started. You can see all the available endpoints in our full API documentation.