Developer docs

Send readable database change alerts from any app.

NotifyDB gives each project a bearer token and a single JSON endpoint. Post a change event when your app creates, updates, or deletes a record; NotifyDB handles notification timing, quotas, and optional summaries.

Endpoint POST /api/events
Auth Bearer ndb_...
Payload created | updated | deleted
01

Quickstart

Get one event into NotifyDB first. Once that works, put the same call wherever your app already knows a record changed.

Create a project

Open the dashboard, create a project, and choose where notifications should go. Each project has its own token and notification settings.

Save the token

The full token is shown once. Store it in your server environment, not in browser JavaScript or a public repo.

Post a test event

Send the sample payload below. The new event should appear in the project's recent events list right away.

02

Examples

Use cURL to prove the token works. Use the JavaScript example from a server route, worker, webhook handler, or API backend.

cURL
curl -X POST https://notifydb.io/api/events \
  -H "Authorization: Bearer YOUR_PROJECT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tableName":"users","recordId":"42","eventType":"updated","oldValues":{"email":"old@example.com"},"newValues":{"email":"new@example.com"}}'
JavaScript
await fetch('https://notifydb.io/api/events', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.NOTIFYDB_TOKEN,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    tableName: 'users',
    recordId: '42',
    eventType: 'updated',
    oldValues: { email: 'old@example.com' },
    newValues: { email: 'new@example.com' }
  })
});
03

Payload

The request body is intentionally small. Send the record identity, the change type, and the before/after values you want people to see.

Field Type Notes
tableName string The table, collection, model, or resource that changed.
recordId string or integer The ID your team would use to find the record again.
eventType string One of created, updated, or deleted.
oldValues object Values before the change. Use an empty object for creates.
newValues object Values after the change. Use an empty object for deletes.
04

Responses

A successful request means NotifyDB accepted the event. Notification delivery may still happen asynchronously depending on the project's frequency.

201 Created
{
  "id": 123,
  "createdAt": "2026-05-17T14:08:21+00:00",
  "humanSummary": "User ID 42 was updated: email changed."
}

Authentication errors

401 means the bearer token is missing or invalid. Regenerate the project token if the original token was lost.

Validation and quotas

422 means a payload field is missing or malformed. 429 means the weekly event limit has been reached.

05

Production notes

Keep the integration boring. NotifyDB should sit beside your existing write path without becoming a hard dependency for saving user data.

Call NotifyDB from trusted code

Use your backend, API route, worker, or webhook processor. Do not expose project tokens in client-side JavaScript.

Send useful fields, not everything

Include the values a teammate would need to understand the change. Skip secrets, large blobs, and noisy internal metadata.

Do not block critical writes

If your app can queue background jobs, enqueue the NotifyDB call after the database write succeeds. If the call fails, retry it like any other outbound webhook.