API DOCS

Document eSign API documentation

Send documents for signature from your own product. REST over HTTPS, a free sandbox, webhooks, and embedded signing.

All documentation

The Document eSign API lets your product send documents for signature, track them, and collect the signed PDF without anyone leaving your app. It is plain JSON over HTTPS, so it works from any language that can make a request.

the shape of it
curl https://api.documentesign.com/v1/account \
  -H "Authorization: Bearer $ESIGN_API_KEY"

Start here

If you are evaluating, read the quickstart. It takes about ten minutes and ends with a real signed document in the sandbox. Everything else on this page is reference you can come back to.

Two ways to send

Every integration picks one of these, and most only ever need the first.

  • From a template - you build the document once in the web app, then the API fills in the people and the values. Shortest path, and the one to reach for when the paperwork is the same every time.
  • From your own file - upload a PDF and place the fields yourself by coordinate. Use it when the document is generated per customer.

Before you can call anything

The API is available on the Business and Ultimate plans, including during a Business trial. A workspace on Free or Growth gets 402 api_not_enabled on every endpoint. Keys are minted in the web app under Settings, Developer, API keys.

Build against the sandbox first
A sk_test_ key creates documents that render and sign exactly like real ones, but never email anyone, never count against your plan, and carry a watermark. Going live is one environment variable. See the sandbox.

Everything in this section

Guides

The machine-readable spec

The server generates an OpenAPI 3.1 document from its own route schemas, so it describes what the API actually accepts rather than what someone remembered to write down. Point a client generator at it:

text
https://api.documentesign.com/v1/openapi.json

It is the only endpoint that does not need a key. If you would rather let an agent write the integration, the Claude Code plugin teaches Claude the same contract.