By team
SDS Extraction for BPO and Compliance Teams
Run SDS intake for many clients through bulk jobs, route uncertain documents to people, and keep an audit trail, with the real limits stated up front.
Last updated: 2026-10-24
A workflow that fits service teams
- Intake. Collect each client's SDS PDFs and keep your own record of which client each file belongs to.
- Submit. Send up to 10 files per bulk job with an
Idempotency-Keyyou derive from the client and batch, for exampleclient-a-2026-10-24-batch-3. A retry with the same key returns the existing job instead of creating a duplicate. - Collect. Poll the job status, or pass a
callback_urlto receive a signed webhook when the job finishes. - Triage. Send every document with warnings or a low
confidence_scoreto a reviewer. Pass the rest through. - Deliver. Write the reviewed records into the client's system, in JSON, XML or CSV.
Triage rules
| Signal | Suggested action |
|---|---|
warnings is not empty | Review against the source document. |
confidence_score below your threshold | Review. You set the threshold, ideally from a measured sample of that client's documents. |
Item error_code is provider_error | Retry the file. If it keeps failing, quote the job id to support. |
unsupported_file_type | Ask the client for the actual PDF. |
file_too_large | Split or compress the file. |
429 rate_limited | Wait the number of seconds in Retry-After. |
Capacity planning: the default limits
These are the default limits on the shared hosted endpoint, enforced per client IP in 24-hour windows. Limits for self-serve and enterprise plans are set by the plan, so talk to us before sizing a large engagement.
| Limit | Default |
|---|---|
| Files per bulk job | 10 |
| File size | 10 MB per file, 40 MB per job |
| Bulk job submissions | 20 per 24 hours (up to 200 files at 10 per job) |
Single-document extraction (/extract-sds) | 100 requests per 24 hours |
Keeping clients separate
On the self-serve plan each account gets its own API key. If you need your end clients separated from each other, or a dedicated deployment with its own base URL and limits, that is an enterprise setup. Either way, keep keys on your servers and record the client, job_id and request_id with every result, and put the client in your idempotency key convention.
Audit trail
- Store the
request_idorjob_id, the response JSON, and a hash of the source file. - Record who reviewed a flagged document and what they changed.
- Keep the model output separate from the reviewed record so you can show both.
Languages
Client documents arrive in many languages. The API reads each PDF in its own language and returns the same field names. We do not publish per-language accuracy, so measure on a sample per client. See multilingual extraction.
FAQ
How many documents can we process per day?
On the shared hosted endpoint the defaults are up to 20 bulk jobs of 10 files per 24 hours, plus 100 single-document requests, per client IP. Self-serve and enterprise limits are set by your plan, so contact us for a large engagement.
Can each of our clients have a separate API key?
Each account on the self-serve plan has its own key. To keep many end clients separate, or to get a dedicated deployment with its own base URL, talk to us about enterprise.
Is the output reviewed by people?
No. The output is machine-generated. Use warnings and confidence to route documents to your own reviewers before delivering data to a client.
Related pages
- Bulk processing and webhooks
- Rate limits
- Manual SDS entry vs API
- SDKs, Postman collection and MCP server