The simplest e-signature API, at a fraction of the price.
Send documents for signature from your software with one request. When everyone has signed, the signed PDF and Certificate of Completion land back in it.
- Pro: 250 API documents a month for $15
- Teams: 1,000 API documents a month for $40
- No per-document fees
1. Your software sends one request
POST /api/v1/documents
{
"template_id": "a2d94c10-…",
"external_id": "crm-8841",
"recipients": [{
"role_id": "c81e7f42-…",
"name": "Alex Morgan",
"email": "alex@example.com"
}]
}2. Your signer signs on any device
Consulting agreement
From Northwind Studio
Client signature
Alex Morgan
Finish
No account or app needed
3. Your server hears back
document.sent10:02:14Sent to Alex Morgan
recipient.viewed10:09:51Alex Morgan opened it
recipient.signed10:11:03Alex Morgan signed
document.completed10:11:05Signed PDF and certificate ready
signed-agreement.pdf
completion-certificate.pdf
Skip building e-signatures yourself.
Collecting a legally binding signature means a signing page that works on every phone, invitation and reminder emails, a sealed PDF, and an audit trail that holds up. Inkly already runs all of it. Your code sends one request and listens for a webhook.
- No signing page to build
- No email delivery to run
- No audit trail to design
Building it yourself
- Render the PDF
- Capture signatures
- Email and remind
- Seal the PDF
- Keep an audit trail
Months of work before the first contract, and a legal record to get right.
Inkly API
- One request
- A webhook
- The signed PDF
Inkly handles the signing page, emails, reminders, and Certificate of Completion.
From API key to signed PDF in three steps.
- Step 1
Create an API key
Open API settings, create a Read and send key, and keep it on your server with your other secrets.
Authentication - Step 2
Send a document
One request sends a template or your own PDF, with an Idempotency-Key so a retry never sends twice.
Send from a template - Step 3
Get the signed PDF
Inkly calls your webhook the moment the last signer finishes. Your server then fetches the signed PDF with one request.
Webhooks
Your first request, in your language
curl -X POST "https://www.inkly.so/api/v1/documents" \
-H "Authorization: Bearer $INKLY_API_KEY" \
-H "Idempotency-Key: crm-8841-send-1" \
-H "Content-Type: application/json" \
-d '{
"template_id": "a2d94c10-6e7b-4f38-8c15-1f3e9b7d6c02",
"title": "Consulting agreement",
"external_id": "crm-8841",
"recipients": [
{
"role_id": "c81e7f42-0b39-4d6a-a7c4-92e15d3f8b76",
"name": "Alex Morgan",
"email": "alex@example.com",
"delivery": "email"
}
],
"cc": [
{
"name": "Sam Lee",
"email": "sam@example.com"
}
],
"prefilled_values": {
"Project name": "Website redesign"
},
"message": "Please sign by Friday."
}'Prefer a walkthrough? Start with the API docs, or read the step-by-step help guide.
Three ways to put fields on the page.
From a template
Set the document up once in Inkly's editor. Each send only names who fills each role, with values like a price prefilled from your records.
Send from a templateYour PDF, by position
Upload any PDF and place each field as a fraction of the page. Works for scans and documents you cannot edit.
Send a PDFYour PDF, with markers
Write a marker where each field goes, hide it in white, and Inkly places the field there. It moves with your text.
Send a PDF with markersWhat developers build with it.
Each one is a request or two, with a guide that walks through it.
Your software hears about every signature as it happens.
- Six events. Sent, viewed, signed, declined, completed, and voided, each carrying your own
external_id. - Signed and verifiable. Check each webhook with any Standard Webhooks library, or copy the Node.js and Python verifiers.
- Retried until you answer. A delivery that fails is tried again, and each webhook has an ID so you can skip duplicates.
- Ready to copy. The docs include a complete endpoint in Express and Flask, and API settings can send a test event.
document.sent10:02:14Sent to Alex Morgan
recipient.viewed10:09:51Alex Morgan opened it
recipient.signed10:11:03Alex Morgan signed
document.completed10:11:05Signed PDF and certificate ready
{ "type": "document.completed", "document": { "id": "3f1c2a7e-…", "status": "completed", "external_id": "crm-8841" } }
An e-signature API without per-envelope pricing.
Most e-signature APIs charge by the document, so the bill grows with every contract. SignWell's API costs $313 a month for 475 documents, and DocuSign's Advanced API plan costs $480 a month for 100.
Inkly Teams includes 1,000 API documents a month for $40: more than twice the documents SignWell gives you for less than 1/7 of the price, with unlimited team members and everything else in the plan. Just starting out? Pro includes 250 API documents for $15 a month.
Documents you send from Inkly itself stay unlimited and never count toward the allowance. If you reach it, sends pause until the 1st instead of running up a bill.
Inkly Teams
$40
a month for 1,000 documents
SignWell
$313
a month for 475 documents
DocuSign
$480
a month for 100 documents
| Plan | Includes |
|---|---|
| Inkly Teams$40 a month1,000 API documents a month, no per-document fees | 1,000 API documents a month, no per-document fees |
| Inkly Pro$15 a month250 API documents a month, no per-document fees | 250 API documents a month, no per-document fees |
| SignWell API$313 a month475 documents a month | 475 documents a month |
| DocuSign API Advanced$480 a month100 envelopes a month | 100 envelopes a month |
The API comes with everything else in Pro and Teams.
Templates, reminders, signing order, custom branding, and the rest of each plan come with your API documents. Sending from Inkly itself stays unlimited on every plan.
Free
For individuals
- Not included:
- Not included:
- Not included:
- Not included:
- Not included:
- Not included:
- Not included:
No credit card required
Pro
For professionals and small businesses
Pay $
Built for production, not just the demo.
- Safe retriesEvery send carries an Idempotency-Key, so a request retried after a timeout never sends a second document.
- Signed webhooksWebhooks follow the Standard Webhooks signing scheme, are retried when your server is down, and every attempt shows in a delivery log.
- Errors that say what to doEvery error has a stable code, the input that caused it, a request ID, and a documented fix.
- Clear limitsUp to 120 requests a minute per key, with a Retry-After header when you need to slow down.
- Scoped keysGive a reporting tool a Read key and only your sending service a Read and send key. Revoke either at any time.
- Cursor paginationList documents newest first, up to 100 at a time, and pass back a cursor for the next page.
Everything you need to build it.
Guides for each way to send, a page for every endpoint with examples in eight languages, and a help guide for setting up keys and webhooks in your account.
- Start hereHow a send works, your first request, and what each plan includes.Read the guide
- Send from a templateFill each role with a signer, prefill values, and choose email or your own link.Read the guide
- Send a PDFUpload your own PDF and place each field by its position on the page.Read the guide
- Send a PDF with markersWrite markers into the PDF and let Inkly put the fields where they are.Read the guide
https://www.inkly.so/api/v1
Full API referenceAccount
Sending
Documents
Files
Send your first document
from your own software.
Create a key, send one request, and get the signed PDF back when everyone has signed.