Dropbox Document API

The document API from Dropbox — 1 operation(s) for document.

Operations 1

POST /document/detect_fields Detect Document Fields #

Work with this as data

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 Specification

dropbox-document-api-openapi.yml Raw ↑
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)