Connect NyxPrism to your tools
API keys, signed webhooks and Zapier-style REST hooks for signing events. Available on paid plans.
1. Create an API key
Open the dashboard, go to API Keys, and create a key. It starts with nyx_ and is shown only once. Send it with every request:
Authorization: Bearer nyx_your_key_here
2. Events you can listen for
| Event | When it fires |
|---|---|
request.sent | A signature request is sent |
recipient.viewed | A signer opens the document |
recipient.signed | A signer finishes signing |
recipient.declined | A signer declines |
request.completed | Everyone has signed |
form.submitted | Someone submits a public signing form |
payment.received | A signer pays a payment attached to the request |
3. Webhooks
Add a webhook URL (it must be public https://) in the dashboard. Each event is sent as a POST with this JSON:
{
"id": "evt_9f2c...",
"type": "recipient.signed",
"created": "2026-01-15T18:22:04.000Z",
"data": { "requestId": 1234, "title": "Services Agreement", "status": "sent",
"recipient": { "name": "Jane Doe", "email": "jane@example.com" } }
}
A failed delivery is retried up to 3 times. Each request has an X-NyxPrism-Event header and a signature header:
X-NyxPrism-Signature: t=1736965324,v1=<hex HMAC-SHA256 of "t.body">
Check the signature with your webhook secret (whsec_...) before you trust the event. Node.js example:
const crypto = require('crypto');
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(header.split(',').map(p => p.split('=')));
const expected = crypto.createHmac('sha256', secret)
.update(parts.t + '.' + rawBody).digest('hex');
const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
return fresh && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}
4. Zapier, Make and n8n (REST hooks)
These tools can subscribe to events using just your API key. Base URL: https://nyxprism-production.up.railway.app
| Method & path | What it does |
|---|---|
GET /api/zapier/me | Connection test (returns your email and plan) |
GET /api/zapier/events | List the events you can subscribe to |
POST /api/zapier/hooks | Subscribe: { "target_url": "...", "event": "recipient.signed" } |
DELETE /api/zapier/hooks/:id | Unsubscribe |
GET /api/zapier/samples/:event | Sample data for building your Zap |
curl -X POST https://nyxprism-production.up.railway.app/api/zapier/hooks \
-H "Authorization: Bearer nyx_your_key_here" \
-H "Content-Type: application/json" \
-d '{"target_url":"https://hooks.zapier.com/hooks/catch/123/abc/","event":"request.completed"}'
Quickest setup today: in Zapier, use Webhooks by Zapier → Catch Hook and paste the hook URL as a webhook in your NyxPrism dashboard. A NyxPrism app listed in Zapier's directory is coming.
Need something else?
There is also a REST API for the PDF tools and a Python package on PyPI. See the developer section or ask us.