{
"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 Flatten method of the Transformations endpoint lets you flatten interactive or layered elements in a PDF, converting them into static, non-editable content.
Flattening merges all layers and elements into the base page content. This process is irreversible: interactive features cannot be restored, and elements cannot be edited or removed without specialized editing tools.Elements that can be flattened include:
Form fields (text boxes, checkboxes, radio buttons, dropdown menus)
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:flatten
required
The Transformations' endpoint method: flatten
Available options:
flatten
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 URL to receive the single-file output. The URL 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 - Single File
Async - Job
file
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/flatten","slug":"/api-reference/platform/transformations/flatten","pageMetadata":{"title":"Flatten","description":"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.","summary":"Flatten PDF file","openapi":"flatten POST /transformations","href":"/api-reference/platform/transformations/flatten"},"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: \"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.\"\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:`Flatten`}),` method of the Transformations endpoint lets you flatten interactive or layered elements in a PDF, converting them into static, non-editable content.\nFlattening merges all layers and elements into the base page content. This process is irreversible: interactive features cannot be restored, and elements cannot be edited or removed without specialized editing tools.`]}),`\n`,_jsx(_components.p,{children:`Elements that can be flattened include:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Form fields (text boxes, checkboxes, radio buttons, dropdown menus)`}),`\n`,_jsx(_components.li,{children:`Annotations (comments, highlights, sticky notes, markup)`}),`\n`,_jsx(_components.li,{children:`Digital signatures and signature fields`}),`\n`,_jsx(_components.li,{children:`Layers and optional content groups`}),`\n`,_jsx(_components.li,{children:`Transparencies and blend modes`}),`\n`]}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Editable PDF Form`,children:_jsx(OptimizedImage,{style:{width:`300px`},src:`https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=b5f7143510c970e8154bdd87f2bbab2b`,\"data-og-width\":`455`,width:`455`,\"data-og-height\":`324`,height:`324`,\"data-path\":`images/platform/nitro-form-edit.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?w=280\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=001a32fe0e402337b168a0b50ad1322e 280w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?w=560\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=4f484e3e1bcf087bd384694c48355e11 560w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?w=840\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=74aa5721609d401b356fd15312d4bb20 840w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=e90b79b89e8a0711e3dfe3c8d0a33ffe 1100w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=ca8d202ece461a39677387b744bfaa1f 1650w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-edit.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=4e063d390b7a62db907ee60b4da5f069 2500w`})}),_jsx(Card,{title:`Non-Editable, Flattened Form`,img:``,children:_jsx(OptimizedImage,{style:{width:`300px`},src:`https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=e6bdf021e181a04aaae758b8c05b657a`,\"data-og-width\":`552`,width:`552`,\"data-og-height\":`352`,height:`352`,\"data-path\":`images/platform/nitro-form-static.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?w=280\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=6d0ca28e6c359b9b32e990fd1b5a3461 280w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?w=560\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=d89700e56c0312a7df3081b81e477b79 560w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?w=840\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=2a6ab234a9d6330cc0d9a3d66d71e43e 840w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=eb565d55f6f8d14570c3a587bc052289 1100w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=2f1b432c8f4d33975963bc2541310e9c 1650w, https://mintcdn.com/go-nitro/_8ul0Mp0H1BT2NrV/images/platform/nitro-form-static.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_8ul0Mp0H1BT2NrV\u0026q=85\u0026s=4acd0f63fcd2661952274d22cfec010c 2500w`})})]}),`\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":"Flatten","description":"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.","summary":"Flatten PDF file","openapi":"flatten POST /transformations","href":"/api-reference/platform/transformations/flatten"}}},"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":"Flatten PDF","description":"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.","parameters":["1f137a30-0a67-43f0-9626-46c837b5683f","5a29711d-a40d-4031-b7c8-d090cc0e45c8"],"requestBody":"557f2ec8-5441-4c68-a4fb-0da222f4e968","responses":{"200":"b8cb3363-a1b5-458e-9c65-00be96f76050","400":"a4811322-1e33-479f-87aa-90659fdcb03a","401":"29ce1197-b8bf-4d1f-b22a-23ae831580a7","404":"7d1fc8c9-3d8a-4263-91e7-5596437fefa2","413":"e8683226-0dd1-43d5-a43e-c3678a90a1ec","422":"09f8f9b1-41a4-47c9-823a-044bb459fafc","500":"bcc12647-300a-49c2-a5c0-a20b87060c1e"},"security":["9db292aa-55f9-49fa-83c3-805aa32fc1e4"],"method":"post","type":"path","servers":["5f363999-8cc6-44f7-823e-a12cb87daa55","423fb622-0140-4160-b7e5-139ca8e8ca27","b6264d2a-25f6-4522-bc5f-0b0ade9ca057"],"path":"/transformations","baseUrlOptions":["https://api.gonitro.dev","https://api.us.gonitro.dev","https://api.au.gonitro.dev"],"title":"Flatten PDF","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1f137a30-0a67-43f0-9626-46c837b5683f":{"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>"}},"5a29711d-a40d-4031-b7c8-d090cc0e45c8":{"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: `flatten`","default":"flatten","enum":["flatten"],"isRequired":true,"uniqueKey":"method","typeLabel":"enum\u003cstring>"},"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":{"uploadResultTo":{"type":"object","properties":{"URL":{"type":"string","description":"Your delivery endpoint URL","nullable":false,"format":"uri","isRequired":true,"uniqueKey":"delivery.uploadResultTo.URL","typeLabel":"string\u003curi>"},"verb":{"type":"string","description":"The HTTP method","default":"PUT","enum":["GET","POST","PUT","DELETE","PATCH"],"isRequired":true,"uniqueKey":"delivery.uploadResultTo.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.uploadResultTo.headers.oneOf.0.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"delivery.uploadResultTo.headers.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"uniqueKey":"delivery.uploadResultTo.headers.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"delivery.uploadResultTo.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.uploadResultTo.headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"delivery.uploadResultTo.headers","typeLabel":"object[] | null"}},"required":["URL","verb"],"uniqueKey":"delivery.uploadResultTo","typeLabel":"object"},"callback":{"type":"object","description":"POST endpoint that will get JOB ID and location when processing starts only on async processesing (see example above)","properties":{"URL":{"type":"string","description":"Your POST endpoint callback URL.","nullable":false,"format":"uri","isRequired":true,"uniqueKey":"delivery.callback.URL","typeLabel":"string\u003curi>"},"headers":{"type":"array","description":"Headers your callback endpoint might need","items":{"type":"object","properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"delivery.callback.headers.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"delivery.callback.headers.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"uniqueKey":"delivery.callback.headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"delivery.callback.headers","typeLabel":"object[]"}},"required":["URL"],"uniqueKey":"delivery.callback","typeLabel":"object"}},"description":"This endpoint lets you supply your own URL to receive the single-file output. The URL 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","file"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"method":"flatten","file":"\u003cstring>","delivery":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b8cb3363-a1b5-458e-9c65-00be96f76050":{"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 - Single File","properties":{"file":{"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.file.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.file.URL.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.file.URL","typeLabel":"string\u003curi> | null"},"contentType":{"type":"string","description":"The file type","example":"application/json","uniqueKey":"oneOf.0.file.contentType","typeLabel":"string"},"metadata":{"type":"object","properties":{"fileSizeBytes":{"oneOf":[{"type":"number","uniqueKey":"oneOf.0.file.metadata.fileSizeBytes.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"oneOf.0.file.metadata.fileSizeBytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.file.metadata.fileSizeBytes","typeLabel":"number | null"},"pageCount":{"oneOf":[{"type":"number","description":"Number of pages in resulting document.","uniqueKey":"oneOf.0.file.metadata.pageCount.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of pages in resulting document.","uniqueKey":"oneOf.0.file.metadata.pageCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.file.metadata.pageCount","typeLabel":"number | null"}},"uniqueKey":"oneOf.0.file.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.0.file","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"Sync - Single File · 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 - Single File · object | Async - Job · object"},"examples":{"Example":{"title":"Example","value":{"file":{"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"},"a4811322-1e33-479f-87aa-90659fdcb03a":{"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"},"29ce1197-b8bf-4d1f-b22a-23ae831580a7":{"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"},"7d1fc8c9-3d8a-4263-91e7-5596437fefa2":{"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"},"e8683226-0dd1-43d5-a43e-c3678a90a1ec":{"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"},"09f8f9b1-41a4-47c9-823a-044bb459fafc":{"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"},"bcc12647-300a-49c2-a5c0-a20b87060c1e":{"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":{"9db292aa-55f9-49fa-83c3-805aa32fc1e4":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"5f363999-8cc6-44f7-823e-a12cb87daa55":{"url":"https://api.gonitro.dev","description":"Europe"},"423fb622-0140-4160-b7e5-139ca8e8ca27":{"url":"https://api.us.gonitro.dev","description":"North America"},"b6264d2a-25f6-4522-bc5f-0b0ade9ca057":{"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/flatten.json"},"subdomain":"go-nitro","siteName":"Nitro APIs","title":"Flatten - Nitro APIs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T15:51:48.440Z","originalFileLocation":"api-reference/platform/transformations/flatten.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=\"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.\">\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=\"Flatten - Nitro APIs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.\">\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/flatten\">\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=Flatten\u0026amp;description=Flatten+a+PDF+with+the+Nitro+API.+Convert+form+fields%2C+annotations%2C+signatures%2C+and+layers+into+static%2C+non-editable+page+content.\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=93124aeec4c1aa83b6325c934a83597cc04090b25dabe88dd4548a30cb45d6b2\">\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=\"Flatten - Nitro APIs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://go-nitro.mintlify.site/docs/_mintlify/api/og/v2?division=Transformations\u0026amp;title=Flatten\u0026amp;description=Flatten+a+PDF+with+the+Nitro+API.+Convert+form+fields%2C+annotations%2C+signatures%2C+and+layers+into+static%2C+non-editable+page+content.\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=93124aeec4c1aa83b6325c934a83597cc04090b25dabe88dd4548a30cb45d6b2\">\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/flatten\">\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/flatten.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/flatten#webpage\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten\",\"name\":\"Flatten\",\"description\":\"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.\",\"dateModified\":\"2026-11-12T15:51:48.440Z\",\"isPartOf\":{\"@id\":\"https://developers.gonitro.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten#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\":\"Flatten\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten#apireference\",\"headline\":\"Flatten\",\"name\":\"Flatten\",\"description\":\"Flatten a PDF with the Nitro API. Convert form fields, annotations, signatures, and layers into static, non-editable page content.\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten\",\"mainEntityOfPage\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/transformations/flatten#webpage\"},\"dateModified\":\"2026-11-12T15:51:48.440Z\",\"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/flatten.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","openapi":"watermark POST /transformations","href":"/api-reference/platform/transformations/watermark"},{"title":"Redact","openapi":"redact POST /transformations","href":"/api-reference/platform/transformations/redact"},{"title":"Merge","openapi":"merge POST /transformations","href":"/api-reference/platform/transformations/merge"},{"title":"Split","description":"Split a multi-page PDF into multiple files with the Nitro API. Define custom page ranges to control exactly which pages go into each output file.","openapi":"split POST /transformations","href":"/api-reference/platform/transformations/split"},{"title":"Flatten","openapi":"flatten POST /transformations","href":"/api-reference/platform/transformations/flatten"},{"title":"Rotate","description":"Rotate one or more pages in a PDF with the Nitro API by specifying page indexes and rotation angles.","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":"Flatten - 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"]}