CheckFlow API v3
The CheckFlow API v3 is a REST API for everything you can do in a CheckFlow workspace: run checklists and complete their tasks, raise standalone tasks, build and version templates, manage Data Sets, schedules and webhooks, and read the people, groups and tags around them. Requests and responses are JSON.
Version 3 replaces the v1 and v2 API with a new, separately hosted surface. It is designed to be predictable for integrations and for AI agents alike — one error format, one pagination scheme, stable keys, UTC timestamps and safe retries — and the same operations are available to AI clients through the CheckFlow MCP server.
The v1 and v2 API is still available and existing integrations, including the Zapier app, keep working. It is documented under Legacy API (v1 and v2). New integrations should use v3. See Migrating from v1 and v2 for the differences.
Base URLs
Each region has its own address. Send requests to the address for the region your workspace is in:
| Region | Base URL |
|---|---|
| United States | https://api.checkflow.io |
| Europe | https://api-eu.checkflow.io |
Every path starts with /v3/, for example https://api.checkflow.io/v3/checklists. The version is part of the path, so there is no version header to send.
A key sent to the other region's address is refused with 421 Misdirected Request and the error code WRONG_REGION. The error's url field is the same request on the correct address. If you are not sure which region you are in, call GET /v3/auth/test — it reports your workspace's region. See Regions.
Authentication
Send an API key in the X-API-KEY header on every request:
GET https://api.checkflow.io/v3/templates
X-API-KEY: your-api-key-here
Administrators create keys on the API & Integrations tab of the Team page. Every key acts as one member of the workspace, or as the workspace itself: requests see what that member can see and are recorded in their name. See Authentication for how keys work and which permission checks apply.
Interactive Documentation
The API publishes an OpenAPI 3 document and a Swagger UI. Neither needs an API key to view, and the Swagger UI can run requests against your own workspace once you enter a key.
| What | US address |
|---|---|
| Swagger UI | https://api.checkflow.io/swagger/ui |
| OpenAPI document | https://api.checkflow.io/openapi/v3.json |
The same paths work on the EU address. The OpenAPI document is the input to use if you want to generate a client library.
Conventions at a Glance
| Topic | Rule | Details |
|---|---|---|
| Format | JSON, camelCase property names. Properties with no value are left out of responses rather than sent as null. | Conventions |
| Identifiers | Most resources are identified by a GUID key. Members, groups, schedules and webhooks use the ids shown on their pages. | Conventions |
| Dates | Every timestamp is UTC in ISO 8601 and ends in Z. | Conventions |
| Errors | Every error has the same body: code, message, requestId and, where relevant, field. | Errors |
| Lists | Cursor pagination with pageSize, after and sort. | Pagination |
| Retries | Send Idempotency-Key on a write to make retrying it safe. | Idempotency |
| Limits | A per-workspace hourly budget, reported in X-RateLimit-* headers. | Rate Limits |
| Request ids | Every response carries X-Request-Id. Quote it when you contact support. | Conventions |
Status Codes
These are the status codes the API uses. Each endpoint page lists the ones specific to it.
| Status | Meaning |
|---|---|
200 OK | The request succeeded and the body holds the result. |
201 Created | A resource was created. The body holds it. |
202 Accepted | The work was accepted and is still running. Only committing a draft answers this. |
204 No Content | The request succeeded and there is nothing to return. |
400 Bad Request | The request is malformed or a value is invalid. The error's field names the culprit. |
401 Unauthorized | The API key is missing, unknown, revoked or expired, or the member it acts as can no longer be acted as. |
403 Forbidden | The key is valid but the member it acts as is not allowed to do this. |
404 Not Found | The resource does not exist in this workspace. Something in this workspace that the member the key acts as may not see answers 403 instead. |
409 Conflict | The request is valid but the current state will not accept it. Retrying later may succeed. |
421 Misdirected Request | The key belongs to a workspace in the other region. |
422 Unprocessable Entity | A template document is invalid. The error lists every problem in violations. |
429 Too Many Requests | The workspace has used its rate limit for this window. Wait for Retry-After seconds. |
500 Internal Server Error | Something failed on our side. Retrying may succeed; quote the X-Request-Id if it persists. |
What the API Covers
Running Work
| Area | What you can do |
|---|---|
| Checklists | List, search, create, rename, complete, archive and delete checklists; read their activity; share them; tag them. |
| Checklist Tasks | Complete tasks or mark them not applicable; set assignees and due dates; comment; snooze; tag; read activity. |
| Task Fields and Files | Read and write the answers in a task's input controls, upload files and edit table rows. |
| Standalone Tasks | Raise tasks outside any checklist, attach them to a checklist, and manage their sub-tasks, comments and files. |
| Tasks Grid | Read the tasks grid of the member a key acts as, manage saved views and snooze tasks in bulk. |
| Schedules | Create recurring schedules that start checklists, and manage their upcoming runs. |
Building Processes
| Area | What you can do |
|---|---|
| Templates | List and read templates, create them and publish new versions from a template document, copy, archive, set permissions and upgrade running checklists. |
| Template Documents | The JSON format that describes a template, in full. |
| Template Drafts | Build a large template in steps and commit it in the background. |
| Schema and Authoring Guide | Discover the content types, condition operators and due date rules a template document can use. |
| Data Sets | Manage Data Sets, their fields, records and views; import and export CSV. |
The Workspace
| Area | What you can do |
|---|---|
| Authentication | Check a key and see who it acts as. |
| Workspace | Read everything a request can refer to by name — members, groups, tags, templates — in one call. |
| Members and Groups | List the people and groups in the workspace. |
| Tags | List the workspace's tags. |
| Webhooks | Subscribe to events, verify their signatures, and inspect and replay deliveries. |
Where to Start
- Create a key and make your first calls in Getting Started.
- Read Errors and Idempotency before you write anything that retries.
- If you are connecting an AI assistant rather than writing code, go to the MCP server instead.
Related Pages
- Getting Started — a first request, a first checklist and a first completed task, step by step.
- Authentication — how keys work, who they act as and why a request can be refused.
- MCP Server — the same operations, as tools an AI assistant can call.
- Legacy API (v1 and v2) — the previous API, for existing integrations.