Quickstart
Make a test key, send one curl, and you have a draft ready to sign. Test keys email no one, so nothing here can reach a real person.
1. Get a test key
A person has to do this step. Create an account, confirm your email, and open Settings. Under API keys, choose Test and create a key. It starts with di_test_ and is shown once.
export DOCUINKED_API_KEY=di_test_...
2. Check the connection
curl https://docuinked.com/v1/whoami -H "Authorization: Bearer $DOCUINKED_API_KEY"
The reply tells you the account and the mode. Every reply has the same shape: status, request_id and data.
3. Create a draft and send it
This one call creates a draft from our sample PDF and asks to send it. The magic address sign@test.docuinked.com signs by itself, so the document finishes with no browser.
curl https://docuinked.com/v1/documents \
-H "Authorization: Bearer $DOCUINKED_API_KEY" \
-H "Idempotency-Key: quickstart-1" \
-H "Content-Type: application/json" \
-d '{"title": "Test NDA",
"pdf_url": "https://docuinked.com/docs/sample.pdf",
"signers": [{"name": "Test Signer", "email": "sign@test.docuinked.com"}],
"send": true}'
For your own file, use any PDF link we can reach over https, or send pdf_base64. Keep the id from the reply.
4. Fetch the result
curl https://docuinked.com/v1/documents/DOCUMENT_ID -H "Authorization: Bearer $DOCUINKED_API_KEY"
curl https://docuinked.com/v1/documents/DOCUMENT_ID/signed_pdf -H "Authorization: Bearer $DOCUINKED_API_KEY"
curl https://docuinked.com/v1/documents/DOCUMENT_ID/evidence -H "Authorization: Bearer $DOCUINKED_API_KEY"
Sealing runs in the background. If status is still sealing, wait a moment and read it again, or add a webhook for document.completed.
5. Go live
Create a live key and pick how it may send.
| Key setting | What happens on send |
|---|---|
| Needs my approval | The call returns an approval_url. A person approves, then it sends |
| Drafts only | The call is refused. A person sends from the review link |
| Sends directly | It sends. Use this only for your own server, never for an agent |
Anything arriving over MCP counts as an agent, whatever the key says. Read how approvals work.
Next
- API reference: every tool, method and schema
- MCP server: connect Claude, Cursor, Codex and others
- Webhooks: get told when something happens
- Test mode: run the whole flow safely
- Errors: codes you can branch on
Try it in test mode
Free during the beta. Test keys send no email, so you can build the whole flow first.