On-call quickstart
By the end of this guide you’ll have a schedule called Primary on-call that hands off every Monday at 09:00 in your timezone, rotating between two engineers.
Prerequisites
Section titled “Prerequisites”- At least two users in the account (invite teammates first).
- Their UUIDs (
GET /account/inforeturns them, or look in Settings → Team).
1. Create the schedule
Section titled “1. Create the schedule”-
On-call → New schedule.
-
Name:
Primary on-call. Timezone: pick yours (defaults to UTC). Save.
curl -X POST https://api.siteqwality.com/on_call_schedule \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Primary on-call", "timezone": "America/Los_Angeles" }'Save the returned id — you’ll attach a layer to it next.
2. Add a rotation layer
Section titled “2. Add a rotation layer”-
On the schedule, Add layer.
-
Configure:
- Rotation:
Weekly. - Handoff day:
Monday. - Handoff time:
09:00. - Participants: add Alice and Bob in the order you want them to rotate.
- Rotation:
-
Save.
curl -X POST https://api.siteqwality.com/on_call_schedule/$SCHEDULE_ID/layer \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "rotation_type": "weekly", "handoff_day": 1, "handoff_time": "09:00", "participants": [ "11111111-aaaa-4bbb-9ccc-dddddddddddd", "22222222-aaaa-4bbb-9ccc-eeeeeeeeeeee" ] }'handoff_day is 0=Sunday … 6=Saturday. handoff_time is HH:MM in 24-hour format, interpreted in the schedule’s timezone.
layer_number is auto-assigned to the next free integer. Lower numbers have higher priority.
3. Confirm who’s on call right now
Section titled “3. Confirm who’s on call right now”The schedule’s detail page shows a calendar view with the current shift highlighted and the next 4 weeks laid out.
curl https://api.siteqwality.com/on_call_schedule/$SCHEDULE_ID \ -H "Authorization: Bearer $SITEQWALITY_API_KEY"The response includes layers and overrides. To compute the current responder, walk the layers in order — the dashboard does this for you.
4. Wire it into an escalation policy
Section titled “4. Wire it into an escalation policy”A schedule on its own doesn’t page anyone; you need an escalation policy that targets it.
# Create a policycurl -X POST https://api.siteqwality.com/escalation_policy \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Primary on-call escalation" }'
# Add a level that pages the schedulecurl -X POST https://api.siteqwality.com/escalation_policy/$POLICY_ID/level \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "timeout_minutes": 5, "target_schedule_ids": ["'$SCHEDULE_ID'"] }'This level pages whoever is on-call in $SCHEDULE_ID and waits 5 minutes for them to ack before moving on.