Configuration
Projects, API keys, environments, and plan limits.
Projects & API keys
A projectis the top-level container for all your tracking data — usage buckets, events, and alert configs are all scoped to a project. You'll typically have one project per application or product.
- Sign in at app.quotawatch.app
- Go to Settings → Projects and click New project
- Inside the project, open the API Keys tab and click Create key — copy the key immediately, it is only shown once
- Pass that key as
apiKeywhen initialising the SDK
⚠️
API keys are project-scoped secrets — treat them like passwords. Never commit them to source control. Use environment variables (e.g.
QUOTAWATCH_API_KEY) to inject them at runtime.QuotaWatch.init({
apiKey: process.env.QUOTAWATCH_API_KEY!, // qw_live_...
apis: [...],
});import os
from quotawatch import QuotaWatch, QuotaWatchConfig
QuotaWatch.init(QuotaWatchConfig(
api_key=os.environ["QUOTAWATCH_API_KEY"], # qw_live_...
apis=[...],
))Multiple environments
Pass environment to tag all events. The dashboard shows prod/staging/dev separately.
QuotaWatch.init({
apiKey: 'qw_live_...',
environment: process.env.NODE_ENV ?? 'production', // 'production' | 'staging' | 'development'
apis: [...],
});Plan limits
Each plan enforces hard limits on projects, environments, and APIs. When a limit is exceeded, the ingest API returns HTTP 403 — events are never silently dropped, so SDK users can detect and handle limit hits.
| Limit | Free | Pro | Team |
|---|---|---|---|
| Projects | 1 | 5 | Unlimited |
| Environments per project | 1 | 2 | Unlimited |
| APIs per project | 1 | 5 | Unlimited |
When a limit is hit, the ingest API responds with a 403 and a JSON body describing which limit was exceeded:
{
"error": "API limit reached",
"message": "Your plan allows 1 API(s) per project. Upgrade to track more.",
"code": "API_LIMIT"
}Other possible code values:
{ "code": "ENVIRONMENT_LIMIT" }💡
The SDK surfaces 403 responses so you can catch them in application code or set up alerts. Because limits return errors rather than silently dropping events, you'll always know when you've hit a ceiling.