{
"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/extractions"
}
{
"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/extractions"
}
{
"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/extractions"
}
{
"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/extractions"
}
The Smart Detect Form Fields method of the Extractions endpoint analyzes a PDF document and detects where fillable form fields should be placed.This endpoint requires no additional parameters. Pass a single PDF as the file multipart part and the service automatically locates candidate form-field regions throughout the document.The endpoint returns a JSON object with a flat formFields list. Each entry carries its own pageIndex alongside its position and dimensions, so you can review or post-process the detections before creating fillable fields:
formFields — array of detected fields. Each field has:
pageIndex — zero-based index of the page the field belongs to.
fieldType — TextBox or CheckBox.
name — the field name.
boundingBox — [x, y, width, height] in PDF points.
This method only detects where fillable fields should go; it does not modify the PDF. To actually create the fillable AcroForm in the PDF, use the Create Fillable Forms generations method — this response is its exact params payload, so you can pipe it straight through with no transformation.
The method value smart-detect-form-fields still works for backwards compatibility, but is deprecated in favor of its new name, form-fields.
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:form-fields
required
The Extractions' endpoint method: form-fields (previously smart-detect-form-fields, which still works during the transition)
Available options:
form-fields,
smart-detect-form-fields
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 describe the detected form-field bounding boxes for synchronous tasks, or a job status for asynchronous tasks.
Sync - Form Fields
Async - Job
A flat list of detected form fields. Each field carries its own pageIndex. This is the exact payload you pass as params to the Create Fillable Forms generations method.
formFields
object[]
required
The detected form fields, one entry per field.
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/extractions/smart-detect-form-fields","slug":"/api-reference/platform/extractions/smart-detect-form-fields","pageMetadata":{"title":"Smart Detect Form Fields","summary":"Detect where fillable form fields should be placed in a PDF file","openapi":"smart-detect-form-fields POST /extractions","description":"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON","href":"/api-reference/platform/extractions/smart-detect-form-fields"},"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: \"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON\"\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:`Smart Detect Form Fields`}),` method of the Extractions endpoint analyzes a PDF document and detects where fillable form fields should be placed.`]}),`\n`,_jsxs(_components.p,{children:[`This endpoint requires no additional parameters. Pass a single PDF as the `,_jsx(_components.code,{children:`file`}),` multipart part and the service automatically locates candidate form-field regions throughout the document.`]}),`\n`,_jsxs(_components.p,{children:[`The endpoint returns a JSON object with a flat `,_jsx(_components.code,{children:`formFields`}),` list. Each entry carries its own `,_jsx(_components.code,{children:`pageIndex`}),` alongside its position and dimensions, so you can review or post-process the detections before creating fillable fields:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`formFields`}),` — array of detected fields. 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.`]}),`\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`}),` — initial value (defaults to `,_jsx(_components.code,{children:`\"\"`}),`).`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,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:`18`,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:` \"formFields\"`}),_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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pageIndex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_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:` \"fieldType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TextBox\"`}),_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:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"firstName\"`}),_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:` \"boundingBox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`72`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`680`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`200`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`18`}),_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:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pageIndex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_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:` \"fieldType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CheckBox\"`}),_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:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"agreeToTerms\"`}),_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:` \"boundingBox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`72`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`620`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14`}),_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:` \"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_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`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This method only `,_jsx(_components.strong,{children:`detects`}),` where fillable fields should go; it does not modify the PDF. To actually create the fillable AcroForm in the PDF, use the `,_jsx(_components.a,{href:`https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms`,children:`Create Fillable Forms`}),` generations method — this response is its exact `,_jsx(_components.code,{children:`params`}),` payload, so you can pipe it straight through with no transformation.`]})}),`\n`,_jsxs(Note,{children:[`The method value `,_jsx(_components.code,{children:`smart-detect-form-fields`}),` still works for backwards compatibility, but is deprecated in favor of its new name, `,_jsx(_components.code,{children:`form-fields`}),`.`]}),`\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":"Smart Detect Form Fields","summary":"Detect where fillable form fields should be placed in a PDF file","openapi":"smart-detect-form-fields POST /extractions","description":"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON","href":"/api-reference/platform/extractions/smart-detect-form-fields"}}},"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":["Extractions"],"summary":"Smart Detect Form Fields in PDF","description":"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON","parameters":["292c262f-78c6-4366-a940-f2515cae83f1","654198b9-c0d0-4e43-a543-5c00db96bc3d"],"requestBody":"80d18403-8d3c-4259-a73e-7f399a3f77ba","responses":{"200":"b1187565-94f4-4e37-952c-c44fa6eda2e8","400":"2e4fbd5b-ca53-48c2-a22c-34212a8e8a1c","401":"60771a1b-9881-4e66-af71-444163f4af51","404":"a55ceceb-2b53-4012-bb9f-b8e6ebb1c18a","413":"2364fef5-131d-4eb0-9eeb-580b936760b5","422":"c2bb4ac5-6423-468f-9b96-77ebfcfbe8f9","500":"2e1e6fe6-27d3-46eb-943e-50552ff0e42d"},"security":["a7b57e3e-9a33-49e6-856d-ef31fa4917be"],"method":"post","type":"path","servers":["11ada20a-7569-43bf-b388-f9d4eaed0885","dc8d200d-3c12-4d61-9c35-418a9d80e2fa","56253f74-e745-4f45-9462-fd5b6c3dd1b8"],"path":"/extractions","baseUrlOptions":["https://api.gonitro.dev","https://api.us.gonitro.dev","https://api.au.gonitro.dev"],"title":"Smart Detect Form Fields in PDF","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"292c262f-78c6-4366-a940-f2515cae83f1":{"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>"}},"654198b9-c0d0-4e43-a543-5c00db96bc3d":{"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 Extractions' endpoint method: `form-fields` (previously `smart-detect-form-fields`, which still works during the transition)","default":"form-fields","enum":["form-fields","smart-detect-form-fields"],"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":"form-fields","file":"\u003cstring>","delivery":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b1187565-94f4-4e37-952c-c44fa6eda2e8":{"description":"Returns either JSON or binary output depending on the Accept header (defaults to JSON).\n JSON responses describe the detected form-field bounding boxes for synchronous tasks, or a job status for asynchronous tasks.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Sync - Form Fields","description":"A flat list of detected form fields. Each field carries its own `pageIndex`. This is the exact payload you pass as `params` to the [Create Fillable Forms](https://developers.gonitro.com/docs/api-reference/platform/generations/create-fillable-forms) generations method.","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":""}]},"properties":{"formFields":{"type":"array","description":"The detected form fields, 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":"oneOf.0.formFields.items.[INDEX].pageIndex","typeLabel":"integer"},"fieldType":{"type":"string","description":"The kind of form field.","enum":["TextBox","CheckBox"],"example":"TextBox","isRequired":true,"uniqueKey":"oneOf.0.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":"oneOf.0.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":"oneOf.0.formFields.items.[INDEX].boundingBox.items.[INDEX]","typeLabel":"number"},"minItems":4,"maxItems":4,"example":[72,680,200,18],"isRequired":true,"uniqueKey":"oneOf.0.formFields.items.[INDEX].boundingBox","typeLabel":"number[]"},"value":{"type":"string","description":"Optional initial value for the field.","default":"","example":"","uniqueKey":"oneOf.0.formFields.items.[INDEX].value","typeLabel":"string"}},"required":["pageIndex","fieldType","name","boundingBox"],"uniqueKey":"oneOf.0.formFields.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.0.formFields","typeLabel":"object[]"}},"uniqueKey":"oneOf.0","typeLabel":"Sync - Form Fields · 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 - Form Fields · object | Async - Job · object"},"examples":{"Example":{"title":"Example","value":{"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":""}]}}},"exampleType":"generated"},"application/octet-stream":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"2e4fbd5b-ca53-48c2-a22c-34212a8e8a1c":{"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/extractions"},"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/extractions"}}},"exampleType":"generated"}},"exampleType":"generated"},"60771a1b-9881-4e66-af71-444163f4af51":{"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/extractions"},"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/extractions"}}},"exampleType":"generated"}},"exampleType":"generated"},"a55ceceb-2b53-4012-bb9f-b8e6ebb1c18a":{"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/extractions"},"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/extractions"}}},"exampleType":"generated"}},"exampleType":"generated"},"2364fef5-131d-4eb0-9eeb-580b936760b5":{"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/extractions"},"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/extractions"}}},"exampleType":"generated"}},"exampleType":"generated"},"c2bb4ac5-6423-468f-9b96-77ebfcfbe8f9":{"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/extractions"},"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/extractions"}}},"exampleType":"generated"}},"exampleType":"generated"},"2e1e6fe6-27d3-46eb-943e-50552ff0e42d":{"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/extractions"},"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/extractions"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a7b57e3e-9a33-49e6-856d-ef31fa4917be":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"11ada20a-7569-43bf-b388-f9d4eaed0885":{"url":"https://api.gonitro.dev","description":"Europe"},"dc8d200d-3c12-4d61-9c35-418a9d80e2fa":{"url":"https://api.us.gonitro.dev","description":"North America"},"56253f74-e745-4f45-9462-fd5b6c3dd1b8":{"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/smart-detect-form-fields.json"},"subdomain":"go-nitro","siteName":"Nitro APIs","title":"Smart Detect Form Fields - Nitro APIs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T15:51:48.437Z","originalFileLocation":"api-reference/platform/extractions/smart-detect-form-fields.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=\"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON\">\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=\"Smart Detect Form Fields - Nitro APIs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON\">\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/extractions/smart-detect-form-fields\">\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=Extractions\u0026amp;title=Smart+Detect+Form+Fields\u0026amp;description=Detect+where+fillable+form+fields+should+be+placed+in+a+PDF+document+and+return+their+bounding+boxes+as+JSON\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=21b64352321b3365586a0bb836fd37967ba412b87fc41e213a56aea72ed7699f\">\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=\"Smart Detect Form Fields - Nitro APIs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://go-nitro.mintlify.site/docs/_mintlify/api/og/v2?division=Extractions\u0026amp;title=Smart+Detect+Form+Fields\u0026amp;description=Detect+where+fillable+form+fields+should+be+placed+in+a+PDF+document+and+return+their+bounding+boxes+as+JSON\u0026amp;theme=15424dbe3b3c699dcf498f64\u0026amp;signature=21b64352321b3365586a0bb836fd37967ba412b87fc41e213a56aea72ed7699f\">\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/extractions/smart-detect-form-fields\">\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/extractions/smart-detect-form-fields.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/extractions/smart-detect-form-fields#webpage\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields\",\"name\":\"Smart Detect Form Fields\",\"description\":\"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON\",\"dateModified\":\"2026-11-12T15:51:48.437Z\",\"isPartOf\":{\"@id\":\"https://developers.gonitro.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PDF Services\",\"item\":\"https://developers.gonitro.com/docs/build-nitro/optimize-pdf\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extractions\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/text\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Smart Detect Form Fields\",\"item\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields#apireference\",\"headline\":\"Smart Detect Form Fields\",\"name\":\"Smart Detect Form Fields\",\"description\":\"Detect where fillable form fields should be placed in a PDF document and return their bounding boxes as JSON\",\"url\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields\",\"mainEntityOfPage\":{\"@id\":\"https://developers.gonitro.com/docs/api-reference/platform/extractions/smart-detect-form-fields#webpage\"},\"dateModified\":\"2026-11-12T15:51:48.437Z\",\"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/extractions/smart-detect-form-fields.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","description":"Extract the data of a PDF's existing AcroForm — field names, current values, field types and positions — as JSON, XFDF, FDF, or CSV","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","description":"Automatically extract tabular data from PDFs with the Nitro API, returning structured rows and columns for each table.","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":"Smart Detect Form Fields - 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"]}