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. Layers with a higher layer_number are evaluated first, so later-added layers shadow earlier ones during their effective windows.
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 from highest layer_number down; 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.