Back to Docs

API Reference

Read your flows and tasks programmatically with the Booflow REST API.

1. Get an API key

API keys are created from your workspace. Go to Settings → API Keys and click Create key. Only workspace Owners and Admins can manage keys.

The key is shown once — copy it immediately and store it somewhere safe (a password manager or your server's environment variables). Booflow only stores a hash, so a lost key can't be recovered — you'd revoke it and create a new one.

2. Authenticate

Pass the key as a Bearer token in the Authorization header. All requests must be made over HTTPS. Keys look like bflow_sk_….

Authorization: Bearer bflow_sk_xxxxxxxxxxxxxxxxxxxxxxxx
Base URL
https://booflow.com
Endpoints below are relative to this base. In development use your local URL.

3. Endpoints

LIVE
GET

/api/v1/flows

List all flows in your workspace

GET

/api/v1/flows/:id

Get a single flow with tasks and participants

GET

/api/v1/tasks

List tasks across your flows

GET

/api/v1/tasks/:id

Get a single task with dependencies

GET

/api/v1/templates

List workflow templates

POST

/api/v1/flows

Create a new flow from a template

POST

/api/v1/tasks/:id/complete

Mark a task as completed

POST

/api/v1/flows/:id/participants

Invite an external participant

GET /api/v1/flows

Lists flows in your workspace. Optional query params: ?status=ACTIVE, ?limit=50 (max 200).

curl https://booflow.com/api/v1/flows?status=ACTIVE \
  -H "Authorization: Bearer bflow_sk_xxxxxxxxxxxx"

# Response
{
  "data": [
    {
      "id": "cmp4n4ala001u...",
      "name": "Client Onboarding",
      "description": "New client kickoff",
      "status": "ACTIVE",
      "taskCount": 4,
      "dueDate": "2026-06-01T00:00:00.000Z",
      "completedAt": null,
      "createdAt": "2026-05-10T18:22:01.000Z",
      "updatedAt": "2026-05-14T11:03:44.000Z"
    }
  ],
  "count": 1
}
GET /api/v1/tasks

Lists tasks across your flows. Optional query params: ?flowId=<id>, ?status=READY, ?limit=50.

curl "https://booflow.com/api/v1/tasks?flowId=cmp4n4ala001u" \
  -H "Authorization: Bearer bflow_sk_xxxxxxxxxxxx"

# Response
{
  "data": [
    {
      "id": "cmp4task01...",
      "flowId": "cmp4n4ala001u...",
      "flowName": "Client Onboarding",
      "name": "Setup Meeting with client",
      "status": "COMPLETED",
      "type": "MEETING",
      "priority": "MEDIUM",
      "required": true,
      "dueDate": "2026-05-15T00:00:00.000Z",
      "approvalStatus": "APPROVED",
      "createdAt": "2026-05-10T18:22:01.000Z"
    }
  ],
  "count": 1
}
Prefer talking to Claude instead?

The Booflow MCP server lets Claude read and act on your flows directly — no API calls needed. See the MCP docs →

4. Errors

Errors return a JSON body with an error field and an appropriate HTTP status.

401  Missing/invalid/expired API key
{ "error": "Invalid or revoked API key" }

429  Rate limited — slow down
500  Something went wrong on our side

On the roadmap

SOON

Write endpoints (create flows, update tasks, invite participants) are coming. Need one sooner? Let us know.

PATCH

/api/v1/tasks/:id

Update task details (name, assignee, due date)

POST

/api/v1/tasks/:id/approve

Approve or reject an approval task

DELETE

/api/v1/flows/:id

Delete a flow

GET

/api/v1/members

List org members

Booflow

© 2026 Booflow. All rights reserved.