The public API is included in the Team and Stack plans. Keys created on other plans return
403 PLAN_REQUIRED.Overview
Every request to the public API is authenticated with an API key that belongs to your account. A key:- Sees the same monitors you see in the dashboard, including team and shared monitors
- Can only do what its permissions (scopes) allow
- Stays active until you revoke it
- Has its own rate limit
Base URL
Sending the key
Send the secret key in theAuthorization header with the Bearer prefix:
Key format
Creating a key returns two values:| Value | Format | Use |
|---|---|---|
| Secret key | wt_sk_live_ followed by 64 hex characters | Sent in the Authorization header. Shown only once. |
| Public key | wt_pk_live_ followed by 16 hex characters | Identifies the key in the dashboard. Not a credential. |
Creating keys
- Open the dashboard and go to API Keys from the account menu.
- Click Create API Key.
- Enter a name (3 to 64 characters) and select at least one permission.
- Copy the secret key. It is not shown again.
Permissions (scopes)
Each endpoint requires one scope. A key without the required scope gets403 INSUFFICIENT_SCOPE.
| Scope | Allows |
|---|---|
uptime.read | List and view monitors, response times |
uptime.write | Create and delete monitors |
uptime.read, not uptime.write.
Rate limits
Each key can make 60 requests per minute by default. Every response includes:X-RateLimit-Reset is a Unix timestamp in seconds. When the limit is exceeded the API returns 429 RATE_LIMITED with a Retry-After header.
Repeated requests with invalid keys from the same IP address are blocked for 10 minutes (429 TOO_MANY_AUTH_FAILURES).
Errors
Errors use the same JSON shape as successful responses, with a machine-readableerror code:
| Status | error | Meaning |
|---|---|---|
| 401 | INVALID_API_KEY | Missing, malformed, unknown or revoked key |
| 403 | PLAN_REQUIRED | Your plan does not include API access |
| 403 | INSUFFICIENT_SCOPE | The key lacks the scope this endpoint needs (requiredScope names it) |
| 404 | NOT_FOUND | The resource does not exist or your account cannot access it |
| 429 | RATE_LIMITED | Per-key rate limit exceeded |
| 429 | TOO_MANY_AUTH_FAILURES | Too many invalid-key attempts from your IP address |
Security best practices
Environment Variables
Store keys in environment variables or a secret manager, never in source code
Separate Keys
Use a separate key for each integration so you can revoke one without breaking the others
Minimum Scopes
Select only the scopes the integration needs
Revoke Unused Keys
Check “Last used” on the API Keys page and revoke keys you no longer need
Next Steps
API Overview
Learn about the API
Create Site
Create a new monitoring site
Dashboard
Use the dashboard to manage API-related workflows
Alerts
Learn how alerts are delivered
