Pages

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.

Updated October 27, 20263 min read
On this page
  1. Your first five calls
  2. 1. Check the key
  3. 2. List the templates you can start from
  4. 3. Start a checklist
  5. 4. Hand it to someone
  6. 5. Read where it stands
  7. Next

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

Did this page answer your question?

Tell us what was missingEdit this page on GitHub