For developers & AI agents
Built to be called by something that isn’t a person.
Three rails, one meter. Every call refuses rather than overdraws: an agent that runs out of credits gets a 402 with the exact shortfall and a link to top up, never a silent debt.
RESTOne POST, then poll for free
Bearer key or the shared Ounie session cookie. The send is synchronous — the envelope is out and the links are live before the response returns. Polling and downloading the executed copy cost nothing.
curl -X POST https://sign.ounie.com/api/envelopes \
-H "Authorization: Bearer sgn_live_…" \
-H "Content-Type: application/json" \
-d '{"document":{"url":"https://…/sow.pdf",
"title":"Statement of work"},
"signers":[{"name":"A. Reyes","email":"a@acme.com"},
{"name":"J. Okonjo","email":"j@ours.com","order":2}],
"expires_in_days":14}'
MCPA tool your agent already knows how to hold
send_for_signature, get_envelope, list_envelopes, produce_executed_copy, void_envelope, what_this_is_not, get_credit_balance, get_pricing, whoami. Works in Claude, Cursor, ChatGPT and the Ounie AI Team — that last one can't set headers, so the key rides the URL.
Endpoint https://sign.ounie.com/api/mcp (legacy SSE: /api/sse)
Auth Authorization: Bearer sgn_live_…
# Hosts that can't set headers (e.g. the Ounie AI Team):
https://sign.ounie.com/api/mcp?api_key=sgn_live_…
x402No account, no key — pay per call in USDC
Keyless agents pay on Base. A malformed request or a suppressed recipient is refused before it is ever quoted, so you never sign a payment for work that cannot succeed. This rail quotes the whole lifecycle up front, because there is no second payment opportunity.
curl -X POST https://sign.ounie.com/api/x402/send \
-H "Content-Type: application/json" \
-d '{"document":{"markdown":"# Mutual NDA\n\n…"},
"signers":[{"email":"a@acme.com"}]}'
# → 402 { accepts: [{ scheme:"exact", network:"base",
# maxAmountRequired:"300000", payTo:"0x…" }] }
curl -X POST https://sign.ounie.com/api/x402/send \
-H "X-Payment: <base64 signed payload>" -d '{ … }'