Get a roll call
/roll-calls/{rollcall_id}Returns one roll call with everyone in its snapshot and whether they are accounted for. Poll it, or listen
for roll_call.updated, to show a live board.
Scope: rollcalls:read · Plan: Pro and Enterprise in live mode; every plan in test mode.
Send Authorization: Bearer <token> on every request. The token is one of:
| Prefix | What it is | Where it may be used |
|---|---|---|
agoo_sk_live_ | Secret key, live mode | Your servers only |
agoo_sk_test_ | Secret key, test mode | Your servers only |
agoo_pk_live_ | Publishable key, live mode | Browsers and apps: create pre-registrations and bookings, read public booking types (with their intake questions) and their free slots, read the visit types open for pre-registration with their public forms. Never lists people. |
agoo_pk_test_ | Publishable key, test mode | As above, in test mode |
Admins create keys in Console → Developers → API keys and choose each key's scopes. A key is shown once. Never put a secret key in a URL, a browser or a mobile app.
In: header
Scope: rollcalls:read
Path Parameters
The roll call's ID.
^rollcall_[0-7][0-9a-hjkmnp-tv-z]{25}$"rollcall_01m4x13bw0fjmr5ekjkshzkke6"Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/roll-calls/rollcall_01m4x13bw0fjmr5ekjkshzkke6"{ "id": "rollcall_01m4x13bw0fjmr5ekjkshzkke6", "site_id": "site_01kjpt3yw0fz0v414608h9x65s", "kind": "drill", "status": "active", "message": "Fire drill. Leave by the nearest exit and go to the car park assembly point.", "counts": { "total": 46, "accounted_for": 41, "missing": 5 }, "started_at": "2026-10-14T11:00:00Z", "started_by": "person_01kjsexjt0e9rt8r69a60jzx03", "closed_at": null, "closed_by": null, "entries": [ { "kind": "visitor", "visit_id": "visit_01m4k5z4j0fxbte6sn6e8tpgza", "person_id": null, "name": "Ama Owusu", "status": "accounted_for", "accounted_at": "2026-10-14T11:03:12Z", "confirmed_via": "link" }, { "kind": "employee", "visit_id": null, "person_id": "person_01kjw4mg80efgb5aqbsqnxhtbh", "name": "Nii Armah", "status": "missing", "accounted_at": null, "confirmed_via": null } ]}Start a roll call POST
Starts a roll call at a site, for example from your fire alarm panel. Agoo takes a snapshot of everyone on site (checked-in visitors and contractors, and clocked-in employees) and, with `notify` (the default), sends each of them an "I'm safe" link by push, WhatsApp or SMS. Marshals can then account for people in the Workspace app. - Fires `roll_call.started`, then `roll_call.updated` as people are accounted for. - A site can have one active roll call at a time; starting another returns `conflict`. - In test mode, messages go to the console's test outbox. **Scope:** `rollcalls:write` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.
Close a roll call POST
Closes an `active` roll call and fires `roll_call.closed`. The final counts and list are kept for your records. A roll call that is already closed returns `invalid_state`. **Scope:** `rollcalls:write` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.