Everything an AI agent can do with the Dropbox Sign API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints27
API versionv3
Last updated23 June 2026
Orientation

How the Dropbox Sign API works.

The Dropbox Sign API is how an app or AI agent works with electronic signatures: sending a document for signature, checking who has signed, reminding or canceling, and downloading the completed file. Access is granted through an API key that acts as the whole account, or an OAuth token limited to the scopes a user approved, like request_signature, which sets what a call can read or write. A change to a signature request emits a callback event that Dropbox Sign delivers to a registered URL.

27Endpoints
6Capability groups
8Read
19Write
3Permissions
Authentication
Dropbox Sign authenticates a call in one of two ways. An API key is sent through HTTP Basic auth as the username with an empty password, and acts as the account that owns it with full access. OAuth 2.0 issues a Bearer access token that acts on another user's behalf with only the scopes they approved, expires after about an hour, and is renewed with a refresh token.
Permissions
An API key carries the full access of its account. An OAuth token is limited to its scopes, and the available scopes depend on the billing model. The app-charged model offers basic_account_info and request_signature; the user-charged model splits access into account_access, signature_request_access, template_access, team_access, and api_app_access. A 403 response means the token lacks the scope the request needs.
Versioning
Dropbox Sign serves one stable major version, v3, in the path. It ships backward-compatible additions and fixes through a dated changelog rather than minting a new version string for each change, so an integration pinned to v3 keeps working as the API evolves.
Data model
The core object is a signature request, which carries one or more documents and a list of signers and moves through states from sent to viewed to signed to complete. Reusable templates pre-define documents and signer roles, embedded methods return URLs to sign or edit inside an app, and unclaimed drafts hand a document to another party to send. State changes are delivered as callback events.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Dropbox Sign determines what it can reach. There is a route for making calls and a route for receiving events, and each is governed by the API key or access token behind it and the permissions that token carries.

Ways to connect

REST API

The REST API takes form-encoded or JSON request bodies, returns JSON, and pages through lists with page and page_size parameters, at https://api.hellosign.com/v3. A call authenticates with an API key sent through HTTP Basic auth as the username, or with an OAuth 2.0 access token sent as a Bearer token.

Best forConnecting an app or AI agent to Dropbox Sign.
Governed byThe API key, or the OAuth access token and the scopes it carries.
Docs ↗

Callbacks (webhooks)

Dropbox Sign POSTs an event payload to a callback URL when something happens to a signature request or template. A callback can be set per API app or on the account, and the receiver verifies the event_hash field, an HMAC of the event time and type keyed by the API key, to confirm the request came from Dropbox Sign.

Best forReceiving Dropbox Sign events at an app or AI agent.
Governed byThe callback URL on the app or account, verified by the event_hash.
Docs ↗
Authentication

API key (HTTP Basic)

An API key authenticates as the account that owns it and can call every method that account is entitled to. It is sent through HTTP Basic auth as the username with an empty password. The key is found in the API app settings and grants full account access, so it belongs only in server-side code.

TokenAPI key, sent as the HTTP Basic username
Best forServer-side calls acting as the account that owns the key.
Docs ↗

OAuth 2.0

OAuth 2.0 lets an app act on another user's behalf without holding their key. A user is redirected to https://app.hellosign.com/oauth/authorize, approves the requested scopes, and the app exchanges the returned code at https://app.hellosign.com/oauth/token for an access token. The token is sent as a Bearer token, expires after about an hour, and is renewed with the refresh_token. Available scopes differ between the app-charged and user-charged billing models.

TokenOAuth 2.0 Bearer access token (with refresh token)
Best forActing on behalf of other Dropbox Sign users with scoped, revocable access.
Docs ↗
Endpoint reference

Every Dropbox Sign API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Signature Requests

Methods for sending, retrieving, listing, reminding, canceling, and downloading signature requests.12

OAuth scope request_signature (app-charged) or signature_request_access (user-charged). Counts as a higher-tier (document-processing) request for rate limits.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventsignature_request_sent
Rate limitHigher-tier: 25 requests per minute

Needs request_signature plus access to the template. Counts as a higher-tier request.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventsignature_request_sent
Rate limitHigher-tier: 25 requests per minute

Read-only. The same scope that sends a request also reads its status.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Read-only. Paginated with page and page_size query parameters.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

A reminder cannot be sent within one hour of the last reminder to the same signer.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventsignature_request_remind
Rate limitStandard: 100 requests per minute

Only works while the request is still incomplete; signers can no longer act on it.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventsignature_request_canceled
Rate limitStandard: 100 requests per minute

Changes who a pending request is routed to before they sign.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Used when a request was created on hold and is now cleared to send.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Read-only. Wait for signature_request_all_signed before downloading completed files.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitHigher-tier: 25 requests per minute

Pairs with the embedded sign URL method. Counts as a higher-tier request.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventsignature_request_sent
Rate limitHigher-tier: 25 requests per minute

Needs request_signature plus access to the template. Counts as a higher-tier request.

Acts onsignature_request
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventsignature_request_sent
Rate limitHigher-tier: 25 requests per minute

Sends a legally binding document to a list of recipients in one call. Counts as a higher-tier request.

Acts onbulk_send_job
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitHigher-tier: 25 requests per minute

Templates

Methods for working with reusable templates and the embedded template editor.5

Read-only. Under the user-charged model this needs template_access.

Acts ontemplate
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Read-only. Under the user-charged model this needs template_access. Paginated.

Acts ontemplate
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Under the user-charged model this needs template_access. Counts as a higher-tier request.

Acts ontemplate
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventtemplate_created
Rate limitHigher-tier: 25 requests per minute

Irreversible. Under the user-charged model this needs template_access.

Acts ontemplate
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Widens who can send from the template. Under the user-charged model this needs template_access.

Acts ontemplate
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Embedded signing

Methods that return signing and editing URLs to embed in an app's own interface.2

The signature_id comes from a signer on an embedded signature request. The URL expires.

Acts onembedded
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Opens a template for editing inside an app. Under the user-charged model this needs template_access.

Acts onembedded
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Unclaimed drafts

Methods for creating draft documents that another party claims and sends or signs.2

Returns a claim URL. Counts as a higher-tier request.

Acts onunclaimed_draft
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitHigher-tier: 25 requests per minute

Pairs with the embedded edit URL. Counts as a higher-tier request.

Acts onunclaimed_draft
Permission (capability)request_signature
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitHigher-tier: 25 requests per minute

Account

Methods for reading and updating the Dropbox Sign account, and creating new ones.3

OAuth scope basic_account_info (app-charged) or account_access (user-charged). Returns email and name.

Acts onaccount
Permission (capability)basic_account_info
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Under the user-charged model this needs account_access. Sets the account-level callback URL.

Acts onaccount
Permission (capability)basic_account_info
VersionAvailable since the API’s base version
Webhook eventaccount_callback_test
Rate limitStandard: 100 requests per minute

Authenticated with the app's own API key, not an OAuth scope; used to onboard new users.

Acts onaccount
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventaccount_confirmed
Rate limitStandard: 100 requests per minute

Team

Methods for reading and changing the team and its members.3

OAuth scope team_access is available only under the user-charged billing model.

Acts onteam
Permission (capability)team_access
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Changes team membership. team_access is available only under the user-charged model.

Acts onteam
Permission (capability)team_access
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute

Removes a member's access to the team. team_access is user-charged only.

Acts onteam
Permission (capability)team_access
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard: 100 requests per minute
No endpoints match those filters.
Webhooks

Webhook events.

Dropbox Sign can notify an app when something happens to a signature request, like a signer viewing it, signing it, or every signer completing it. It POSTs an event payload to a callback URL registered on the app or the account, so an integration learns about activity without polling.

EventWhat it signalsTriggered by
signature_request_sentA signature request was sent successfully and its documents have finished processing./v3/signature_request/send
/v3/signature_request/send_with_template
/v3/signature_request/create_embedded
/v3/signature_request/create_embedded_with_template
signature_request_viewedA signer opened and viewed the signature request.In-app only
signature_request_signedA single signer completed all required fields. With several signers this fires once per signer.In-app only
signature_request_all_signedEvery signer completed all required fields. The completed document is now ready.In-app only
signature_request_downloadableAn updated, final version of the signed PDF is available for download.In-app only
signature_request_declinedA signer declined to sign the request.In-app only
signature_request_remindA reminder to complete the request was sent to the signers./v3/signature_request/remind/{signature_request_id}
signature_request_canceledThe signature request was canceled and can no longer be signed./v3/signature_request/cancel/{signature_request_id}
signature_request_email_bounceAn email to one of the signers bounced and could not be delivered.In-app only
template_createdA template was created, for example after an embedded template draft was finished./v3/template/create_embedded_draft
account_confirmedA Dropbox Sign account created through the app was confirmed by its owner./v3/account/create
callback_testA test event Dropbox Sign sends to confirm a newly set callback URL is reachable./v3/account
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Dropbox Sign limits how fast an app can call, by a per-minute request rate that is lower for document-heavy methods and lower still in test mode.

Request rate

Dropbox Sign meters requests by a per-minute rate at the account level, and every GET, POST, PUT, or DELETE counts as one request. Standard methods allow 100 requests per minute, while higher-tier methods that process documents, like sending a signature request, creating an embedded request, downloading files, or creating an unclaimed draft, allow 25 per minute. Test mode is capped at 10 per minute. Going over returns HTTP 429 with a message naming the limit that was hit. Higher limits can be arranged with Dropbox Sign on a case-by-case basis.

Pagination

A list endpoint is page-based. The page parameter selects the page and page_size sets how many results it returns, and the response includes a list_info object with the current page, page_size, num_pages, and num_results so a caller knows how many pages remain.

Request size

A signature request can include multiple documents up to the account's file-size and page limits, and bulk send distributes one template to many signers in a single job. Files can be supplied as uploads, by remote URL, or by data URI.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400bad_requestThe request was malformed or missing a required parameter.Read the error name and message in the response, fix the parameters, and resend.
401unauthorizedNo valid API key or access token was provided.Send a valid API key as the HTTP Basic username, or a valid Bearer access token, and rotate it if it leaked.
403forbiddenThe key or token is valid but lacks permission for this request, for example a missing OAuth scope or a plan that does not include the feature.Grant the needed scope, or use a key on an account whose plan includes the feature.
404not_foundThe requested object does not exist, or is not visible to this account.Verify the ID and confirm the account has access to the object.
409conflictThe request conflicts with the object's current state, for example reminding a signer twice within an hour.Check the object's state and retry once the conflicting condition has cleared.
429exceeded_rateToo many requests were sent in the time window. The body notes the per-hour or per-minute limit that was hit.Back off and retry with exponential backoff, and smooth the request rate.
500internal_errorAn error occurred on the Dropbox Sign side. It is rare.Retry with backoff, and contact Dropbox Sign support if it persists.
Versioning & freshness

Version history.

Dropbox Sign serves one stable major version of its API and ships dated, backward-compatible changes through its changelog rather than minting a new version string for each one.

Version history

What changed, and when

Latest versionv3
v3Current version
API v3 (current major version)

Dropbox Sign serves one stable major version, v3, in the request path. Rather than minting a new version string for each change, it ships backward-compatible additions and fixes that surface in dated SDK releases, so an integration on v3 keeps working as the API evolves.

What changed
  • Rebranded from HelloSign to Dropbox Sign in 2023; the developer docs domain remains developers.hellosign.com.
  • Official SDKs published for PHP, Java, C#/.NET, Python, Ruby, and Node under the dropbox-sign name.
  • Backward-compatible additions ship continuously; the dated entries below track notable releases.
2026-05-13Feature update
SDK 1.11.0

A backward-compatible SDK release tracking the latest v3 additions.

What changed
  • Latest official SDK release across the supported languages, generated from the v3 OpenAPI spec.
  • No breaking API changes; the v3 path is unchanged.
2025-08-07Feature update
SDK 1.10.0

Adds support for 2025 API additions, including the ability to edit a signature request after it has been sent.

What changed
  • In-flight editing: edit a signature request without recreating the document.
  • Up to 10 domains can be configured per API app for staging, production, and regional environments.
2025-05-15Feature update
SDK 1.9.0

Brings fax send and receive into the same SDKs used for eSignature.

What changed
  • Fax: send and receive faxes through the same Dropbox Sign API SDKs.
  • Advanced Signature Details adds signer names, timestamps, and dates to signature blocks.
2024-11-27Feature update
SDK 1.8.0

A backward-compatible SDK release against the v3 API.

What changed
  • Continued v3 additions and fixes, generated from the OpenAPI spec.
  • No breaking API changes.

The API is on its third major version and changes are tracked by date in the changelog.

Dropbox Sign API changelog ↗
Questions

Dropbox Sign API, answered.

How do I authenticate with the Dropbox Sign API?+
Two ways. An API key is sent through HTTP Basic authentication as the username, with an empty password, and acts as the account that owns it. OAuth 2.0 is for acting on another user's behalf: the user approves scopes, and the app sends the resulting access token as an Authorization: Bearer header. The OAuth token is valid for about an hour and is renewed with the refresh token.
What OAuth scopes does Dropbox Sign have?+
The available scopes depend on the billing model. Under the app-charged model there are two: basic_account_info, for the account email and name, and request_signature, to send requests and access their status and files. Under the user-charged model access is split further into account_access, signature_request_access, template_access, team_access, and api_app_access.
What's the difference between signature_request_signed and signature_request_all_signed?+
signature_request_signed fires each time one signer completes their fields, so a request with ten signers fires it ten times. signature_request_all_signed fires once, after every signer has finished, and is the point at which the completed document is ready. Wait for the all_signed event, or for signature_request_downloadable, before downloading the final files.
How do I verify a callback really came from Dropbox Sign?+
Every callback payload includes an event object with an event_hash field. The receiver recomputes that hash as an HMAC-SHA256 of the event_time and event_type, keyed by the account's API key, and compares it. A mismatch means the callback was not sent by Dropbox Sign and should be rejected.
What are the API rate limits?+
Limits are per minute, at the account level, and every request counts regardless of method. Standard methods allow 100 per minute, higher-tier document-processing methods like sending a request allow 25 per minute, and test mode allows 10 per minute. Exceeding a limit returns HTTP 429. Higher limits can be arranged with Dropbox Sign.
Does the API support test mode?+
Yes. Sending methods accept a test_mode parameter so a request is created without using a paid signature or sending real email, which is how an integration is built and verified before going live. Test mode has a lower rate limit of 10 requests per minute.
What is an embedded signature request?+
An embedded request is signed inside an app's own interface rather than on the Dropbox Sign website. The app creates the request with create_embedded, then calls the embedded sign URL method to get a short-lived URL to open in an iFrame, so the signer never leaves the app.
Related

More legal API guides for agents

What is Bollard AI?

Control what every AI agent can do in Dropbox Sign.

Bollard AI sits between a team's AI agents and Dropbox Sign. Grant each agent exactly the access it needs, read or write, action by action, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Dropbox Sign API key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Dropbox Sign
Contracts Agent
View signature requests ResourceOffReadFull use
Send for signature ActionOffReadFull use
Cancel a request ActionOffReadFull use
Templates ResourceOffReadFull use
Team members ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Dropbox Sign