REST API
The REST API
Call ChecklistSquad from a script, Zapier or your own system with an API key: list templates, start a checklist and read its state, in five curl commands.
On this page
ChecklistSquad has a REST API at https://api.checklistsquad.com/api. It is the same API the app uses on phones and on the web, so anything you start through it shows up on your team's phones, and what they do there comes back through it.
An integration calls the API with an API key. A key belongs to your organization, not to a person: it keeps working when people join or leave, and the activity names it ("Booking system started Room 12"). An organization admin makes keys in the app under Profile, Integrations, and gives each one a role: Read, Start or Full. Keys and roles has the details.
The key is shown once, when you make it. Store it where your system keeps its other secrets. If you lose it, roll it from the same page.
Your first five calls
Set the key in your shell. Every request sends it as a bearer token.
export CSQ_KEY="csq_…"
1. Check the key
GET /api/me says who the key acts as and for which organization. It is the call to make when you set up a connection.
curl https://api.checklistsquad.com/api/me \
-H "Authorization: Bearer $CSQ_KEY"
{ "principalId": "sub_7c1e…", "organizationId": "org_9f2a…", "systemAdmin": false, "kind": "integration" }
2. List the templates you can start from
Your organization's library comes first, then the public templates. Each row carries its sections and steps.
curl "https://api.checklistsquad.com/api/templates?pageSize=20" \
-H "Authorization: Bearer $CSQ_KEY"
{
"data": [
{ "id": "3b0e…", "title": "Guest Room Turnover Checklist", "isPublic": true, "key": "guest-room-turnover-checklist", "definition": { "sections": [ … ] }, … }
],
"nextCursor": null
}
3. Start a checklist
Send the template's id and a title. The server makes the checklist, its sections and its steps from the template. A Start or Full key can do this.
curl https://api.checklistsquad.com/api/checklists \
-H "Authorization: Bearer $CSQ_KEY" \
-H "Content-Type: application/json" \
-d '{ "id": "5f0d3c1a-8b2e-4e7a-9c41-2d6b7a0e9f13", "templateId": "3b0e…", "title": "Room 12, Friday", "dueAt": "2026-10-30T15:00:00Z" }'
The id is optional. Make one yourself (any UUID) when you might retry: a second request with the same id answers 409 Conflict instead of starting a second checklist. The key's integration owns the checklist, together with the admin who made the key.
4. Hand it to someone
Find the person in GET /api/people, then assign the checklist, a section or a step to them. A Start key can assign on checklists it started; a Full key on any.
curl https://api.checklistsquad.com/api/assignments \
-H "Authorization: Bearer $CSQ_KEY" \
-H "Content-Type: application/json" \
-d '{ "id": "checklist::5f0d3c1a-…", "checklistId": "5f0d3c1a-…", "nodeType": "checklist", "nodeId": "5f0d3c1a-…", "principalId": "usr_…" }'
5. Read where it stands
The checklist, its steps and their answers, and the activity, each narrowed to the one checklist:
curl "https://api.checklistsquad.com/api/checklists?id=5f0d3c1a-…" -H "Authorization: Bearer $CSQ_KEY"
curl "https://api.checklistsquad.com/api/items?checklistId=5f0d3c1a-…" -H "Authorization: Bearer $CSQ_KEY"
curl "https://api.checklistsquad.com/api/activity?checklistId=5f0d3c1a-…" -H "Authorization: Bearer $CSQ_KEY"
Each step has a status (open, done, blocked, skipped), the answers to its fields by field key, and who finished it. The checklist's status is completed once someone finishes it.
Next
- Keys and roles: who makes keys, what each role may call, rolling and revoking.
- How the API behaves: ids, retries, pages, errors and limits.
- Endpoint reference: every route, what it checks and what it returns.