{
"type": "https://developers.gonitro.com/docs/build-nitro/errors#413-content-too-large",
"title": "Content too large",
"status": 413,
"detail": "Uploaded document exceeds the file size limit",
"instance": "/platform/transformations"
}
{
"type": "https://developers.gonitro.com/docs/build-nitro/errors#422-unprocessable-entity",
"title": "Unprocessable Entity",
"status": 422,
"detail": "The request was well-formed but could not be processed",
"instance": "/platform/transformations"
}
{
"type": "https://developers.gonitro.com/docs/build-nitro/errors#413-content-too-large",
"title": "Content too large",
"status": 413,
"detail": "Uploaded document exceeds the file size limit",
"instance": "/platform/transformations"
}
{
"type": "https://developers.gonitro.com/docs/build-nitro/errors#422-unprocessable-entity",
"title": "Unprocessable Entity",
"status": 422,
"detail": "The request was well-formed but could not be processed",
"instance": "/platform/transformations"
}
The Redact method of the Transformations endpoint lets you add redaction boxes to remove or hide sensitive content in a PDF.You provide an array of redaction entries, where each entry defines a bounding box to apply on a specific page. Each redaction box includes:
pageIndex: The zero-based index of the page where the redaction should be applied.
boundingBox: The position and size of the redaction area.See the bounding box guide for details on how coordinates work in the Nitro API.
label (optional): A label rendered onto the redaction box in the output — for example, the reason for the redaction. The label is drawn left-aligned in white 12pt Helvetica and is trimmed to fit the box width (no wrapping or overflow). Boxes without a label render as plain black boxes.
The Text Bounding Box method of the Extractions endpoint returns bounding box positions that can be used as input for the Redact method’s redactions parameter.
Result example:
Original PDF
Redacted PDF
Providing an out-of-range page index will result in an error response
Output File Format
The endpoint can return output either as JSON or as a binary file. The format depends on the Accept header (details below), which defaults to application/json.
Processing
When requesting JSON, you can run the operation synchronously or asynchronously. This is determined by the Prefer header (details below).
In sync mode, the response includes a URL pointing to the processed file.
In async mode, the request creates a Job, and the response contains the Job ID and status so you can track progress.
Binary (octet-stream) responses are only available for synchronous operations.
Custom File Delivery
The endpoint supports custom file-delivery destinations through the optional delivery parameter. You can provide an upload target, such as your own PUT endpoint or a pre-signed S3 URL, and Nitro will upload the resulting file there.
This works for both synchronous and asynchronous processing.
Sync delivery
In synchronous calls, the delivery parameter lets you direct Nitro to upload the output file to a custom URL endpoint or a pre-signed URL (e.g S3),
by providing an upload url in the uploadResultTo or uploadResultsTo properties.
Custom endpoint
If implementing the upload endpoint by yourself, make sure your code or middleware configuration accepts requests without content-type headers.
S3 delivery
If you are using S3 to manage delivery uploads, follow this AWS documentation to generate a pre-signed PUT URL.
If using the AWS provided Python script, omit the Content-Type in Params to get the pre-signed url. For example:
In asynchronous flows, you can also provide a custom URL or pre-signed S3 object via uploadResultTo or uploadResultsTo, to upload your file(s) once the Job is done processing.
Callback
For asynchronous processing, you can also include a callback URL within the delivery parameter. This callback is a POST endpoint that Nitro will call once the Job is created and running, providing details about the file-processing job.Example of Nitro’s callback request body:
This matrix shows the expected response behavior based on content type, sync/async mode, and custom file-delivery settings.
JSON (application/json)
Binary (application/octet-stream)
Synchronous
Returns a JSON object with a file(s) URL(s).
Returns the processed file directly as binary.
Asynchronous (respond-async)
Returns a JSON object with a Job ID and status.
Async preference ignored, returns sync binary.
Synchronous delivery
File delivered to custom endpoint / Bucket, returns success confirmation.
N/A
Asynchronous delivery
Returns a JSON object with a Job ID and status. The file(s) will be uploaded to the provided PUT endpoint / S3 Bucket at the end of process. If callback url is provided, Nitro will notify the endpoint with a JOB ID and location.
N/A
Limits
The Platform API has the following limits:
File size: Maximum of 100 MB per request for direct uploads and synchronous requests; asynchronous requests with remote-file (URL) input allow up to 300 MB. This applies to single-file and multi-file requests (multi-file requests are limited by their combined size). Some operations allow more — Merge accepts up to 1.5 GB for asynchronous remote-file input.
Page count: Maximum of 500 pages per individual document, or 2500 pages for asynchronous requests with remote-file (URL) input. This applies to single-file and multi-file requests. Multiple documents may exceed the page limit in total.
Retention time: Inputs and outputs are deleted approximately 15 minutes after the operation completes.
Request
Authorizations
Authorization
string
header
required
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Accept
enum<string>
default:*/*
Controls response format and behavior. See endpoint description above for detailed response combinations.
application/json: Returns JSON response with operation result
Controls synchronous vs asynchronous operation. See endpoint description above for behavior details.
respond-async: Makes request asynchronous, returns job status for polling
No value: Synchronous response
Available options:
respond-async
Body
multipart/form-data
method
enum<string>
default:redact
required
The Transformations' endpoint method: redact
Available options:
redact
params
Redact · object
required
Show child attributes
file
fileRemote file · object
required
The file to process. It can be provided as a binary upload or as a JSON remote file reference.
delivery
object
This endpoint lets you supply your own URLs to receive the multiple-file outputs. The URLs may point to a custom API endpoint or a pre-signed S3 URL.
The HTTP method defaults to PUT, but you can change it based on your implementation needs via the verb parameter. You can also provide custom headers, such as authentication headers or any others required by your endpoint.
Show child attributes
Response
Returns either JSON or binary output depending on the Accept header (defaults to JSON).
JSON responses include a file URL for synchronous tasks or a job status for asynchronous tasks.
Sync - Multiple Files
Async - Job
files
object[]
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Nitro APIs","colors":{"primary":"#D93706","light":"#FCAF9D","dark":"#D93706"},"logo":{"light":"https://www.gonitro.com/hubfs/Nitro_2025/logo-dark.svg","dark":"https://www.gonitro.com/hubfs/Nitro_2025/logo-light.svg","href":"https://www.gonitro.com/automate"},"favicon":"https://mintcdn.com/go-nitro/0xUomOly-LNhxK7b/favicon.ico?fit=max\u0026auto=format\u0026n=0xUomOly-LNhxK7b\u0026q=85\u0026s=646fb37e5970115d681bdd0d81ba8515","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required"}},"navbar":{"links":[{"icon":"newspaper","href":"https://www.gonitro.com/resources?type=developer_blog","label":"Blog"},{"icon":"headset","href":"https://help.gonitro.com/support","label":"Support"},{"icon":"arrow-right-to-bracket","href":"https://sso.gonitro.com/login","label":"Log In"}],"primary":{"type":"button","label":"Get API access","href":"https://sso.gonitro.com/platform-trial-signup"}},"footer":{"socials":{"instagram":"https://www.instagram.com/gonitro","youtube":"https://www.youtube.com/c/nitrosoftware","linkedin":"https://www.linkedin.com/company/go-nitro","facebook":"https://www.facebook.com/nitrosoftware"}},"seo":{"metatags":{"google-site-verification":"qdnOUtxzQiObiPkJRHptxlmvIVydZCoH1KBdB21IP8o"}},"fonts":{"heading":{"family":"DM Sans"},"body":{"family":"IBM Plex Sans"}},"integrations":{"gtm":{"tagId":"GTM-WVZNLW"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"go-nitro","hasAudioNarration":false,"actualSubdomain":"go-nitro","customDomains":["developers.gonitro.com"],"gitSource":{"type":"github","owner":"nitro","repo":"public-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5e069c24142980e6afaff","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"API Reference","count":161},{"language":"default","tag":"Nitro PDF \u0026 Sign","count":103},{"language":"default","tag":"Nitro Sign Enterprise Verified","count":89},{"language":"default","tag":"NSEV WebPortal API","count":75},{"language":"default","tag":"Sign API","count":40},{"language":"default","tag":"PDF Services","count":37},{"language":"default","tag":"Packages","count":16},{"language":"default","tag":"Documents","count":14},{"language":"default","tag":"Transformations","count":13},{"language":"default","tag":"Guides","count":12}],"searchSettings":{"isFiltersEnabled":false}},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"html[data-current-path^=\"/nsev\"] a[href*=\"sso.gonitro.com\"],html[data-current-path^=\"/nsev\"] a[href*=\"contact-sales/early-access-automate\"]{display:none!important}"}],"page":{"pagePath":"api-reference/platform/transformations/redact","slug":"/api-reference/platform/transformations/redact","pageMetadata":{"title":"Redact","description":"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.","summary":"Redact PDF file","openapi":"redact POST /transformations","href":"/api-reference/platform/transformations/redact"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CodeBlock,Columns,Heading,Note,OptimizedImage,Table,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`Redact`}),` method of the Transformations endpoint lets you add redaction boxes to remove or hide sensitive content in a PDF.`]}),`\n`,_jsx(_components.p,{children:`You provide an array of redaction entries, where each entry defines a bounding box to apply on a specific page. Each redaction box includes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`pageIndex`}),`: The zero-based index of the page where the redaction should be applied.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`boundingBox`}),`: The position and size of the redaction area.`]}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/build-nitro/bounding-box`,children:`bounding box guide`}),` for details on how coordinates work in the Nitro API.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`label`}),` (optional): A label rendered onto the redaction box in the output — for example, the reason for the redaction. The label is drawn left-aligned in white 12pt Helvetica and is trimmed to fit the box width (no wrapping or overflow). Boxes without a label render as plain black boxes.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(Tip,{children:[`The `,_jsx(_components.a,{href:`/api-reference/platform/extractions/text-box`,children:`Text Bounding Box`}),` method of the Extractions endpoint returns bounding box positions that can be used as input for the Redact method’s `,_jsx(_components.code,{children:`redactions`}),` parameter.`]}),`\n`,_jsx(_components.p,{children:`Result example:`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Original PDF`,children:_jsx(OptimizedImage,{style:{width:`300px`},src:`https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=269620b07a0689f56ede9af3a8da574b`,\"data-og-width\":`300`,width:`300`,\"data-og-height\":`424`,height:`424`,\"data-path\":`images/nitro_upload_test_document.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?w=280\u0026fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=3bed8f9c862baf2fb2f92818ce615f3c 280w, https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?w=560\u0026fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=7a40839c8c8709179fef3a752fa61c7e 560w, https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?w=840\u0026fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=cd9d39761a2a9b46765efe8de2b7cc29 840w, https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?w=1100\u0026fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=08703219311c9c7282e0ad256a6e4a2b 1100w, https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?w=1650\u0026fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=afe9a4d6a2edd03530096652354221dd 1650w, https://mintcdn.com/go-nitro/hTrRSm5Cs4ZCGt5h/images/nitro_upload_test_document.png?w=2500\u0026fit=max\u0026auto=format\u0026n=hTrRSm5Cs4ZCGt5h\u0026q=85\u0026s=c2a587d32c7c84e926d01164700f6c8e 2500w`})}),_jsx(Card,{title:`Redacted PDF`,children:_jsx(OptimizedImage,{style:{width:`300px`},src:`https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=eb7bcbfecdb8da7d944a99a70b718fac`,\"data-og-width\":`660`,width:`660`,\"data-og-height\":`938`,height:`938`,\"data-path\":`images/platform/nitro-redacted.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?w=280\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=8e2eee7f17f950f487e5457bcd9ecfc3 280w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?w=560\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=8c222a377d46cd10c94ec9fc0ffaab4f 560w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?w=840\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=3ef65d29f42a6af99989b01835979fb6 840w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=43ed07aa04ca1b3deec8deda76541549 1100w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=d3ef372cd71b13bb0849055babbbae4e 1650w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-redacted.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=de9d0cd1d1798d8821fb5f0f950588f0 2500w`})})]}),`\n`,_jsx(Note,{children:`Providing an out-of-range page index will result in an error response`}),`\n`,_jsx(Heading,{level:`3`,id:`output-file-format`,children:`Output File Format`}),`\n`,_jsxs(_components.p,{children:[`The endpoint can return output either as JSON or as a binary file. The format depends on the `,_jsx(_components.code,{children:`Accept`}),` header (details below), which defaults to application/json.`]}),`\n`,_jsx(Heading,{level:`3`,id:`processing`,children:`Processing`}),`\n`,_jsxs(_components.p,{children:[`When requesting JSON, you can run the operation synchronously or asynchronously. This is determined by the `,_jsx(_components.code,{children:`Prefer`}),` header (details below).`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`In sync mode, the response includes a URL pointing to the processed file.`}),`\n`,_jsx(_components.li,{children:`In async mode, the request creates a Job, and the response contains the Job ID and status so you can track progress.`}),`\n`]}),`\n`,_jsx(Note,{children:`Binary (octet-stream) responses are only available for synchronous operations.`}),`\n`,_jsx(Heading,{level:`3`,id:`custom-file-delivery`,children:`Custom File Delivery`}),`\n`,_jsx(_components.p,{children:`The endpoint supports custom file-delivery destinations through the optional delivery parameter. You can provide an upload target, such as your own PUT endpoint or a pre-signed S3 URL, and Nitro will upload the resulting file there.\nThis works for both synchronous and asynchronous processing.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(Heading,{level:`3`,id:`sync-delivery`,children:`Sync delivery`}),`\n`,_jsxs(_components.p,{children:[`In synchronous calls, the `,_jsx(_components.a,{href:`#body-delivery`,children:`delivery`}),` parameter lets you direct Nitro to upload the output file to a custom URL endpoint or a pre-signed URL (e.g S3),\nby providing an upload url in the `,_jsx(_components.code,{children:`uploadResultTo`}),` or `,_jsx(_components.code,{children:`uploadResultsTo`}),` properties.`]}),`\n`,_jsx(Heading,{level:`4`,id:`custom-endpoint`,children:`Custom endpoint`}),`\n`,_jsx(Tip,{children:`If implementing the upload endpoint by yourself, make sure your code or middleware configuration accepts requests without content-type headers.`}),`\n`,_jsx(Heading,{level:`4`,id:`s3-delivery`,children:`S3 delivery`}),`\n`,_jsxs(_components.p,{children:[`If you are using S3 to manage delivery uploads, follow this `,_jsx(_components.a,{href:`https://docs.aws.amazon.com/AmazonS3/latest/userguide/PresignedUrlUploadObject.html`,children:`AWS documentation`}),` to generate a pre-signed PUT URL.\n`,_jsxs(Tip,{children:[`If using the AWS provided Python script, omit the `,_jsx(_components.code,{children:`Content-Type`}),` in Params to get the pre-signed url. For example:`]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` generate_presigned_url(`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` s3_client,`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"put_object\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Bucket\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: args.bucket, `})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: args.key,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Content-Type: \"application/octet-stream\" => Omit!`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(Heading,{level:`3`,id:`async-delivery`,children:`Async delivery`}),`\n`,_jsxs(_components.p,{children:[`In asynchronous flows, you can also provide a custom URL or pre-signed S3 object via `,_jsx(_components.code,{children:`uploadResultTo`}),` or `,_jsx(_components.code,{children:`uploadResultsTo`}),`, to upload your file(s) once the Job is done processing.`]}),`\n`,_jsx(Heading,{level:`4`,id:`callback`,children:`Callback`}),`\n`,_jsxs(_components.p,{children:[`For asynchronous processing, you can also include a `,_jsx(_components.a,{href:`#body-delivery-callback`,children:`callback`}),` URL within the delivery parameter. This callback is a POST endpoint that Nitro will call once the Job is created and running, providing details about the file-processing job.`]}),`\n`,_jsx(_components.p,{children:`Example of Nitro’s callback request body:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"jobID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"babe2aa7-9b5d-4eb2-a679-5fc12cf0a490\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"location\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.gonitro.dev/jobs/babe2aa7-9b5d-4eb2-a679-5fc12cf0a490\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`response-behavior-matrix`,children:`Response behavior Matrix`}),`\n`,_jsx(_components.p,{children:`This matrix shows the expected response behavior based on content type, sync/async mode, and custom file-delivery settings.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:_jsxs(_components.strong,{children:[`JSON (`,_jsx(_components.code,{children:`application/json`}),`)`]})}),_jsx(_components.th,{children:_jsxs(_components.strong,{children:[`Binary (`,_jsx(_components.code,{children:`application/octet-stream`}),`)`]})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Synchronous`})}),_jsx(_components.td,{children:`Returns a JSON object with a file(s) URL(s).`}),_jsx(_components.td,{children:`Returns the processed file directly as binary.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsxs(_components.strong,{children:[`Asynchronous (`,_jsx(_components.code,{children:`respond-async`}),`)`]})}),_jsx(_components.td,{children:`Returns a JSON object with a Job ID and status.`}),_jsx(_components.td,{children:`Async preference ignored, returns sync binary.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Synchronous delivery`})}),_jsx(_components.td,{children:`File delivered to custom endpoint / Bucket, returns success confirmation.`}),_jsx(_components.td,{children:`N/A`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Asynchronous delivery`})}),_jsxs(_components.td,{children:[`Returns a JSON object with a Job ID and status. The file(s) will be uploaded to the provided PUT endpoint / S3 Bucket at the end of process. If `,_jsx(_components.code,{children:`callback`}),` url is provided, Nitro will notify the endpoint with a JOB ID and location.`]}),_jsx(_components.td,{children:`N/A`})]})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`limits`,children:`Limits`}),`\n`,_jsx(_components.p,{children:`The Platform API has the following limits:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`File size: Maximum of 100 MB per request for direct uploads and synchronous requests; asynchronous requests with remote-file (URL) input allow up to 300 MB. This applies to single-file and multi-file requests (multi-file requests are limited by their combined size). Some operations allow more — Merge accepts up to 1.5 GB for asynchronous remote-file input.`}),`\n`,_jsx(_components.li,{children:`Page count: Maximum of 500 pages per individual document, or 2500 pages for asynchronous requests with remote-file (URL) input. This applies to single-file and multi-file requests. Multiple documents may exceed the page limit in total.`}),`\n`,_jsx(_components.li,{children:`Retention time: Inputs and outputs are deleted approximately 15 minutes after the operation completes.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`request`,children:`Request`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Redact","description":"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.","summary":"Redact PDF file","openapi":"redact POST /transformations","href":"/api-reference/platform/transformations/redact"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Output File Format","slug":"output-file-format","depth":3,"children":[]},{"title":"Processing","slug":"processing","depth":3,"children":[]},{"title":"Custom File Delivery","slug":"custom-file-delivery","depth":3,"children":[]},{"title":"Sync delivery","slug":"sync-delivery","depth":3,"children":[]},{"title":"Custom endpoint","slug":"custom-endpoint","depth":4,"children":[]},{"title":"S3 delivery","slug":"s3-delivery","depth":4,"children":[]},{"title":"Async delivery","slug":"async-delivery","depth":3,"children":[]},{"title":"Callback","slug":"callback","depth":4,"children":[]},{"title":"Response behavior Matrix","slug":"response-behavior-matrix","depth":4,"children":[]},{"title":"Limits","slug":"limits","depth":4,"children":[]},{"title":"Request","slug":"request","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Transformations"],"summary":"Redact PDF pages","description":"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.","parameters":["3899f2f9-9cf1-430c-b991-31427c06f231","f61e871f-1c55-4520-9be3-a0784c38ed55"],"requestBody":"9bfd0397-cc52-4587-a849-751cf568dbce","responses":{"200":"cae2a969-2df6-4b10-a283-8ba751ac2de4","400":"35e657a4-904a-423f-8f6e-76ea577177a7","401":"1a93a1ba-c285-43b5-b342-f859bcd55b23","404":"497c9ef0-0023-4ddf-a4d5-0a53cae2da82","413":"8299262f-972a-4775-82cc-8b8059f05e19","422":"bdf1c662-3770-4f70-b87e-a46ed470c9c9","500":"90041cbe-cc02-4264-9f49-a1e8adbb63cc"},"security":["f62a351f-b8c7-4d2b-9d3d-60cffe8c6db9"],"method":"post","type":"path","servers":["bfed7540-9f58-4e6f-8328-6361b5e04583","578d7ad9-0075-4820-a792-dc8cdf7a8ef6","f458f7f0-086a-4244-8f36-f06cbe21d71a"],"path":"/transformations","baseUrlOptions":["https://api.gonitro.dev","https://api.us.gonitro.dev","https://api.au.gonitro.dev"],"title":"Redact PDF pages","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"3899f2f9-9cf1-430c-b991-31427c06f231":{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/json","application/octet-stream","*/*"],"default":"*/*","description":"Controls response format and behavior. See endpoint description above for detailed response combinations.\n- `application/json`: Returns JSON response with operation result\n- `application/octet-stream`: Returns binary file content \n- `*/*`: Defaults to JSON response","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"f61e871f-1c55-4520-9be3-a0784c38ed55":{"name":"Prefer","in":"header","schema":{"type":"string","enum":["respond-async"],"description":"Controls synchronous vs asynchronous operation. See endpoint description above for behavior details.\n- `respond-async`: Makes request asynchronous, returns job status for polling\n- No value: Synchronous response","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"method":{"type":"string","description":"The Transformations' endpoint method: `redact`","default":"redact","enum":["redact"],"isRequired":true,"uniqueKey":"method","typeLabel":"enum\u003cstring>"},"params":{"title":"Redact","type":"object","properties":{"redactions":{"type":"array","items":{"type":"object","properties":{"pageIndex":{"type":"integer","description":"Zero-based page index to position a redaction box.","isRequired":true,"uniqueKey":"params.redactions.items.[INDEX].pageIndex","typeLabel":"integer"},"boundingBox":{"type":"array","items":{"type":"number","uniqueKey":"params.redactions.items.[INDEX].boundingBox.items.[INDEX]","typeLabel":"number"},"minItems":4,"maxItems":4,"description":"An array of numbers in the format [x, y, w, h] that defines the redaction's bounding box on the page: \n - `x, y` are the coordinates of the top-left corner, measured in points (pt). \n - `w, h` are the width and height of the bounding box, also in points (pt). \n\n For more information on calculating positions, see the [Bounding Box Guide](/build-nitro/bounding-box).","isRequired":true,"uniqueKey":"params.redactions.items.[INDEX].boundingBox","typeLabel":"number[]"},"label":{"type":"string","description":"Optional label rendered onto the redaction box in the output (for example, the reason for the redaction). Rendered left-aligned in white 12pt Helvetica and trimmed to fit the box width — no wrapping or overflow.","example":"Attorney-Client Privilege","uniqueKey":"params.redactions.items.[INDEX].label","typeLabel":"string"}},"required":["pageIndex","boundingBox"],"uniqueKey":"params.redactions.items.[INDEX]","typeLabel":"object"},"description":"Array of redaction areas bounding boxes and corresponding page indices.","example":[{"pageIndex":0,"boundingBox":[100,100,200,120]},{"pageIndex":1,"boundingBox":[50,50,150,70]}],"isRequired":true,"uniqueKey":"params.redactions","typeLabel":"object[]"}},"required":["redactions"],"isRequired":true,"uniqueKey":"params","typeLabel":"Redact · object"},"file":{"oneOf":[{"type":"string","description":"The file to process. It can be provided as a binary upload or as a JSON remote file reference. \n\n","format":"binary","isRequired":true,"uniqueKey":"file.oneOf.0","typeLabel":"file"},{"type":"object","title":"Remote file","description":"The file to process. It can be provided as a binary upload or as a JSON remote file reference. \n\n","required":["URL","contentType"],"properties":{"URL":{"type":"string","format":"uri","description":"URL of the remote file to process","isRequired":true,"uniqueKey":"file.oneOf.1.URL","typeLabel":"string\u003curi>"},"contentType":{"type":"string","description":"The MIME type of the remote file","example":"application/pdf","isRequired":true,"uniqueKey":"file.oneOf.1.contentType","typeLabel":"string"}},"isRequired":true,"uniqueKey":"file.oneOf.1","typeLabel":"Remote file · object"}],"isRequired":true,"uniqueKey":"file","typeLabel":"file | Remote file · object"},"delivery":{"type":"object","properties":{"uploadResultsTo":{"type":"array","items":{"type":"object","properties":{"URL":{"type":"string","description":"Your delivery endpoint URL","nullable":false,"format":"uri","isRequired":true,"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].URL","typeLabel":"string\u003curi>"},"verb":{"type":"string","description":"The HTTP method","default":"PUT","enum":["GET","POST","PUT","DELETE","PATCH"],"isRequired":true,"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].verb","typeLabel":"enum\u003cstring>"},"headers":{"oneOf":[{"type":"array","description":"Headers your file delivery endpoint might need (Optional)","items":{"type":"object","properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].headers.oneOf.0.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].headers.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].headers.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].headers.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Headers your file delivery endpoint might need (Optional)","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"]},"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery.uploadResultsTo.items.[INDEX].headers","typeLabel":"object[] | null"}},"required":["URL","verb"],"uniqueKey":"delivery.uploadResultsTo.items.[INDEX]","typeLabel":"object"},"uniqueKey":"delivery.uploadResultsTo","typeLabel":"object[]"}},"description":"This endpoint lets you supply your own URLs to receive the multiple-file outputs. The URLs may point to a custom API endpoint or a pre-signed S3 URL. \n\n The HTTP method defaults to PUT, but you can change it based on your implementation needs via the `verb` parameter. You can also provide custom headers, such as authentication headers or any others required by your endpoint.","uniqueKey":"delivery","typeLabel":"object"}},"required":["method","params","file"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"method":"redact","params":{"redactions":[{"pageIndex":0,"boundingBox":[100,100,200,120]},{"pageIndex":1,"boundingBox":[50,50,150,70]}]},"file":"\u003cstring>","delivery":{"uploadResultsTo":[{"URL":"\u003cstring>","verb":"PUT","headers":[{"name":"\u003cstring>","value":"\u003cstring>"}]}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"cae2a969-2df6-4b10-a283-8ba751ac2de4":{"description":"Returns either JSON or binary output depending on the Accept header (defaults to JSON).\n JSON responses include a file URL for synchronous tasks or a job status for asynchronous tasks.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Sync - Multiple Files","properties":{"files":{"type":"array","items":{"type":"object","properties":{"URL":{"oneOf":[{"type":"string","format":"uri","description":"URL with processed file for download. Field will be `null` if `delivery` parameter for post-processing upload is defined.","uniqueKey":"oneOf.0.files.items.[INDEX].URL.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"URL with processed file for download. Field will be `null` if `delivery` parameter for post-processing upload is defined.","uniqueKey":"oneOf.0.files.items.[INDEX].URL.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.files.items.[INDEX].URL","typeLabel":"string\u003curi> | null"},"contentType":{"type":"string","description":"The file type","example":"application/json","uniqueKey":"oneOf.0.files.items.[INDEX].contentType","typeLabel":"string"},"metadata":{"type":"object","properties":{"fileSizeBytes":{"oneOf":[{"type":"number","uniqueKey":"oneOf.0.files.items.[INDEX].metadata.fileSizeBytes.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"oneOf.0.files.items.[INDEX].metadata.fileSizeBytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.files.items.[INDEX].metadata.fileSizeBytes","typeLabel":"number | null"},"pageCount":{"oneOf":[{"type":"number","description":"Number of pages in resulting document.","uniqueKey":"oneOf.0.files.items.[INDEX].metadata.pageCount.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of pages in resulting document.","uniqueKey":"oneOf.0.files.items.[INDEX].metadata.pageCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.files.items.[INDEX].metadata.pageCount","typeLabel":"number | null"}},"uniqueKey":"oneOf.0.files.items.[INDEX].metadata","typeLabel":"object"}},"uniqueKey":"oneOf.0.files.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.files","typeLabel":"object[]"}},"uniqueKey":"oneOf.0","typeLabel":"Sync - Multiple Files · object"},{"type":"object","title":"Async - Job","properties":{"jobID":{"type":"string","example":"01234567-89ab-cdef-0123-456789abcdef","uniqueKey":"oneOf.1.jobID","typeLabel":"string"},"status":{"type":"string","enum":["running"],"uniqueKey":"oneOf.1.status","typeLabel":"enum\u003cstring>"},"progress":{"type":"number","description":"Progress of the job as a float between 0.0 and 1.0","format":"float","default":0,"example":0,"uniqueKey":"oneOf.1.progress","typeLabel":"number\u003cfloat>"}},"uniqueKey":"oneOf.1","typeLabel":"Async - Job · object"}],"uniqueKey":"","typeLabel":"Sync - Multiple Files · object | Async - Job · object"},"examples":{"Example":{"title":"Example","value":{"files":[{"URL":"\u003cstring>","contentType":"application/json","metadata":{"fileSizeBytes":123,"pageCount":123}}]}}},"exampleType":"generated"},"application/octet-stream":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"35e657a4-904a-423f-8f6e-76ea577177a7":{"description":"Bad Request - Invalid request parameters","content":{"application/problem+json":{"schema":{"type":"object","description":"Bad Request error details","example":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#400-bad-request","title":"Bad Request","status":400,"detail":"Request validation failed","instance":"/platform/transformations"},"properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short, human-readable summary of the problem type","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","description":"The HTTP status code","uniqueKey":"status","typeLabel":"integer\u003cint32>"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence","uniqueKey":"instance","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#400-bad-request","title":"Bad Request","status":400,"detail":"Request validation failed","instance":"/platform/transformations"}}},"exampleType":"generated"}},"exampleType":"generated"},"1a93a1ba-c285-43b5-b342-f859bcd55b23":{"description":"Unauthorized - Invalid or missing Authorization header","content":{"application/problem+json":{"schema":{"type":"object","description":"Unauthorized error details","example":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#401-unauthorized","title":"Unauthorized","status":401,"detail":"Missing or invalid Authorization header","instance":"/platform/transformations"},"properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short, human-readable summary of the problem type","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","description":"The HTTP status code","uniqueKey":"status","typeLabel":"integer\u003cint32>"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence","uniqueKey":"instance","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#401-unauthorized","title":"Unauthorized","status":401,"detail":"Missing or invalid Authorization header","instance":"/platform/transformations"}}},"exampleType":"generated"}},"exampleType":"generated"},"497c9ef0-0023-4ddf-a4d5-0a53cae2da82":{"description":"Not Found - Resource not found","content":{"application/problem+json":{"schema":{"type":"object","description":"Not Found error details","example":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#404-not-found","title":"Not Found","status":404,"detail":"Resource not found","instance":"/platform/transformations"},"properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short, human-readable summary of the problem type","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","description":"The HTTP status code","uniqueKey":"status","typeLabel":"integer\u003cint32>"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence","uniqueKey":"instance","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#404-not-found","title":"Not Found","status":404,"detail":"Resource not found","instance":"/platform/transformations"}}},"exampleType":"generated"}},"exampleType":"generated"},"8299262f-972a-4775-82cc-8b8059f05e19":{"description":"Content Too Large - File size exceeds limit","content":{"application/problem+json":{"schema":{"type":"object","description":"Content too large error details","example":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#413-content-too-large","title":"Content too large","status":413,"detail":"Uploaded document exceeds the file size limit","instance":"/platform/transformations"},"properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short, human-readable summary of the problem type","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","description":"The HTTP status code","uniqueKey":"status","typeLabel":"integer\u003cint32>"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence","uniqueKey":"instance","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#413-content-too-large","title":"Content too large","status":413,"detail":"Uploaded document exceeds the file size limit","instance":"/platform/transformations"}}},"exampleType":"generated"}},"exampleType":"generated"},"bdf1c662-3770-4f70-b87e-a46ed470c9c9":{"description":"Unprocessable Entity - Request cannot be processed","content":{"application/problem+json":{"schema":{"type":"object","description":"Unprocessable Entity error details","example":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#422-unprocessable-entity","title":"Unprocessable Entity","status":422,"detail":"The request was well-formed but could not be processed","instance":"/platform/transformations"},"properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short, human-readable summary of the problem type","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","description":"The HTTP status code","uniqueKey":"status","typeLabel":"integer\u003cint32>"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence","uniqueKey":"instance","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#422-unprocessable-entity","title":"Unprocessable Entity","status":422,"detail":"The request was well-formed but could not be processed","instance":"/platform/transformations"}}},"exampleType":"generated"}},"exampleType":"generated"},"90041cbe-cc02-4264-9f49-a1e8adbb63cc":{"description":"Internal Server Error - An unexpected error occurred","content":{"application/problem+json":{"schema":{"type":"object","description":"Internal Server Error details","example":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#500-internal-server-error","title":"Internal Server Error","status":500,"detail":"An unexpected error occurred","instance":"/platform/transformations"},"properties":{"type":{"type":"string","description":"A URI reference that identifies the problem type","uniqueKey":"type","typeLabel":"string"},"title":{"type":"string","description":"A short, human-readable summary of the problem type","uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","format":"int32","description":"The HTTP status code","uniqueKey":"status","typeLabel":"integer\u003cint32>"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence","uniqueKey":"detail","typeLabel":"string"},"instance":{"type":"string","description":"A URI reference that identifies the specific occurrence","uniqueKey":"instance","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"https://developers.gonitro.com/docs/build-nitro/errors#500-internal-server-error","title":"Internal Server Error","status":500,"detail":"An unexpected error occurred","instance":"/platform/transformations"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f62a351f-b8c7-4d2b-9d3d-60cffe8c6db9":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"bfed7540-9f58-4e6f-8328-6361b5e04583":{"url":"https://api.gonitro.dev","description":"Europe"},"578d7ad9-0075-4820-a792-dc8cdf7a8ef6":{"url":"https://api.us.gonitro.dev","description":"North America"},"f458f7f0-086a-4244-8f36-f06cbe21d71a":{"url":"https://api.au.gonitro.dev","description":"Australia"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/platform/output/redact.json"},"subdomain":"go-nitro","siteName":"Nitro APIs","title":"Redact - Nitro APIs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T15:51:48.427Z","originalFileLocation":"api-reference/platform/transformations/redact.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nitro APIs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Redact - Nitro APIs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nitro APIs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://go-nitro.mintlify.site/docs/_mintlify/api/og/v2?division=Transformations\u0026amp;title=Redact\u0026amp;description=Permanently+remove+or+hide+sensitive+content+in+a+PDF+with+the+Nitro+API+by+applying+redaction+boxes+to+specific+pages.\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=3e0d364d8d78bbffc995ad42781b4f9529625000196bc1ac627cf9085f973310\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Redact - Nitro APIs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://go-nitro.mintlify.site/docs/_mintlify/api/og/v2?division=Transformations\u0026amp;title=Redact\u0026amp;description=Permanently+remove+or+hide+sensitive+content+in+a+PDF+with+the+Nitro+API+by+applying+redaction+boxes+to+specific+pages.\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=3e0d364d8d78bbffc995ad42781b4f9529625000196bc1ac627cf9085f973310\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/go-nitro/zmdJVHCbyTDP-GYA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nitro APIs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#D93706\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"qdnOUtxzQiObiPkJRHptxlmvIVydZCoH1KBdB21IP8o\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/platform/transformations/redact.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.gonitro.com/#organization\",\"name\":\"Nitro APIs\",\"url\":\"https://developers.gonitro.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.gonitro.com/hubfs/Nitro_2025/logo-dark.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.gonitro.com/docs#website\",\"name\":\"Nitro APIs\",\"url\":\"https://developers.gonitro.com/docs\",\"publisher\":{\"@id\":\"https://developers.gonitro.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact#webpage\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact\",\"name\":\"Redact\",\"description\":\"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.\",\"dateModified\":\"2026-11-12T15:51:48.427Z\",\"isPartOf\":{\"@id\":\"https://developers.gonitro.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PDF Services\",\"item\":\"https://developers.gonitro.com/docs/build-nitro/optimize-pdf\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Transformations\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/ocr\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Redact\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact#apireference\",\"headline\":\"Redact\",\"name\":\"Redact\",\"description\":\"Permanently remove or hide sensitive content in a PDF with the Nitro API by applying redaction boxes to specific pages.\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact\",\"mainEntityOfPage\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/redact#webpage\"},\"dateModified\":\"2026-11-12T15:51:48.427Z\",\"publisher\":{\"@id\":\"https://developers.gonitro.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.gonitro.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nitro APIs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Nitro APIs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/platform/transformations/redact.md","siteName":"Nitro APIs","nav":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/"}]},"products":[{"product":"Nitro PDF \u0026 Sign","icon":"file-signature","tabs":[{"tab":"API Reference","groups":[{"group":"Start Here","icon":"rocket","pages":[{"title":"Access the Nitro APIs","href":"/getting-started/basic-setup"},{"title":"Get API Credentials","href":"/authentication/credentials"},{"title":"Generate Access Tokens","href":"/authentication/token-renew"},{"group":"Authentication API","icon":"shield","pages":[{"title":"Get Access Token","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /oauth/token","href":"/api-reference/authentication/get-access-token"}]}]},{"group":"PDF Services","icon":"file-pdf","pages":[{"group":"Guides","expanded":false,"pages":[{"title":"Optimize PDF Tutorial","href":"/build-nitro/optimize-pdf"},{"title":"Callbacks","href":"/build-nitro/pdf-services-callbacks"},{"title":"Bounding Box Guide","href":"/build-nitro/bounding-box"},{"title":"PDF Services Postman Collection","href":"/build-nitro/pdf-services-postman-collection"}]},{"group":"Transformations","icon":"wand-magic-sparkles","expanded":false,"pages":[{"title":"OCR","openapi":"ocr POST /transformations","href":"/api-reference/platform/transformations/ocr"},{"title":"Optimize","openapi":"optimize POST /transformations","href":"/api-reference/platform/transformations/optimize"},{"title":"Compress","openapi":"compress POST /transformations","href":"/api-reference/platform/transformations/compress"},{"title":"Watermark","description":"Add an image watermark to any PDF page with the Nitro API. Control position, size, opacity, rotation, and placement.","openapi":"watermark POST /transformations","href":"/api-reference/platform/transformations/watermark"},{"title":"Redact","openapi":"redact POST /transformations","href":"/api-reference/platform/transformations/redact"},{"title":"Merge","description":"Combine multiple PDF files into a single document with the Nitro API, preserving page order across all files.","openapi":"merge POST /transformations","href":"/api-reference/platform/transformations/merge"},{"title":"Split","openapi":"split POST /transformations","href":"/api-reference/platform/transformations/split"},{"title":"Flatten","openapi":"flatten POST /transformations","href":"/api-reference/platform/transformations/flatten"},{"title":"Rotate","sidebarTitle":"Rotate","openapi":"rotate POST /transformations","href":"/api-reference/platform/transformations/rotate"},{"title":"Delete Pages","openapi":"delete POST /transformations","href":"/api-reference/platform/transformations/delete"},{"title":"Protect","openapi":"protect POST /transformations","href":"/api-reference/platform/transformations/protect"},{"title":"Unprotect","openapi":"unprotect POST /transformations","href":"/api-reference/platform/transformations/unprotect"},{"title":"Set Properties","openapi":"set-properties POST /transformations","href":"/api-reference/platform/transformations/properties"}]},{"group":"Extractions","icon":"file-export","expanded":false,"pages":[{"title":"Text","openapi":"extract-text POST /extractions","href":"/api-reference/platform/extractions/text"},{"title":"Forms","openapi":"forms POST /extractions","href":"/api-reference/platform/extractions/forms"},{"title":"Extract Fillable Form Data","openapi":"extract-fillable-form-data POST /extractions","href":"/api-reference/platform/extractions/extract-fillable-form-data"},{"title":"Smart Detect Form Fields","openapi":"smart-detect-form-fields POST /extractions","href":"/api-reference/platform/extractions/smart-detect-form-fields"},{"title":"Tables","openapi":"tables POST /extractions","href":"/api-reference/platform/extractions/tables"},{"title":"PII Bounding Boxes","openapi":"pii POST /extractions","href":"/api-reference/platform/extractions/pii"},{"title":"Text Bounding Boxes","openapi":"text-box POST /extractions","href":"/api-reference/platform/extractions/text-box"},{"title":"Properties","openapi":"get-properties POST /extractions","href":"/api-reference/platform/extractions/properties"},{"title":"Invoices","openapi":"extract-invoices POST /extractions","href":"/api-reference/platform/extractions/extract-invoices"}]},{"group":"Generations","icon":"file-circle-plus","expanded":false,"pages":[{"title":"Fill Forms","openapi":"fill-forms POST /generations","href":"/api-reference/platform/generations/fill-forms"},{"title":"Create Fillable Forms","openapi":"create-fillable-forms POST /generations","href":"/api-reference/platform/generations/create-fillable-forms"}]},{"group":"Conversions","icon":"arrows-rotate","expanded":false,"pages":[{"title":"PDF to MS Office","openapi":"pdftoms POST /conversions","href":"/api-reference/platform/conversions/pdftoms"},{"title":"MS Office to PDF","openapi":"mstopdf POST /conversions","href":"/api-reference/platform/conversions/mstopdf"},{"title":"PDF to Image","openapi":"pdftoimg POST /conversions","href":"/api-reference/platform/conversions/pdftoimg"},{"title":"Image to PDF","openapi":"imgtopdf POST /conversions","href":"/api-reference/platform/conversions/imgtopdf"},{"title":"Miscellaneous to PDF","openapi":"misctopdf POST /conversions","href":"/api-reference/platform/conversions/misctopdf"},{"title":"PDF to PDF/A","openapi":"pdfa POST /conversions","href":"/api-reference/platform/conversions/pdfa"}]},{"group":"Jobs","icon":"wrench","expanded":false,"pages":[{"title":"Job Status","openapi":"job GET /jobs/{jobID}/status","href":"/api-reference/platform/jobs/status"},{"title":"Job Results","openapi":"job GET /jobs/{jobID}","href":"/api-reference/platform/jobs/result"}]},{"group":"Presigned URLs","icon":"link","expanded":false,"pages":[{"title":"Request Presigned File URLs","openapi":"presigned-file-urls POST /presigned-file-urls","href":"/api-reference/platform/presigned-urls/request"}]}]},{"group":"Sign API","icon":"signature","pages":[{"group":"Guides","expanded":false,"pages":[{"title":"Make your first 'Get Envelopes' API call","href":"/getting-started/first-sign-api-call"},{"title":"Create Envelope Tutorial","href":"/build-nitro/create-envelope"},{"title":"Webhooks","href":"/build-nitro/sign-webhooks"},{"title":"Sign Postman Collection","href":"/build-nitro/sign-postman-collection"}]},{"group":"Envelopes","icon":"envelope","expanded":false,"pages":[{"title":"List Envelopes","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes","href":"/api-reference/sign/list-envelopes"},{"title":"Get Envelope by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}","href":"/api-reference/sign/get-envelope-by-id"},{"title":"Delete Envelope by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json delete /sign/envelopes/{envelopeID}","href":"/api-reference/sign/delete-envelope-by-id"},{"title":"Update Envelope","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json patch /sign/envelopes/{envelopeID}","href":"/api-reference/sign/update-envelope"},{"title":"Create Envelope","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes","href":"/api-reference/sign/create-envelope"},{"title":"Cancel Envelope by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json put /sign/envelopes/{envelopeID}:cancel","href":"/api-reference/sign/cancel-envelope-by-id"},{"title":"Send Envelope for Signing","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}:send-for-signing","href":"/api-reference/sign/send-envelope-for-signing"},{"title":"Send Reminders for Envelope","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}:send-reminders","href":"/api-reference/sign/send-reminders-for-envelope"},{"title":"Download Sealed Envelope","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}:download-sealed","href":"/api-reference/sign/download-sealed-envelope"},{"title":"Download Original Envelope","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}:download-original","href":"/api-reference/sign/download-original-envelope"},{"title":"Download Audit Trail of Envelope","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}:download-audit-trail","href":"/api-reference/sign/download-audit-trail-of-envelope"}]},{"group":"Documents","icon":"file-pdf","expanded":false,"pages":[{"title":"List Documents by Envelope ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}/documents","href":"/api-reference/sign/list-documents-by-envelope-id"},{"title":"Create Document by Envelope ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}/documents","href":"/api-reference/sign/create-document-by-envelope-id"},{"title":"Reorder Documents by Envelope ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json put /sign/envelopes/{envelopeID}/documents:reorder","href":"/api-reference/sign/reorder-documents-by-envelope-id"},{"title":"Get Document by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}/documents/{documentID}","href":"/api-reference/sign/get-document-by-id"},{"title":"Delete Document by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json delete /sign/envelopes/{envelopeID}/documents/{documentID}","href":"/api-reference/sign/delete-document-by-id"},{"title":"Update Document by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json patch /sign/envelopes/{envelopeID}/documents/{documentID}","href":"/api-reference/sign/update-document-by-id"},{"title":"Download Sealed Document by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}/documents/{documentID}:download-sealed","href":"/api-reference/sign/download-sealed-document-by-id"}]},{"group":"Fields","icon":"signature","expanded":false,"pages":[{"title":"Create Field(s) by Document ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}/documents/{documentID}/fields","href":"/api-reference/sign/create-fields-by-document-id"},{"title":"List Fields by Document ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}/documents/{documentID}/fields","href":"/api-reference/sign/list-fields-by-document-id"},{"title":"Delete Field by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json delete /sign/envelopes/{envelopeID}/documents/{documentID}/fields/{fieldID}","href":"/api-reference/sign/delete-field-by-id"},{"title":"Delete Fields by Field IDs","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}/documents/{documentID}/fields:batch-delete","href":"/api-reference/sign/delete-fields-by-field-ids"},{"title":"Update Field by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json patch /sign/envelopes/{envelopeID}/documents/{documentID}/fields/{fieldID}","href":"/api-reference/sign/update-field-by-id"}]},{"group":"Participants","icon":"users","expanded":false,"pages":[{"title":"Delete Participant by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json delete /sign/envelopes/{envelopeID}/participants/{participantID}","href":"/api-reference/sign/delete-participant-by-id"},{"title":"List Participants by Envelope ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}/participants","href":"/api-reference/sign/list-participants-by-envelope-id"},{"title":"List Participant Signing URLs by Envelope ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /sign/envelopes/{envelopeID}/participants/signing-urls","href":"/api-reference/sign/list-participant-signing-urls-by-envelope-id"},{"title":"Create Participant(s) by Envelope ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}/participants","href":"/api-reference/sign/create-participants-by-envelope-id"},{"title":"Delete Participants by Participant IDs","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /sign/envelopes/{envelopeID}/participants:batch-delete","href":"/api-reference/sign/delete-participants-by-participant-ids"},{"title":"Update Participant by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json patch /sign/envelopes/{envelopeID}/participants/{participantID}","href":"/api-reference/sign/update-participant-by-id"}]},{"group":"Webhook configs","icon":"bolt","expanded":false,"pages":[{"title":"List webhook configs for the authenticated application","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /webhooks/configs","href":"/api-reference/webhooks/list-webhook-configs-for-the-authenticated-application"},{"title":"Create webhook config","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /webhooks/configs","href":"/api-reference/webhooks/create-webhook-config"},{"title":"Get webhook config by ID","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /webhooks/configs/{id}","href":"/api-reference/webhooks/get-webhook-config-by-id"},{"title":"Update webhook config","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json patch /webhooks/configs/{id}","href":"/api-reference/webhooks/update-webhook-config"},{"title":"Delete webhook config","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json delete /webhooks/configs/{id}","href":"/api-reference/webhooks/delete-webhook-config"},{"title":"Send a test event to a webhook endpoint","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json post /webhooks/configs/test","href":"/api-reference/webhooks/send-a-test-event-to-a-webhook-endpoint"},{"title":"List supported webhook event types","deprecated":null,"version":null,"openapi":"https://api.gonitro.dev/openapi.json get /webhooks/configs/event-types","href":"/api-reference/webhooks/list-supported-webhook-event-types"}]}]},{"group":"Reference","icon":"book","pages":[{"title":"Good Development Practices","href":"/build-nitro/good-practices"},{"title":"API Error Codes","href":"/build-nitro/errors"},{"title":"Rotate Credentials","href":"/authentication/credential-rotation"},{"title":"Changelog","href":"/api-reference/changelog"}]}]},{"tab":"Power Automate","icon":"microsoft","pages":[{"title":"Power Automate","href":"/integrations/power-automate/overview"}]},{"tab":"Zapier","icon":"bolt","pages":[{"title":"Zapier","href":"/integrations/zapier/overview"}]},{"tab":"MCP","icon":"plug","hidden":true,"pages":[{"title":"MCP","href":"/integrations/mcp/overview"}]},{"tab":"Automate Workflows","icon":"diagram-project","hidden":true,"pages":[{"title":"Automate Workflows","href":"/integrations/automate-workflows/overview"}]}]},{"product":"Nitro Sign Enterprise Verified","icon":"badge-check","pages":[{"title":"Nitro Sign Enterprise Verified","href":"/nsev/getting-started/overview"}]}]},"basePath":"","title":"Redact - Nitro APIs","buildId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","deploymentId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a74be98ba7","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CpJ44y6j.js","utils-DRi8JwoB.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D6b6ny2H.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CgBjVdxd.js","snippetPresets-u4Are-mZ.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DTFiS5AN.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DuAEpWYt.js","shallow-BzqLj4xC.js","getApiPlaygroundDisplay-CKb7GIdu.js","CodeSnippet-BaOQDoQh.js","CodeSnippets-CNRiM0PE.js","Page-BlovTRO5.js","getPastedJson-qjrnOjTO.js","icon-Dt4VFpdV.js","MethodPill-c-UgMFw3.js","DuplicateIcon-BRwru6S6.js","createIcon-DBGdUgXw.js","DynamicMarkdown-B7gJlzwx.js","SectionHeading-CCarmMPF.js","axios-vUo_bRtp.js","zoom-image-lightbox-Dg9C7AQr.js","lightbox-handle-r17bVUz3.js","Markdown-DCI2IZwJ.js","clsx-Chpd8_tJ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdcB7h9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-D4Q3xuF7.js"]}