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 upcoming MCP server, AI assistants such as Claude and ChatGPT will be able to run your processes for you.

Open the API Reference Start Free Trial
No Credit Card Required
5stars

“The best piece of software we use in our department”

5stars

“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 API

Webhooks

Subscribe to six event types and CheckFlow POSTs JSON to your endpoint as soon as something happens. No polling, no missed changes.

See the events

MCP Server

Let an AI assistant start checklists, work through tasks and look up records in plain language, over 145 tools. Enterprise, launching soon.

See what’s coming

REST 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
Illustration of a secure server representing the CheckFlow REST API

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.

Checklists — start, search, complete, archive, share
Tasks — fields, files, tables, comments, assignees, due dates
Standalone Tasks — raise, attach to a checklist, complete
My Work — the tasks grid, snoozes and saved views
Templates & Drafts — author, validate, version, copy, upgrade
Data Sets — fields, records, views, CSV import and export
Schedules — recurring runs and their history
Webhooks — subscriptions, delivery history, replay
Team & Schema — members, groups, tags, content types

Every endpoint is documented in the Swagger UI, and the API is included on every plan.

Open the API Reference

Webhooks

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 template
  • checklist_completed — every task on a checklist is done
  • task_completed — scoped to a single task, a whole template, or team-wide
  • task_assigned — a task is assigned to someone
  • comment_created — a comment is added to a task
  • file_uploaded — a file lands in a specific File Upload control
  • data_set.record.created — a record is added to a Data Set
  • data_set.record.updated — only the changed fields, with previous and new values
  • data_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
Illustration of an assistant analysing data, representing the CheckFlow MCP server

MCP Server for AI Agents Launching soon

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 145 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 among them. 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 an Enterprise plan feature. 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_completed to the systems that need it
  • file_uploaded events hand files on automatically
  • Analytics retrieved on demand from the Analytics endpoints

Used By Great Companies

Nintendo
Rapha
ING
John Lewis Partnership
Vodafone
Columbia
Solar Winds
Intuit
Logitech

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 alongside X-API-VERSION: 2.0. The Authentication endpoints let 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 is an Enterprise feature. 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, launching soon, gives an assistant 145 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. The MCP server is an Enterprise plan feature; the REST API and webhooks are on every plan. Full details will be published in the docs when it launches.

Automation Guides & Resources

For Zapier and other no-code connections, see integrations.

Build Your First Integration Today

Free trial — no credit card required. API and webhooks included on every plan.