Using the REST API
The LlamaReport API can be used with any language that can make HTTP requests.
You can see all the available endpoints in our full API documentation.
Here are some sample calls:
Create a Report
Section titled “Create a Report”Create a report with template text:
curl -X 'POST' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \ -F 'name=My Report' \ -F 'template_text=# Quarterly Report\n## Executive Summary\n...' \ -F 'files=@/path/to/data.pdf'
You could also use tempalate_file
to point to a file instead of passing in the template text.
Get Report Status and Content
Section titled “Get Report Status and Content”curl -X 'GET' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
Get Report Metadata
Section titled “Get Report Metadata”curl -X 'GET' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>/metadata' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
List Reports
Section titled “List Reports”List all reports:
curl -X 'GET' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/list' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
Filter by state and limit results:
curl -X 'GET' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/list?state=completed&limit=10&offset=0' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
Update Report Plan
Section titled “Update Report Plan”Approve the plan and kick off report generation:
curl -X 'PATCH' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>/plan?action=approve' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
Edit the plan by passing in the serialized plan object. This updatest the plan in-place, so you’ll need to pass in the entire plan object, not just the changed blocks:
curl -X 'PATCH' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>/plan?action=edit' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \ -d '{ "blocks": [ { "block": { "idx": 0, "template": "# Updated Report Title", "sources": [...] }, "queries": [], "dependency": "none|all|prev|next" }, ... ] }'
Get Report Events
Section titled “Get Report Events”curl -X 'GET' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>/events' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
Get events after a specific sequence number:
curl -X 'GET' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>/events?last_sequence=5' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
Suggest Edits
Section titled “Suggest Edits”curl -X 'POST' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>/suggest_edits' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \ -d '{ "user_query": "Make the executive summary more concise", "chat_history": [ {"role": "user", "content": "Previous message"}, {"role": "assistant", "content": "Previous response"} ] }'
Update Report Content
Section titled “Update Report Content”This updates the content of the report in-place. You’ll need to pass in the entire content object, not just the changed blocks:
curl -X 'PATCH' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \ -d '{ "content": { "blocks": [ { "idx": 0, "template": "Updated content here", "sources": [...] }, ... ] } }'
Delete a Report
Section titled “Delete a Report”curl -X 'DELETE' \ 'https://api.cloud.llamaindex.ai/api/v1/reports/<report_id>' \ -H 'accept: application/json' \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"
You can see all the available endpoints in our full API documentation.