Developers
A signature API in three lines.
One POST to send a document for signature. Same per-signer pricing, same OTP signing — now from your own code.
send.sh
curl https://api.onetapsign.com/v1/requests \
-H "Authorization: Bearer $OTS_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Mutual NDA",
"document": { "url":"https://acme.com/nda.pdf" },
"signatories": [{ "name":"Jordan Lee",
"email":"jordan@acme.com",
"phone":"+14155550148" }]
}'
201 CreatedResponse
{
"id": "req_9fa2kx",
"status": "pending",
"title": "Mutual NDA",
"signatories": [{
"name": "Jordan Lee",
"status": "pending",
"signUrl": ".../sign/9fa2-kx"
}]
}
The whole API
Send, track, and a webhook — the three you'll reach for. No SDK required.
POST
/v1/requests
Send a document to one or more signatories. Charges per signer, returns each signer's signing link.
GET
/v1/requests/:id
Check who has signed and who's still pending, plus the sealed PDF when complete. Look up by your own ref with /by-ref.
HOOK
request.completed
Subscribe once and get a callback the instant every signatory is done — plus signatory.signed and more.
Start building today
Create an account and grab your API keys. Test keys are free — you're only charged on a real send, $1 a signer.
High volume or custom pricing?
Tell us what you're building and we'll get you set up.