API Documentation
OnChange REST API
Programmatic access to your monitors, changes, and notifications. Build dashboards, automate workflows, and integrate OnChange into your toolchain.
Authentication
Pass an API key in theX-API-Keyheader. Issue per-integration keys with their own scopes and expiry fromSettings → API.
Base URL
Every endpoint lives underhttps://onchange.app/api/v1and returns JSON. Default rate limit is 120 requests per minute per key — admins can raise that for partner keys.
Pagination
List endpoints support page-based pagination usingpageandper_pagequery parameters. Default is 20; monitor lists allow up to 500.
Authentication
Issue a key
- Open Settings → API.
- Click New key, name it after the integration that will use it, and pick the scopes it needs.
- Copy the secret. It is shown exactly once.
Use the key
Send the secret in the X-API-Key header on every request. Keys carry scopes — calls without the right scope return 403.
If a key is compromised, revoke it from the same settings page. Revocation is immediate.
Scopes
Scopes follow resource:action where action is read or write. Pick the smallest set your integration needs.
| Scope | Grants |
|---|---|
| monitors:read | List, fetch, and inspect monitors. |
| monitors:write | Create, update, pause, delete monitors. |
| changes:read | Read change history, diffs, and AI summaries. |
| changes:write | Mark changes as useful / noise; archive. |
| alerts:read | List alert destinations and rules. |
| alerts:write | Create or modify alert destinations and rules. |
| reports:read | Download generated reports. |
| webhooks:read | Inspect outbound webhook deliveries. |
| users:read | Read your own profile and API keys. |
| users:write | Manage your own API keys. |
Rate limits
Default ceiling is 120 requests / minute per key. Each issued key gets its own bucket — multi-key customers are not penalized for having many integrations.
Admins can raise the ceiling for individual keys (partner integrations, internal automations). Need a higher limit? Get in touch.
Exceeding the limit returns 429 Too many requests. Back off and retry after the bucket refills.
OpenAPI specification
Full machine-readable spec for the public surface. Drop it into Postman, Insomnia, or any OpenAPI-aware client to generate a request collection.
curl https://onchange.app/api/v1/monitors \ -H "X-API-Key: ock_..." \ -H "Content-Type: application/json"
Interactive API Explorer
Try any endpoint live. Enter your API key and send requests directly from this page.
Add your API key to try endpoints live. Find it in Settings → API Key.
Monitors
Changes
Timeline & Values
Crawl
Alert Rules
Accessibility
Reports
Status Pages
Export
User
Error codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad request - invalid parameters |
| 401 | Unauthorized - invalid or missing API key |
| 403 | Forbidden — API key is missing the required scope (response includes required_scope) |
| 404 | Not found |
| 429 | Rate limited - too many requests |
| 500 | Internal server error |
Ready to build?
Create a free account to get your API key and start building.