Connect your tools

Three ways to have something other than a person at a screen send documents: your own code, a Zap, or an agent. All three use the same scoped keys, the same limits, and leave the same trail.

Which one

Your own codeYou have a developer, and documents should go out from your product or back office. The API.
No codeA form, a CRM or a spreadsheet should trigger a document, or a finished document should trigger something else. Zapier.
An assistantYou already work in Claude or ChatGPT and want it to prepare documents for you to send. An agent.

All three come with the Pro and Business plans. Pro includes 50 documents a month sent this way; Business has no monthly limit. Trying it costs nothing: a test key works on every plan, signs for real, emails nobody and counts for nothing.

The API

Everything the dashboard does, your code can do: documents from a PDF or a template, recipients, fields, sending, reminders, status, the signed PDF and the audit trail. Keys are made in Settings, Developers, and each carries only the permissions you tick. Send a document from a template in one call:

curl -X POST https://sharesign.co/api/v1/templates/{template_id}/documents \
  -H "Authorization: Bearer $SHARESIGN_API_KEY" \
  -H "Idempotency-Key: order-1001" \
  -d '{ "roles": { "Tenant": { "name": "Nora Whelan", "email": "nora@example.com" } }, "send": true }'
ClientsTypeScript (npm install @sharesign/sdk) and Python (pip install sharesign), generated from the OpenAPI document, with retries, idempotency keys and webhook verification built in.
WebhooksSigned, retried on a schedule that runs from a minute to a day, and paused with an email to you after 30 failures in a row rather than dropped silently.
Safe to retryEvery write takes an idempotency key, so a call repeated after a timeout is answered with the first result, not done twice.
Embedded signingYour own page can hold the signing step, for a signer who is already signed in to your product.

The API reference has every endpoint, error and event.

Zapier

ShareSign’s Zapier app is shared by invitation until it is listed in Zapier’s public directory. Add ShareSign to your Zapier account, then connect it with an API key: Settings, Developers has a Zapier preset that ticks exactly the permissions the app needs.

Trigger: document completedFires the moment the last signer signs, with the document, its signers and the signed PDF itself as a file. Optionally only for one template. File it in Drive, update the CRM, tell the team.
Action: send from a templateAny app that can start a Zap can send a document: a form submission, a new deal, a row added to a sheet.
Action: draft from a PDFCreates the document and stops, for a person to place fields and send. For documents that differ every time.

Claude, ChatGPT, or your own agent

ShareSign is a Model Context Protocol server at https://sharesign.co/mcp. In claude.ai, Claude Desktop or ChatGPT, add that address as a custom connector, sign in to ShareSign, and approve what is asked for; the agent then works as you, in your active workspace. Claude Code, Cursor and anything you write yourself can carry an API key instead.

What it can doList templates and documents, read status and activity, draft a document from a template or its own PDF, place fields where the document asks for them, and check the draft the way Send would.
What it cannot doSend, remind, void or delete, unless you made a key with that one permission ticked, on purpose. By default an agent prepares and a person presses Send; the document page says who prepared it.
What it never receivesA signing link, which is a signer's identity, or the text of your document, which could carry instructions to a model. What signers typed reaches it quoted and named as theirs.
When it stopsDisconnect ShareSign in the assistant and it is over: a token it already holds is good for at most 24 hours and cannot be renewed after that. A key stops the moment you revoke it.

The details, tool by tool, are in the agents section of the API reference.

Last changed 18 September 2026. Something wrong here? Say so on the support page.