Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/dropbox:dropbox-document-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Reference Document API
version: 1.0.0
servers:
- url: https://api.hellosign.com/v3
description: https://api.hellosign.com/v3
tags:
- name: Document
paths:
/document/detect_fields:
post:
operationId: document_detectFields
summary: Detect Document Fields
description: Detects form fields in a PDF document using either PDF form annotations or Dropbox Sign text tags.
tags:
- Document
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentFieldDetectionResponse'
'400':
description: failed_operation
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentFieldDetectionRequest'
security:
- Basic: []
components:
schemas:
SubFormFieldGroup:
type: object
properties:
group_id:
type: string
description: ID of group. Use this to reference a specific group from the `group` value in `form_fields_per_document`.
group_label:
type: string
description: Name of the group
requirement:
type: string
description: 'Examples: `require_0-1` `require_1` `require_1-ormore`
- Check out the list of [acceptable `requirement` checkbox type values](/api/reference/constants/#checkbox-field-grouping).
- Check out the list of [acceptable `requirement` radio type fields](/api/reference/constants/#radio-field-grouping).
- Radio groups require **at least** two fields per group.'
required:
- group_id
- group_label
- requirement
title: SubFormFieldGroup
DocumentFieldDetectionResponse:
type: object
properties:
detection_result:
$ref: '#/components/schemas/DocumentFieldDetectionResponseDetectionResult'
warnings:
type: array
items:
$ref: '#/components/schemas/WarningResponse'
description: A list of warnings.
required:
- detection_result
title: DocumentFieldDetectionResponse
ErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/ErrorResponseError'
required:
- error
title: ErrorResponse
ErrorResponseError:
type: object
properties:
error_msg:
type: string
description: Message describing an error.
error_path:
type: string
description: Path at which an error occurred.
error_name:
type: string
description: Name of the error. See the `x-error-codes` catalog in openapi file for a complete list of possible error codes with detailed information including HTTP status codes, causes, remediation steps, and retry guidance.
required:
- error_msg
- error_name
description: Contains information about an error that occurred.
title: ErrorResponseError
DocumentFieldDetectionRequest:
type: object
properties:
file:
type: string
format: binary
description: 'The PDF file to analyze.
This endpoint requires either `file` or `file_url`, but not both.'
file_url:
type: string
format: uri
description: 'The URL of the PDF file to analyze.
This endpoint requires either `file` or `file_url`, but not both.'
detection_mode:
type: string
description: The field detection method to use. Set to `annotations` to detect PDF form annotations or `text_tags` to detect Dropbox Sign text tags.
page_range:
type: string
pattern: ^(?:all|\d+(?:-\d+)?(?:,\d+(?:-\d+)?)*)$
description: The zero-based page indexes to analyze. Accepts `all`, individual pages, inclusive ranges, or comma-separated combinations, such as `0-2,5,7-9`. Defaults to `all`.
required:
- detection_mode
title: DocumentFieldDetectionRequest
DocumentFieldDetectionResponseDetectionResult:
type: object
properties:
document_hash:
type: string
minLength: 64
maxLength: 64
description: The SHA-256 hash of the analyzed document.
detection_mode:
type: string
description: 'The field detection method used to analyze the document: `annotations` or `text_tags`.'
page_count:
type: integer
minimum: 0
description: The total number of pages in the document.
pages_analyzed:
type: string
description: The zero-based page indexes analyzed, represented by the requested `page_range`, or `all` when every page was analyzed.
detected_at:
type: integer
format: int64
description: The Unix timestamp when the field detection result was generated.
form_fields_per_document:
type: array
items:
$ref: '#/components/schemas/SubFormFieldsPerDocumentBase'
description: 'The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).)
**NOTE:** Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types.
* Text Field use `SubFormFieldsPerDocumentText`
* Dropdown Field use `SubFormFieldsPerDocumentDropdown`
* Hyperlink Field use `SubFormFieldsPerDocumentHyperlink`
* Checkbox Field use `SubFormFieldsPerDocumentCheckbox`
* Radio Field use `SubFormFieldsPerDocumentRadio`
* Signature Field use `SubFormFieldsPerDocumentSignature`
* Date Signed Field use `SubFormFieldsPerDocumentDateSigned`
* Initials Field use `SubFormFieldsPerDocumentInitials`
* Text Merge Field use `SubFormFieldsPerDocumentTextMerge`
* Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`'
form_field_groups:
type: array
items:
$ref: '#/components/schemas/SubFormFieldGroup'
description: Group information for fields defined in `form_fields_per_document`. String-indexed JSON array with `group_label` and `requirement` keys. `form_fields_per_document` must contain fields referencing a group defined in `form_field_groups`.
warnings:
type: array
items:
$ref: '#/components/schemas/WarningResponse'
description: Non-fatal issues encountered during field detection.
errors:
type: array
items:
$ref: '#/components/schemas/ErrorResponseError'
description: Errors encountered during field detection. Successfully detected fields may still be included in the response.
suggestions:
type: array
items:
type: string
description: Suggestions for improving the field detection results.
required:
- document_hash
- detection_mode
- page_count
- pages_analyzed
- detected_at
- form_fields_per_document
- form_field_groups
- warnings
- errors
- suggestions
title: DocumentFieldDetectionResponseDetectionResult
SubFormFieldsPerDocumentBase:
oneOf:
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
- type: object
properties:
type:
type: string
document_index:
type: integer
description: Represents the integer index of the `file` or `file_url` document the field should be attached to.
api_id:
type: string
description: An identifier for the field that is unique across all documents in the request.
height:
type: integer
description: Size of the field in pixels.
name:
type: string
description: Display name for the field.
page:
type:
- integer
- 'null'
description: 'Page in the document where the field should be placed (requires documents be PDF files).
- When the page number parameter is supplied, the API will use the new coordinate system.
- Check out the differences between both [coordinate systems](https://faq.hellosign.com/hc/en-us/articles/217115577) and how to use them.'
required:
type: boolean
description: Whether this field is required.
signer:
type: string
description: 'Signer index identified by the offset in the signers parameter (0-based indexing), indicating which signer should fill out the field.
**NOTE:** To set the value of the field as the preparer you must set this to `me_now`
**NOTE:** If type is `text-merge` or `checkbox-merge`, you must set this to sender in order to use pre-filled data.'
width:
type: integer
description: Size of the field in pixels.
x:
type: integer
description: Location coordinates of the field in pixels.
y:
type: integer
description: Location coordinates of the field in pixels.
required:
- type
- document_index
- api_id
- height
- required
- signer
- width
- x
- y
description: This class extends `SubFormFieldsPerDocumentBase`.
discriminator:
propertyName: type
description: 'The fields that should appear on the document, expressed as an array of objects. (For more details you can read about it here: [Using Form Fields per Document](/docs/openapi/form-fields-per-document).)
**NOTE:** Fields like **text**, **dropdown**, **checkbox**, **radio**, and **hyperlink** have additional required and optional parameters. Check out the list of [additional parameters](/api/reference/constants/#form-fields-per-document) for these field types.
* Text Field use `SubFormFieldsPerDocumentText`
* Dropdown Field use `SubFormFieldsPerDocumentDropdown`
* Hyperlink Field use `SubFormFieldsPerDocumentHyperlink`
* Checkbox Field use `SubFormFieldsPerDocumentCheckbox`
* Radio Field use `SubFormFieldsPerDocumentRadio`
* Signature Field use `SubFormFieldsPerDocumentSignature`
* Date Signed Field use `SubFormFieldsPerDocumentDateSigned`
* Initials Field use `SubFormFieldsPerDocumentInitials`
* Text Merge Field use `SubFormFieldsPerDocumentTextMerge`
* Checkbox Merge Field use `SubFormFieldsPerDocumentCheckboxMerge`'
title: SubFormFieldsPerDocumentBase
WarningResponse:
type: object
properties:
warning_msg:
type: string
description: Warning message
warning_name:
type: string
description: Warning name
required:
- warning_msg
- warning_name
description: A list of warnings.
title: WarningResponse
securitySchemes:
Basic:
type: http
scheme: basic
description: "Use your API key with HTTP Basic authentication in the form `Basic <api_key>`. See [Authentication](/api/reference/authentication) for more information.\n✅ Supported by Try it console (calls sent in `test_mode` only). \n"
Bearer:
type: http
scheme: bearer
description: "You can use an Access Token issued through an OAuth flow to send calls to the Dropbox Sign API from your app. The access scopes required by this endpoint are listed in the gray box above. See [Authentication](/api/reference/authentication) for more information.\n ❌ **Not supported** by Try it console.\n"
x-provenance:
method: harvested
publisher: Dropbox
source: https://developers.hellosign.com/openapi/api-reference.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)