Build on CheckFlow
REST API v3, webhooks, and an MCP server for AI agents.
Everything in CheckFlow is reachable programmatically. Checklists, tasks, templates, team members, tags, Data Sets and analytics are all exposed through a JSON REST API, so you can start a checklist from your own systems, pull task status into your dashboards, or keep a Data Set in sync with your CRM.
Webhooks push events to you the moment they happen — a checklist starts, a task completes, a file is uploaded, a record changes — so nothing needs to poll. And with the MCP server, an AI assistant such as Claude can run your processes for you.

“Helps us make sure nothing is forgotten when onboarding new staff”
- IT Manager, CheckFlow customer
Pick Your Path
Three ways to connect CheckFlow to the rest of your stack. Use one, or all three together.
REST API v3
Create checklists, run the tasks grid, manage Data Sets, author templates and schedule recurring work — nearly 100 endpoints over plain JSON.
See the APIWebhooks
Subscribe to nine event types and CheckFlow POSTs JSON to your endpoint as soon as something happens. No polling, no missed changes.
See the eventsMCP Server
Let an AI assistant start checklists, work through tasks and look up records in plain language, over 147 tools. Included on every plan.
See the MCP serverREST API v3
Everything in CheckFlow, as JSON
Version 3 lives at https://api.checkflow.io and is a ground-up rebuild: close to 100 endpoints covering everything the app can do, a consistent error envelope, cursor pagination and per-workspace rate limits. Every request carries a single X-API-KEY header — there is no version header to remember.
A key is generated by a team Administrator in Team Management, and each key is bound when you create it to who it acts as: an administrator, a member, or the workspace itself. That choice is the key’s, not the request’s, so a key can never reach further than the person it represents.
Responses are JSON. Errors share one envelope carrying a stable code, a readable message and the requestId that also comes back in the X-Request-Id header, so anything you hit can be quoted straight to support. Writes accept an idempotency key, so a retry after a timeout returns the first answer instead of doing the work twice.
Already on v2? The existing API at app.checkflow.io/api with the X-API-VERSION: 2.0 header continues to work and is still documented in the Swagger UI, and remains the place to pull analytics data. Nothing you have built stops working.
https://api.checkflow.io
X-API-KEY: your-api-key
Content-Type: application/json
GET /v3/checklists
POST /v3/checklists
GET /v3/my-work
GET /v3/data-sets/{key}/records
# Every response: X-Request-Id, X-RateLimit-Remaining
What the API Covers
Nine resource groups, close to 100 endpoints. If you can do it in the app, you can do it over the API.
Every endpoint is documented in the Swagger UI, and the API is included on every plan.
Open the API ReferenceWebhooks
Push, not poll
Subscribe to an event by POSTing a subscription with a source label (for example zapier or custom), the event name, and the targetUrl CheckFlow should call. When the event fires, CheckFlow POSTs a JSON payload to that URL.
new_checklist— a checklist is started from a given templatechecklist_completed— every task on a checklist is donetask_completed— scoped to a single task, a whole template, or team-widetask_assigned— a task is assigned to someonecomment_created— a comment is added to a taskfile_uploaded— a file lands in a specific File Upload controldata_set.record.created— a record is added to a Data Setdata_set.record.updated— only the changed fields, with previous and new valuesdata_set.record.deleted— a record is removed
v3 keeps the delivery history for every subscription, so you can see exactly what was sent and what came back — and replay any delivery that failed while your endpoint was down, rather than losing the event. Signing secrets can be rotated without recreating the subscription.
The task_completed payload includes the task, checklist and template. For standalone tasks that aren’t part of a checklist, the checklist and template objects are sent empty.
# Webhook events
new_checklist # per template
checklist_completed # per template or team scope
task_completed # task, template or team scope
task_assigned
comment_created
file_uploaded # per File Upload control
data_set.record.created
data_set.record.updated # changed fields, old + new values
data_set.record.deleted
# Subscribe: POST /v3/webhooks { source, event, targetUrl }
# History: GET /v3/webhooks/{id}/deliveries
# Replay: POST /v3/webhooks/{id}/deliveries/{deliveryId}/replay
MCP Server for AI Agents Live now
Run your processes from an AI assistant
MCP (Model Context Protocol) is an open standard that lets AI assistants and agents connect to external tools and data. The CheckFlow MCP server gives an assistant 147 tools covering the same ground as the REST API, so you can ask for things in plain language instead of writing API calls.
What your agent can do — for example:
- Start a checklist from a template and check how far it has got
- Work the tasks grid — what is open, what is overdue, what is assigned to whom
- Complete, reassign, snooze or comment on a task
- Raise a standalone task, or attach one to a running checklist
- Look up and update Data Set records, including bulk changes
- Draft a new template, validate it, and commit it when it is right
Works with any MCP client that supports the Streamable HTTP transport with a custom header — Claude Code, Claude Desktop, Cursor and VS Code among them, with step-by-step setup for each in the MCP docs. The server is stateless: no session to keep alive, no event stream to hold open, so it reconnects cleanly and scales without stickiness.
The MCP server is live and included on every plan. The endpoint is https://api.checkflow.io/mcp. It authenticates with your CheckFlow API key over the same middleware as the REST API, so it respects exactly the same team boundary, and the key decides who the agent acts as. Tools are annotated read-only or destructive so a client can ask before anything is changed, and every write takes an idempotency key, so an agent that retries after a timeout does not do the work twice.
Prefer No Code?
Connect CheckFlow to thousands of apps with Zapier
Not every integration needs a developer. The CheckFlow Zapier app uses the same webhooks and API under the hood, and connects CheckFlow to several thousand other services without writing code — start a checklist when a deal closes in your CRM, post to Slack when a task completes, or add a row to a spreadsheet when a Data Set record changes.
Manual Data Entry vs. Building on the API
Manual Data Entry
- Someone starts each checklist by hand when a record changes elsewhere
- Task status copied into reports and dashboards by hand
- Reference lists re-typed in CheckFlow whenever the source system changes
- Other systems find out about completed work by someone checking
- Files downloaded from one tool and re-uploaded to another
- Analytics exported to a spreadsheet and stitched together monthly
Building on the API
- Your system creates the checklist the moment the trigger happens
- Task status pulled straight from the Tasks endpoints
- Data Sets kept in sync through the API or CSV import
- Webhooks push
task_completedto the systems that need it file_uploadedevents hand files on automatically- Analytics retrieved on demand from the Analytics endpoints
Used By Great Companies
Frequently Asked Questions
How do I get a CheckFlow API key?
API keys are generated in Team Management by a team Administrator. Members and Guests cannot create keys. Once you have one, send it on every request in the X-API-KEY header; the same key connects the MCP server. v3 needs no other header, while the legacy v2 API also expects X-API-VERSION: 2.0. GET /v3/auth/test lets you validate a key before you rely on it. Full details are in the API authentication docs.
I am on API v2 — what happens to it?
Nothing. Version 2 stays where it is, at app.checkflow.io/api with the X-API-VERSION: 2.0 header on every request, and it is still documented in the Swagger UI. It also remains the place to pull analytics data, which v3 does not yet cover. v3 is a separate surface at api.checkflow.io with its own key handling and no version header — move when it suits you, not because v2 is going away.
Is the REST API included on the Business plan?
Yes. The REST API and webhooks are included on every plan, starting with Business at $10 per user per month (or $9 on annual billing), and you can try it free with no credit card required. The MCP server for AI agents is included on every plan too. Enterprise customers can also have a dedicated database, direct read-only database access and a private API endpoint — see pricing for details.
Which webhook events can I subscribe to?
Nine events: new_checklist (a checklist is started from a given template), checklist_completed, task_completed (scoped to a single task, a whole template, or the entire team), task_assigned, comment_created, file_uploaded (a file is added to a specific File Upload control), and three Data Set events — data_set.record.created, data_set.record.updated and data_set.record.deleted. The update event carries only the fields that changed, with both the previous and new values. You subscribe by POSTing a source label, the event name and your targetUrl to the Webhooks endpoints, and v3 keeps a delivery history you can replay from.
Can I manage Data Sets through the API?
Yes. Data Sets are fully available through the REST API, including managing records and importing or exporting CSV. Combined with the three data_set.record.* webhook events, that lets you keep a reference table such as clients, sites or products in sync with the system that owns it, so linked dropdowns in your checklists always show the current list.
What is the CheckFlow MCP server?
MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools. The CheckFlow MCP server gives an assistant 147 tools for working with your CheckFlow team in plain language — starting a checklist from a template, working through the tasks grid, completing or reassigning a task, raising a standalone task, looking up and updating Data Set records, and drafting a template. It authenticates with your CheckFlow API key and acts as whoever that key represents, so it can reach no further than that person can. It works with any MCP client that supports the Streamable HTTP transport with a custom header. Like the REST API and webhooks, it is included on every plan. Setup for Claude Code, Claude Desktop, Cursor and VS Code is in the MCP docs.
Automation Guides & Resources
- The CheckFlow MCP server — setup, the safety model and six real conversations
- CheckFlow API v3 — what changed from v2 and how to move across
- What is workflow automation? — where an API and webhooks fit in
- Business process automation — deciding which processes to connect first
- MSP process management guide — wiring CheckFlow into ticketing and client systems
For Zapier and other no-code connections, see integrations.








