Skip to main content

Authentication

All API requests require an API key. Keys are prefixed with nh_

API Key Headers

X-API-Key header:

curl https://api.notifykit.dev/api/v1/ping \
-H "X-API-Key: nh_your_key_here"

Getting Your API Key

  1. Log in to your NotifyKit dashboard
  2. Navigate to Settings → API Keys
  3. Click Generate API Key
  4. Copy your key — it is shown only once

Key Format

API keys use the nh_ prefix followed by 64 lowercase hexadecimal characters:

nh_[64 hex chars]

Example: nh_a1b2c3d4... (68 characters total)

Security Best Practices

Keep Keys Secret

Never commit API keys to version control or expose them in client-side code. If a key is compromised, regenerate it immediately from the dashboard.

Store your key in an environment variable:

# .env
NOTIFYKIT_API_KEY=nh_your_key_here
const client = new NotifyKitClient({
apiKey: process.env.NOTIFYKIT_API_KEY!,
});

Error Responses

StatusCause
401 UnauthorizedAPI key missing, wrong format, or not found
403 ForbiddenAccount inactive or deleted

401 — Missing key:

{
"success": false,
"error": "API key is missing",
"timestamp": "2026-01-09T12:00:00.000Z"
}

401 — Invalid key:

{
"success": false,
"error": "Invalid API key",
"timestamp": "2026-01-09T12:00:00.000Z"
}

Rate Limits

Requests are rate-limited per API key within a 1-minute rolling window.

PlanRate Limit
Free5 requests/min
Indie50 requests/min
Startup200 requests/min

When the limit is exceeded, the API returns 429 Too Many Requests:

{
"success": false,
"error": "Rate limit exceeded",
"timestamp": "2026-01-09T12:00:00.000Z"
}

Monthly Quotas

In addition to rate limits, each plan has a monthly notification quota:

PlanMonthly Quota
Free100 total notifications (emails + webhooks combined)
Indie4,000 webhook notifications + unlimited emails
Startup15,000 webhook notifications + unlimited emails
Email vs. Webhook Counting

On Free, every sent notification (email or webhook) counts toward your monthly limit.

On Indie and Startup, emails are unlimited and do not count toward the monthly quota. Only webhook notifications count.

When your monthly quota is exceeded:

{
"success": false,
"error": "Monthly usage limit exceeded (100/100). Upgrade your plan or wait for reset on 2/1/2026.",
"timestamp": "2026-01-09T12:00:00.000Z"
}

Verify Your Key

Test that your API key works by calling the ping endpoint:

curl https://api.notifykit.dev/api/v1/ping \
-H "X-API-Key: nh_your_key_here"

Response:

{
"success": true,
"data": { "message": "pong" },
"timestamp": "2026-01-09T12:00:00.000Z"
}