Decide Documentation
API
Use Decide APIs from your backend or internal tools. Authenticate with a Bearer API key, upload a file, and poll the returned job until the result is ready.
- 1
Create an API key
Generate a key in Decide settings and keep it server-side.
- 2
Send a request
Upload a document, spreadsheet, data file, or image to the matching endpoint.
- 3
Poll the job
Check the returned status URL until processing is complete.
- 4
Read the result
Use the structured JSON, CSV, or Excel result from the response.
Document extraction
Extract structured financial statement data from PDFs and documents, with normalized values and source context.
POST /v1/documents/extractcurl -X POST https://api.trydecide.ai/v1/documents/extract \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" \ -F "schema=financial_statements"Spreadsheet reports
Turn documents, images, exports, and data files into clean Excel workbooks, CSVs, or both.
POST /v1/spreadsheetscurl -X POST https://api.trydecide.ai/v1/spreadsheets \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" \ -F "output_format=both" \ -F "prompt=Use one row per transaction"Image extraction
Extract structured information from images, including items, quantities, and other fields in visual documents.
POST /v1/images/extractcurl -X POST https://api.trydecide.ai/v1/images/extract \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]"Endpoint reference
All API requests use the base URL https://api.trydecide.ai and a Bearer API key.
Document extraction
POST/v1/documents/extractSubmit one document
Request fields
file· required · PDF or supported documentschema· optional · for example financial_statementsreturn_sources· optional · include source evidence
Response: Returns extraction_id and status_url.
GET/v1/documents/extract/:extractionIdPoll one extraction
Request fields
extractionId· required · returned by the submit request
Response: Returns processing status, normalized cells, statements, warnings, and source context when complete.
POST/v1/documents/extract/batchesSubmit multiple documents
Request fields
files· required · one or more documentsschema· optional · extraction schemareturn_sources· optional · include source evidencebatch_label· optional · label for the batch
Response: Returns batch_id, item statuses, and a status_url.
GET/v1/documents/extract/batches/:batchIdPoll a document batch
Request fields
batchId· required · returned by the batch submit request
Response: Returns batch progress, completed items, failures, and extraction status URLs.
Image extraction
POST/v1/images/extractExtract one image
Request fields
image· required · image file to inspect
Response: Returns structured extracted items and fields.
POST/v1/images/extract/batchesSubmit multiple images
Request fields
images· required · one or more image files
Response: Returns batch_id, item statuses, and progress_percent.
GET/v1/images/extract/batches/:batchIdPoll an image batch
Request fields
batchId· required · returned by the batch submit request
Response: Returns batch progress and extracted data for completed images.
Spreadsheet reports
POST/v1/spreadsheetsCreate an Excel or CSV report
Request fields
file· required · source document, image, export, or data fileoutput_format· optional · xlsx, csv, or bothprompt· optional · formatting guidancemetadata· optional · JSON echoed in the resultwebhook_url· optional · terminal result callbackwebhook_secret· optional · webhook signature secret
Response: Returns conversion_id, status_url, billing status, and webhook status.
GET/v1/spreadsheets/:conversionIdPoll one report
Request fields
conversionId· required · returned by the submit request
Response: Returns status, generated file URLs, metadata, and terminal error details.
POST/v1/spreadsheets/batchesCreate reports from multiple files
Request fields
files· required · one to 20 source filesoutput_format· optional · xlsx, csv, or bothprompt· optional · shared formatting guidancebatch_label· optional · label for the batchmetadata· optional · shared JSON metadatawebhook_url· optional · final batch callback
Response: Returns batch_id, item statuses, progress, and a status_url.
GET/v1/spreadsheets/batches/:batchIdPoll a report batch
Request fields
batchId· required · returned by the batch submit request
Response: Returns batch counts, progress, file results, and item errors.
Scheduled spreadsheet reports
POST/v1/spreadsheets-schedulesCreate a scheduled report
Request fields
files· required · source filesrecipients· required · report recipientsrun_at or cron· required · one-time or recurring scheduleoutput_format· optional · xlsx, csv, or bothtimezone· optional · schedule timezoneprompt· optional · report instructionswebhook_url· optional · completion callback
Response: Returns a schedule ID and the next scheduled run.
GET/v1/spreadsheets-schedulesList scheduled reports
Request fields
No request body. Use the API key to list schedules.
Response: Returns schedules available to the authenticated account.
GET/v1/spreadsheets-schedules/:scheduleIdGet a schedule
Request fields
scheduleId· required · schedule identifier
Response: Returns schedule configuration, status, and next run details.
POST/v1/spreadsheets-schedules/:scheduleId/cancelCancel a schedule
Request fields
scheduleId· required · schedule identifier
Response: Returns the cancelled schedule status.
curl -X POST https://api.trydecide.ai/v1/spreadsheets \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" \ -F "output_format=xlsx" \ -F "prompt=Create a sales report with summary statistics"curl https://api.trydecide.ai/v1/spreadsheets/scv_123 \ -H "Authorization: Bearer YOUR_API_KEY"Large files run asynchronously. Document and spreadsheet jobs return an ID and status URL; image extraction also supports batch processing.