specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Novu providerId: novu created: '2026-05-25' modified: '2026-05-25' tags: - Novu - Notifications - Rate Limiting - Quotas - Throttling - Multi Channel description: >- Rate-limit policy for the Novu REST API. Per-tier requests-per-second envelopes are published on the Novu pricing page; every response carries IETF draft RateLimit-* headers plus the upstream RateLimit-Policy header documenting the active window. Mutating operations honor the Idempotency-Key header. headers: limit: RateLimit-Limit remaining: RateLimit-Remaining reset: RateLimit-Reset policy: RateLimit-Policy retryAfter: Retry-After idempotencyKey: Idempotency-Key idempotencyReplay: Idempotency-Replay responseCodes: throttled: 429 quotaExceeded: 429 paymentRequired: 402 serviceUnavailable: 503 limits: - tier: free name: Free Tier scope: api-key metric: requests_per_second limit: 60 burst: 120 timeFrame: second applies: - https://api.novu.co - https://eu.api.novu.co monthlyQuota: metric: workflow_runs limit: 10000 timeFrame: month description: Free tier per-API-key envelope. 10K workflow runs per month, no overage path. - tier: pro name: Pro Tier scope: api-key metric: requests_per_second limit: 240 burst: 480 timeFrame: second applies: - https://api.novu.co - https://eu.api.novu.co monthlyQuota: metric: workflow_runs limit: 30000 timeFrame: month overage: unit: per_1k_runs price: '1.20' currency: USD description: Pro tier per-API-key envelope. Overage charged at $1.20 per 1K workflow runs. - tier: team name: Team Tier scope: api-key metric: requests_per_second limit: 600 burst: 1200 timeFrame: second applies: - https://api.novu.co - https://eu.api.novu.co monthlyQuota: metric: workflow_runs limit: 250000 timeFrame: month overage: unit: per_1k_runs price: '1.20' currency: USD description: Team tier per-API-key envelope. Overage charged at $1.20 per 1K workflow runs. - tier: enterprise name: Enterprise Tier scope: organization metric: requests_per_second limit: 0 timeFrame: second applies: - https://api.novu.co - https://eu.api.novu.co monthlyQuota: metric: workflow_runs limit: 10000000 timeFrame: month description: Custom-negotiated envelope. Starting at 10M monthly workflow runs. recoveryStrategies: - name: Honor Retry-After description: When you receive a 429, wait at least the number of seconds indicated by Retry-After before retrying. - name: Exponential Backoff with Jitter description: When Retry-After is absent, back off exponentially up to 60 seconds with full jitter to avoid synchronized retries. - name: Use Bulk Trigger description: Submit batches via /v1/events/trigger/bulk to amortize per-call overhead within a single request envelope. - name: Use Topics for Fan-out description: Use /v1/topics + /v1/events/trigger with a topic recipient to fan out to many subscribers with a single request. - name: Honor Idempotency-Key description: Re-send the same Idempotency-Key on retries; Novu returns the original response and sets Idempotency-Replay=true. notes: - Rate limits are enforced per API key, per environment. - The 429 response body uses the standard ErrorDto schema and includes a machine-readable reason. - All mutating operations accept and respond with Idempotency-Key headers. - Tier upgrades / downgrades take effect on the next billing window. references: - name: Novu Pricing Page url: https://novu.co/pricing - name: Novu API Reference url: https://docs.novu.co/api-reference/overview