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

EventWhen it fires
request.sentA signature request is sent
recipient.viewedA signer opens the document
recipient.signedA signer finishes signing
recipient.declinedA signer declines
request.completedEveryone has signed
form.submittedSomeone submits a public signing form
payment.receivedA 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 & pathWhat it does
GET /api/zapier/meConnection test (returns your email and plan)
GET /api/zapier/eventsList the events you can subscribe to
POST /api/zapier/hooksSubscribe: { "target_url": "...", "event": "recipient.signed" }
DELETE /api/zapier/hooks/:idUnsubscribe
GET /api/zapier/samples/:eventSample 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.