{
"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/generations"
}
{
"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/generations"
}
{
"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/generations"
}
{
"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/generations"
}
The Create Fillable Forms method of the Generations endpoint takes a PDF document plus a description of the form fields to create, and writes those fields into the PDF as a real AcroForm, returning a fillable PDF.Pass the source PDF as the file multipart part and the field definitions as a params JSON body. The params payload is exactly the detected-fields output of the Smart Detect Form Fields extraction method — you typically run that method first and pipe its result straight into this one with zero transformation, since both use the same flat formFields shape.
The params body is identical to what Smart Detect Form Fields returns. The usual flow is: call Smart Detect Form Fields to locate the fields, then pass that exact payload here to write them into the PDF.
Parameters
The params object is a flat list of the form fields to create. Each field carries its own pageIndex:
formFields — array of fields to create. Each field has:
pageIndex — zero-based index of the page the field belongs to.
fieldType — TextBox or CheckBox.
name — the field name (becomes the AcroForm field name).
boundingBox — [x, y, width, height] in PDF points.
value — optional initial value (defaults to "").
File Upload
Pass the PDF document via the file parameter and the field definitions via params:
The response is a PDF (application/pdf / application/octet-stream) with the supplied fields written as a real AcroForm.
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:create-fillable-forms
required
The Generations' endpoint method: create-fillable-forms
Available options:
create-fillable-forms
params
Create Fillable Forms · object
required
A flat list of form fields to write into the PDF, each carrying its own pageIndex. This is the exact detected-fields payload returned by the Smart Detect Form Fields extraction method, which you typically pipe straight into this method with no transformation.
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. Binary responses return the generated PDF.
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/generations/create-fillable-forms","slug":"/api-reference/platform/generations/create-fillable-forms","pageMetadata":{"title":"Create Fillable Forms","summary":"Generate a PDF with detected fields written as a real AcroForm","openapi":"create-fillable-forms POST /generations","description":"Generate a PDF with detected form fields written as a real AcroForm","href":"/api-reference/platform/generations/create-fillable-forms"},"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: \"Generate a PDF with detected form fields written as a real AcroForm\"\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},{CodeBlock,Heading,Note,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Create Fillable Forms`}),` method of the Generations endpoint takes a PDF document plus a description of the form fields to create, and writes those fields into the PDF as a real AcroForm, returning a fillable PDF.`]}),`\n`,_jsxs(_components.p,{children:[`Pass the source PDF as the `,_jsx(_components.code,{children:`file`}),` multipart part and the field definitions as a `,_jsx(_components.code,{children:`params`}),` JSON body. The `,_jsx(_components.code,{children:`params`}),` payload is exactly the detected-fields output of the `,_jsx(_components.a,{href:`https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields`,children:`Smart Detect Form Fields`}),` extraction method — you typically run that method first and pipe its result straight into this one with zero transformation, since both use the same flat `,_jsx(_components.code,{children:`formFields`}),` shape.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`params`}),` body is identical to what `,_jsx(_components.strong,{children:`Smart Detect Form Fields`}),` returns. The usual flow is: call Smart Detect Form Fields to locate the fields, then pass that exact payload here to write them into the PDF.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`parameters`,children:`Parameters`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`params`}),` object is a flat list of the form fields to create. Each field carries its own `,_jsx(_components.code,{children:`pageIndex`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`formFields`}),` — array of fields to create. Each field has:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`pageIndex`}),` — zero-based index of the page the field belongs to.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`fieldType`}),` — `,_jsx(_components.code,{children:`TextBox`}),` or `,_jsx(_components.code,{children:`CheckBox`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`name`}),` — the field name (becomes the AcroForm field name).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`boundingBox`}),` — `,_jsx(_components.code,{children:`[x, y, width, height]`}),` in PDF points.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`value`}),` — optional initial value (defaults to `,_jsx(_components.code,{children:`\"\"`}),`).`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`file-upload`,children:`File Upload`}),`\n`,_jsxs(_components.p,{children:[`Pass the PDF document via the `,_jsx(_components.code,{children:`file`}),` parameter and the field definitions via `,_jsx(_components.code,{children:`params`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`24`,language:`shellscript`,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:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`24`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.gonitro.dev/generations`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Bearer \u003ctoken>'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Accept: application/pdf'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` method=create-fillable-forms`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'file=@document.pdf;type=application/pdf'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --form`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'params={`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"formFields\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pageIndex\": 0,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fieldType\": \"TextBox\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"firstName\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"boundingBox\": [72, 680, 200, 18],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"value\": \"\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pageIndex\": 0,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fieldType\": \"CheckBox\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"agreeToTerms\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"boundingBox\": [72, 620, 14, 14],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"value\": \"\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` };type=application/json'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The response is a PDF (`,_jsx(_components.code,{children:`application/pdf`}),` / `,_jsx(_components.code,{children:`application/octet-stream`}),`) with the supplied fields written as a real AcroForm.`]}),`\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":"Create Fillable Forms","summary":"Generate a PDF with detected fields written as a real AcroForm","openapi":"create-fillable-forms POST /generations","description":"Generate a PDF with detected form fields written as a real AcroForm","href":"/api-reference/platform/generations/create-fillable-forms"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Parameters","slug":"parameters","depth":3,"children":[]},{"title":"File Upload","slug":"file-upload","depth":3,"children":[]},{"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":["Generations"],"summary":"Create Fillable Forms","description":"Generate a PDF with detected form fields written as a real AcroForm","parameters":["574a802d-5127-4369-807a-6152eca808f2","e3b7f329-0a15-45e1-9511-d5859984f60e"],"requestBody":"4972aa61-4342-4a63-9b9e-e01a473f3340","responses":{"200":"e3e6b070-8779-406c-9c4e-3b4fe6f7e962","400":"5798a691-8307-4ba7-8c0e-add512691757","401":"fbf0026a-d9cb-4d59-98e0-259478bd156a","404":"ceceef7f-e227-40e1-b94c-11edfe7350a7","413":"1f990a27-8cf9-4894-b489-1ace07b1d15b","422":"cca153ba-eefb-4c71-9f21-85c6d4f3cfa7","500":"c8e36b1a-3f14-4f55-9787-2fc1251c9100"},"security":["468d00de-28ac-439d-b34e-132be10115fb"],"method":"post","type":"path","servers":["53ed4f8e-2ae9-444f-ae1c-a12e92c96f0a","04b78f76-a55b-4c72-9483-368a9156e4c2","6e274af6-fc02-42b0-8ce5-b982595667ee"],"path":"/generations","baseUrlOptions":["https://api.gonitro.dev","https://api.us.gonitro.dev","https://api.au.gonitro.dev"],"title":"Create Fillable Forms","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"574a802d-5127-4369-807a-6152eca808f2":{"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>"}},"e3b7f329-0a15-45e1-9511-d5859984f60e":{"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 Generations' endpoint method: `create-fillable-forms`","default":"create-fillable-forms","enum":["create-fillable-forms"],"isRequired":true,"uniqueKey":"method","typeLabel":"enum\u003cstring>"},"params":{"title":"Create Fillable Forms","type":"object","description":"A flat list of form fields to write into the PDF, each carrying its own `pageIndex`. This is the exact detected-fields payload returned by the [Smart Detect Form Fields](https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields) extraction method, which you typically pipe straight into this method with no transformation.","properties":{"formFields":{"type":"array","description":"The form fields to create, one entry per field.","items":{"type":"object","description":"A single detected form field. The same shape is returned by Smart Detect Form Fields and accepted by Create Fillable Forms.","properties":{"pageIndex":{"type":"integer","description":"Zero-based index of the page the field belongs to.","example":0,"isRequired":true,"uniqueKey":"params.formFields.items.[INDEX].pageIndex","typeLabel":"integer"},"fieldType":{"type":"string","description":"The kind of form field.","enum":["TextBox","CheckBox"],"example":"TextBox","isRequired":true,"uniqueKey":"params.formFields.items.[INDEX].fieldType","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"The name of the form field. Becomes the AcroForm field name.","example":"firstName","isRequired":true,"uniqueKey":"params.formFields.items.[INDEX].name","typeLabel":"string"},"boundingBox":{"type":"array","description":"The field's position and size in PDF points, as `[x, y, width, height]`.","items":{"type":"number","uniqueKey":"params.formFields.items.[INDEX].boundingBox.items.[INDEX]","typeLabel":"number"},"minItems":4,"maxItems":4,"example":[72,680,200,18],"isRequired":true,"uniqueKey":"params.formFields.items.[INDEX].boundingBox","typeLabel":"number[]"},"value":{"type":"string","description":"Optional initial value for the field.","default":"","example":"","uniqueKey":"params.formFields.items.[INDEX].value","typeLabel":"string"}},"required":["pageIndex","fieldType","name","boundingBox"],"uniqueKey":"params.formFields.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"params.formFields","typeLabel":"object[]"}},"required":["formFields"],"example":{"formFields":[{"pageIndex":0,"fieldType":"TextBox","name":"firstName","boundingBox":[72,680,200,18],"value":""},{"pageIndex":0,"fieldType":"CheckBox","name":"agreeToTerms","boundingBox":[72,620,14,14],"value":""}]},"isRequired":true,"uniqueKey":"params","typeLabel":"Create Fillable Forms · 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":{"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","params"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"method":"create-fillable-forms","params":{"formFields":[{"pageIndex":0,"fieldType":"TextBox","name":"firstName","boundingBox":[72,680,200,18],"value":""},{"pageIndex":0,"fieldType":"CheckBox","name":"agreeToTerms","boundingBox":[72,620,14,14],"value":""}]},"file":"\u003cstring>","delivery":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"e3e6b070-8779-406c-9c4e-3b4fe6f7e962":{"description":"Returns either JSON or binary output depending on the Accept header (defaults to JSON).\nJSON responses include a file URL for synchronous tasks or a job status for asynchronous tasks. Binary responses return the generated PDF.","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/pdf":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/octet-stream":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"5798a691-8307-4ba7-8c0e-add512691757":{"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/generations"},"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/generations"}}},"exampleType":"generated"}},"exampleType":"generated"},"fbf0026a-d9cb-4d59-98e0-259478bd156a":{"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/generations"},"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/generations"}}},"exampleType":"generated"}},"exampleType":"generated"},"ceceef7f-e227-40e1-b94c-11edfe7350a7":{"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/generations"},"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/generations"}}},"exampleType":"generated"}},"exampleType":"generated"},"1f990a27-8cf9-4894-b489-1ace07b1d15b":{"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/generations"},"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/generations"}}},"exampleType":"generated"}},"exampleType":"generated"},"cca153ba-eefb-4c71-9f21-85c6d4f3cfa7":{"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/generations"},"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/generations"}}},"exampleType":"generated"}},"exampleType":"generated"},"c8e36b1a-3f14-4f55-9787-2fc1251c9100":{"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/generations"},"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/generations"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"468d00de-28ac-439d-b34e-132be10115fb":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"53ed4f8e-2ae9-444f-ae1c-a12e92c96f0a":{"url":"https://api.gonitro.dev","description":"Europe"},"04b78f76-a55b-4c72-9483-368a9156e4c2":{"url":"https://api.us.gonitro.dev","description":"North America"},"6e274af6-fc02-42b0-8ce5-b982595667ee":{"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/create-fillable-forms.json"},"subdomain":"go-nitro","siteName":"Nitro APIs","title":"Create Fillable Forms - Nitro APIs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T15:51:48.442Z","originalFileLocation":"api-reference/platform/generations/create-fillable-forms.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=\"Generate a PDF with detected form fields written as a real AcroForm\">\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=\"Create Fillable Forms - Nitro APIs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Generate a PDF with detected form fields written as a real AcroForm\">\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/generations/create-fillable-forms\">\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=Generations\u0026amp;title=Create+Fillable+Forms\u0026amp;description=Generate+a+PDF+with+detected+form+fields+written+as+a+real+AcroForm\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=e42279b96dd2c68b74428cf4b87880bbbe0603c25b70bab8cfbf994ee7a51d7a\">\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=\"Create Fillable Forms - Nitro APIs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Generate a PDF with detected form fields written as a real AcroForm\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://go-nitro.mintlify.site/docs/_mintlify/api/og/v2?division=Generations\u0026amp;title=Create+Fillable+Forms\u0026amp;description=Generate+a+PDF+with+detected+form+fields+written+as+a+real+AcroForm\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=e42279b96dd2c68b74428cf4b87880bbbe0603c25b70bab8cfbf994ee7a51d7a\">\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/generations/create-fillable-forms\">\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/generations/create-fillable-forms.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/generations/create-fillable-forms#webpage\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms\",\"name\":\"Create Fillable Forms\",\"description\":\"Generate a PDF with detected form fields written as a real AcroForm\",\"dateModified\":\"2026-11-12T15:51:48.442Z\",\"isPartOf\":{\"@id\":\"https://developers.gonitro.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PDF Services\",\"item\":\"https://developers.gonitro.com/docs/build-nitro/optimize-pdf\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generations\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/fill-forms\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create Fillable Forms\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms#apireference\",\"headline\":\"Create Fillable Forms\",\"name\":\"Create Fillable Forms\",\"description\":\"Generate a PDF with detected form fields written as a real AcroForm\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms\",\"mainEntityOfPage\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms#webpage\"},\"dateModified\":\"2026-11-12T15:51:48.442Z\",\"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/generations/create-fillable-forms.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","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","description":"Fill PDF form fields with the Nitro API — supply values inline or via a CSV, JSON, XFDF, or FDF data file and get back a completed PDF.","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","description":"Convert a PDF into Microsoft Office formats such as Word, Excel, and PowerPoint with the Nitro API.","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":"Create Fillable Forms - Nitro APIs","buildId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","deploymentId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","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","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"]}