Submit multiple files for conversion to structured clinical data in a single request.
Overview
The Bulk Convert endpoint allows you to trigger the conversion of multiple documents simultaneously. This is designed for high-volume workflows, bulk data imports, allowing you to manage hundreds of files without making individual API calls for each document.
Enterprise only
The Bulk Convert endpoint is only available for Enterprise customers. Please contact our support team to enable this feature for your organization.
Configuration for the processing type. Applied to all files in the batch.
output_config
object
Yes
Configuration for the output format and enrichments. Applied to all files in the batch.
batch_callback_url
string
Optional
A single webhook URL to receive notifications for all files in this batch.
*Note: You can provide either a batch_callback_url at the root level OR a callback_url for every individual file in the files array.
File limit per request: Maximum of 30 files per request.
Process Config
Parameter
Type
Required
Description
tasks
array of strings
Yes
A one-item list containing the processing type to run
Processing types - tasks is a one-item list naming the type to run:
Type
Input
Output
Description
clinical_extraction
pdf, ccda
fhir or json
Extract structured clinical data from the document.
dephi
pdf
pdf (presigned URL only)
De-identify a PDF by removing protected health information (PHI).
A dephi result is a binary PDF, delivered only through a presigned URL. At request time, set output_config.presigned to true or omit it (false is invalid), then retrieve the file from the Results endpoint with presigned=true.
Output Config
Parameter
Type
Required
Default
Description
format
string
Yes
-
Output format for the result. Accepted values: fhir, json, pdf
include_bbox
boolean
Not required
false
Whether to include bounding box coordinates for extracted entities. Incurs additional cost when enabled.
presigned
boolean
Not required
false
If true, the webhook callback includes a presigned download URL instead of the result in the body. If false or omitted, the structured result is returned inline (default).
result_ttl
integer
Not required
5 (minutes)
When presigned is true, controls how long the presigned result URL in the success webhook callback remains valid. Integer minutes in the inclusive range 1 to 15. When omitted, the default is five minutes. Applied to all files in the batch.
File Object Structure
Parameter
Type
Required
Description
presigned_url
string
Yes
The fully-qualified, time-limited URL (such as an S3 presigned URL) to securely access and download the source file to be converted. The URL must be accessible by the platform and valid for the duration of processing.
file_type
string
Yes
Type of file: pdf or ccda
callback_url
string
Optional
Specific webhook URL for this individual file’s completion event.
Request Examples
1. Batch Callback Only
Provide a batch_callback_url if you want to receive job notifications for all files in the bulk request at the same callback URL. Job notifications for each individual file will be sent separately to the callback URL (either the batch or per-file webhook), ensuring that you receive a distinct notification for each conversion job upon its completion.
If a file specifies its own callback_url, that URL will be used for notifications for that file. For files without an explicit callback_url, the batch_callback_url is used as the default.
In this example: file1 uses priority-webhook for notifications, while file2 falls back to the fallback-webhook.
Submit a batch of dephi requests to de-identify PDFs - each removes protected health information (PHI) and returns a de-identified PDF. Retrieve each result from the Results endpoint with presigned=true.
File at index {index} must be a valid JSON object/dictionary
400
presigned_url is required for file at index {index}
400
result_ttl must be an integer between 1 and 15 minutes
401
X-Client-Id and X-Client-Secret are not valid
429
Too many requests. For more details, visit the page Rate Limits
500
Internal error processing bulk request
500
Failed to submit batch to processor
Best Practices
URL Validity: Provide a minimum one-hour expiration window for the presigned_url to ensure all the files in a batch are processed.
Async Workflow: Do not poll for status for large batches; rely on webhooks to trigger downstream processing in your application.
Bounding Boxes: Only enable include_bbox when your application requires coordinate data, as it incurs additional processing cost across all files in the batch.