API
Plan & limits
Read your organization's plan, its limits and current usage.
Get your plan
GET /v1/plan — the organization's current plan with its limits and live
usage counts. Handy for pre-flighting automation ("do we have a monitor
slot left?") without triggering a 403.
curl https://watchfor.io/api/v1/plan \
-H "Authorization: Bearer wf_live_YOUR_KEY"{
"object": "plan",
"name": "Pro",
"limits": {
"max_monitors": 100,
"max_monitors_by_type": { "rdap": 50, "browser": 15 },
"min_interval_seconds": 60,
"min_interval_seconds_by_type": { "ssl": 3600, "rdap": 86400, "…": 0 },
"max_members": 50,
"max_status_pages": 50,
"max_contacts": 100,
"max_contact_groups": 25,
"max_maintenance_windows": 10,
"max_on_call_schedules": 3,
"max_regions": 3,
"max_locations": -1,
"max_parallel_monitors": 10,
"allowed_strategies": ["roundrobin", "parallel"],
"allow_postmortems": true,
"allow_incident_comments": true,
"api_requests_per_minute": 60,
"run_now_per_hour": 1
},
"usage": {
"monitors": 42,
"status_pages": 2,
"contacts": 12,
"contact_groups": 3,
"maintenance_windows": 1,
"members": 6
}
}Limit semantics: -1 = unlimited, 0 = feature not available on
this plan. Positive numbers are hard caps — exceeding one returns
403 forbidden with a human-readable message on the endpoint that hit it.
min_interval_seconds_by_type overrides the plan-wide minimum for
specific monitor types (values in seconds).
Who is on call
GET /v1/on-call — read-only: every on-call schedule with the person
currently on call (resolved server-side, DST-safe). Schedule management
stays in the dashboard.
{
"object": "list",
"data": [
{
"id": 3,
"object": "oncall_schedule",
"name": "Primary on-call",
"timezone": "Europe/Vilnius",
"enabled": true,
"layer_count": 1,
"current_on_call": { "user_id": "…", "name": "Petras P.", "email": "[email protected]" }
}
],
"has_more": false
}