Developer API
Reference
Everything you need to integrate text redaction, document redaction, file conversion, and OCR into your pipeline. All endpoints are REST-based, JSON-native, and authenticated via API key.
Access & Billing
Authentication
Every request requires your API key passed as the x-api-key header. Keys are scoped to your account and can be rotated from the dashboard at any time.
Credits & Billing
The Shroudly API runs on a credit system. Each job consumes credits based on the module and input size. Credits reset monthly on your billing cycle. Free accounts receive 10 credits per month to get started.
Redaction
Redaction2 ENDPOINTSRedact sensitive entities from plain text or uploaded documents (PDF, DOCX). Choose specific entity types or let the engine auto-detect across 50+ PII, PHI, and financial categories.
Submit plain text for redaction. Pass entity types to target specific PII categories, or omit to run full auto-detection. Returns a job ID — poll /jobs/:id for the result.
curl -X POST https://backend.shroudly.app/redaction/process \-H "x-api-key: YOUR_API_KEY" \-F "text=John Smith, SSN 123-45-6789, email john@example.com" \-F "redactionTypes=NAME" \-F "redactionTypes=SSN" \-F "redactionTypes=EMAIL_ADDRESS"
{"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","module": "redaction","status": "queued","queuedAt": "2026-05-04T12:00:00.000Z"}
Upload a PDF or DOCX for document-level redaction. The engine preserves layout and returns a pixel-perfect redacted clone accessible via a time-limited Azure SAS URL in the job result.
curl -X POST https://backend.shroudly.app/redaction/process \-H "x-api-key: YOUR_API_KEY" \-F "file=@/path/to/contract.pdf" \-F "redactionTypes=NAME" \-F "redactionTypes=EMAIL_ADDRESS" \-F "redact_faces=true" \-F "redact_retinas=true" \-F "redact_bodies=true" \-F "redact_full_bodies=true"
{"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","module": "redaction","status": "queued","queuedAt": "2026-05-04T12:00:00.000Z"}
OCR
OCR1 ENDPOINTTransform scanned or image-heavy PDFs into fully searchable, machine-readable documents. Supports 12 languages, configurable output formats (text, JSON, Markdown, combined), table and formula recognition.
Upload a PDF for OCR processing. Configure language, output format, page limits, and extraction options. Returns a job ID — poll /jobs/:id for the completed output download URL.
curl -X POST https://backend.shroudly.app/ocr/process \-H "x-api-key: YOUR_API_KEY" \-F "file=@/path/to/scanned.pdf" \-F "language=en" \-F "outputFormat=text" \-F "extractText=true"
{"jobId": "b2c3d4e5-f6a7-8901-bcde-f12345678901","module": "ocr","status": "queued","queuedAt": "2026-05-04T12:00:00.000Z"}
File Conversion
Convert1 ENDPOINTConvert between PDF, Word, Excel, PowerPoint, HTML, JPG, and PDF/A. Supported routes: PDF→Word, PDF→Excel, PDF→PowerPoint, PDF→JPG, PDF→PDF/A, PDF→Text, Word→PDF, Excel→PDF, PowerPoint→PDF, JPG→PDF, HTML→PDF.
Upload a file with outputFormat and an optional inputFormat override. Returns a job ID immediately — poll /jobs/:id for completion and the download URL of the converted file.
# PDF → Wordcurl -X POST https://backend.shroudly.app/conversion/process \-H "x-api-key: YOUR_API_KEY" \-F "file=@/path/to/document.pdf" \-F "inputFormat=pdf" \-F "outputFormat=word"# Word → PDFcurl -X POST https://backend.shroudly.app/conversion/process \-H "x-api-key: YOUR_API_KEY" \-F "file=@/path/to/report.docx" \-F "inputFormat=docx" \-F "outputFormat=pdf"
{"jobId": "c3d4e5f6-a7b8-9012-cdef-123456789012","module": "conversion","status": "queued","queuedAt": "2026-05-04T12:00:00.000Z"}
Jobs
Jobs2 ENDPOINTSRetrieve and monitor processing jobs. All three modules queue jobs asynchronously and return a jobId immediately. Poll these endpoints for status, output download URLs, and credit usage.
Returns a paginated list of all jobs for the authenticated account, ordered by creation date descending.
curl -X GET "https://backend.shroudly.app/jobs?page=1&limit=20" \-H "x-api-key: YOUR_API_KEY"
{"items": [{"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","module": "redaction","status": "completed","creditsRequired": 2,"creditsReserved": true,"failureCode": null,"queuedAt": "2026-05-04T12:00:00.000Z","completedAt": "2026-05-04T12:00:03.412Z"}],"total": 36,"page": 1,"limit": 20}
Returns full details for a single job including status, output download URL (when completed), credit usage, failure code, and timestamps. Poll until status is "completed" or "failed".
curl -X GET https://backend.shroudly.app/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \-H "x-api-key: YOUR_API_KEY"
{"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890","module": "redaction","status": "completed","creditsRequired": 2,"creditsReserved": true,"failureCode": null,"outputUrl": "https://shroudlystorage.blob.core.windows.net/outputs/redacted.pdf?sv=...&sig=...","queuedAt": "2026-05-04T12:00:00.000Z","completedAt": "2026-05-04T12:00:03.412Z"}