Manifestly API

Connect your workflows to the rest of your stack

A REST API for workflows, runs, steps, and data. Start runs from your own systems, complete steps and record their data, and react to every change with signed webhooks.

Base URL
api.manifest.ly/api/v2
Auth
API key or OAuth 2.0
Format
JSON · OpenAPI 3
Plans
Every plan, including trial
What you can do

The same work your team does in the app

If a person can do it in a run, your integration probably can too, within the permissions you give it.

Workflows

List and read workflows, edit their steps, fields, and content, and import or export them as JSON.

Runs

Start runs with participants, tags, due dates, and field values. Filter, update, complete, or reopen them.

Run steps

Complete, skip, or assign steps, record their data, work through subtasks, and approve or reject approval steps.

Comments and activity

Read and post step comments, and pull the activity feed for a run, a workflow, or the whole account.

People and structure

List users, departments, and roles, and pull the open assignments for the identity making the call.

Webhooks

Create, update, and remove webhooks so your systems hear about runs and steps as they change.

Data Tables Enterprise

Keep reference data in sync from your CRM or ERP with full create, update, and delete on tables, columns, and rows.

Business calendars

Manage holiday calendars and generate regional holidays so due dates skip days off.

Example

Start a run when something happens elsewhere

A new hire lands in your HR system. One request starts the onboarding run, adds the new hire as a participant, tags it, and sets the due date. Your HR system's ID rides along as the run's external ID, so you can match the two later.

Every response is JSON, list endpoints are paginated, and each run links back to its page in the app.

POST https://api.manifest.ly/api/v2/runs
Authorization: Bearer mf_1_••••••••
Idempotency-Key: 7f3c1e2a-91b4-4c8e-a2d0

{
  "run": {
    "checklist_id": 1234,
    "title": "Onboarding: Jane Doe",
    "external_id": "HR-981",
    "due_at": "2026-10-31T17:00:00Z",
    "tag_list": ["onboarding"],
    "participants": [{ "email": "jane@acme.com" }]
  }
}
// 201 Created
{
  "run": {
    "id": 98765,
    "title": "Onboarding: Jane Doe",
    "state": "started",
    "workflow_title": "Employee Onboarding",
    "external_id": "HR-981",
    "app_url": "https://app.manifest.ly/runs/98765/edit"
  }
}
Authentication

Two ways to sign in, one set of permissions

Either way, the API enforces the same department and role permissions as the app. Nothing reaches data its identity couldn't see in Manifestly.

API key

Acts as a dedicated integration identity

Best for server-to-server integrations. An account admin creates the key in Account Settings under Integrations and chooses its department. The key is shown once, and every request it makes is logged.

  • One key per integration, easy to revoke
  • Request log for each key
  • Sent as a Bearer token

OAuth 2.0

Acts as the person who signed in

Best for apps and AI tools that work on someone's behalf. The user approves access, and everything the app does is attributed to them and limited to what they can see.

  • Authorization code flow with refresh tokens
  • Read and write scopes
  • Short-lived access tokens

AI agents added to your team get their own API key, so their work is attributed to the agent. How AI Agents work

Built for production

The details that make integrations dependable

Safe retries
Send an Idempotency-Key header on any write. A retried request returns the original result instead of doing the work twice.
Predictable errors
One error format across every endpoint, and unknown fields are rejected instead of silently ignored.
Paginated lists
Up to 100 results per page, with totals, next and previous links, and a Link header.
Generous limits
Rate-limit headers on every response, and a Retry-After header when you need to slow down.
Rate limits, requests per minute
AccountPer key or tokenPer account
Trial1201,200
Paid1,20012,000
Webhooks

Hear about changes the moment they happen

Add a webhook to a workflow or a single step, in the app or through the API. When a run starts, a step is completed, or something runs late, Manifestly posts the run's details, including its field data, to your URL.

  • Signed with HMAC-SHA256 using your account's webhook signing secret.
  • Send our standard payload or design your own JSON body with merge tokens.
  • Reply with 410 Gone and the webhook switches itself off.
More about webhooks
Run events
started completed late tag_changed
Step events
step_started step_completed step_skipped step_late step_assigned step_tagged
POST https://hooks.example.com/manifestly
X-Manifestly-Event: step_completed
X-Manifestly-Timestamp: 1760454131
X-Manifestly-Signature: sha256=9f2b…
Not writing code?

Other ways to connect

MCP server

Let Claude, ChatGPT, Gemini, and other AI assistants work with Manifestly through the same API, with OAuth sign-in and no code.

About the MCP server

Zapier

Connect Manifestly to thousands of apps without writing code, using triggers and actions built on webhooks and the API.

Manifestly on Zapier

Planning an integration?

The API is included on every plan, and paying customers get free help getting their integration started.