Skip to main content
Slate’s redaction engine automatically locates and masks sensitive information — Social Security Numbers, account numbers, and custom patterns — in PDF documents before they are filed with courts or shared with external parties. Submit a redaction job, poll a lightweight status endpoint until processing finishes, then download the clean PDF via a presigned URL.
Slate applies default redaction rules to every job automatically. These include common SSN formats (e.g. 123-45-6789, 123456789) and account number variants derived from the matter’s account data. Any custom rules you supply in the request body are merged with — not a replacement for — the default ruleset.
1

Submit a redaction job

Call POST /v1/redactions to start a new redaction job. Slate queues the document for processing and immediately returns a job ID and a poll URL.Required fields:Supply an optional rules array to add custom redaction patterns on top of the defaults. Each rule specifies a match strategy and a transform action.
Slate responds with 202 Accepted and a job object:
202 Response
Store the id (referred to as redactionId below). The pollUrl is the path to the job detail endpoint (GET /v1/redactions/{redactionId}); for lightweight polling use the dedicated status endpoint shown in the next step.
For scanned documents or image-based PDFs where text is not natively selectable, enable OCR by including "configuration": { "ocr": { "enabled": true } } in your request body. OCR processing takes longer but is required for Slate to detect sensitive data embedded in images.
2

Poll for redaction status

Call GET /v1/redactions/{redactionId}/status to check processing progress. This endpoint is lightweight — it reads from Slate’s job store, not from S3 — making it safe to poll frequently without incurring storage egress costs.
cURL
In-Progress Response
Completed Response
Poll until status is "completed" or "failed". Possible status values:Use exponential backoff starting at 3 seconds. Most documents complete within 15–60 seconds depending on page count and whether OCR is enabled.
3

Download the redacted PDF

Once status is "completed", retrieve the redacted file by calling GET /v1/redactions/{redactionId}/file. Slate returns a presigned S3 URL pointing to the output document. Calling this before the job reaches completed returns 409.
Inline Viewing
Force Download
Example Response
  • Omit ?download=true to get a URL suitable for inline browser rendering (PDF viewer, iframe).
  • Add ?download=true to get a URL with Content-Disposition: attachment, which forces the browser to prompt a file download.
The presigned download URL expires after 15 minutes. If your downstream consumer needs persistent access, store the redactionId and call this endpoint again to generate a fresh URL rather than caching the presigned URL itself.
4

Review the run summary

The completed status response includes a full run summary you can use for auditing, quality review, or reporting. Key fields:A non-zero ocrCount on a rule confirms that OCR detected sensitive data that was not accessible from the raw PDF text layer — useful evidence that OCR should remain enabled for that document type going forward.
Slate supports a labeling option that annotates each redaction box with a configurable label style rather than a plain black mask. Enable labeling by including "labeling": { "mode": "numbers", "ranges": [{ "startPage": 1, "endPage": 5 }] } in your job submission payload. Accepted modes are numbers, letters, pageNumbers, and none.