canonical: https://jentic.com/apis/crewform.tech/crewform

# Crewform Tech CrewForm API

Jentic publishes the only available OpenAPI specification for CrewForm API, keeping it validated and agent-ready. CrewForm is a hosted platform for building and running multi-agent workflows, where users define agents, group them into teams, queue tasks, and dispatch coordinated team runs. The v2 Edge Functions API exposes the platform as a small, versioned REST surface with cursor-based pagination and Zapier-style REST Hook subscriptions, so an external system can manage agents, tasks, teams, and webhook subscriptions programmatically.

## For AI agents

Manage CrewForm agents, tasks, teams, and team runs from outside the CrewForm UI, and subscribe webhooks to react to platform events. Use it to drive multi-agent workflows from your own backend or another agent.

## Scope

Does not handle raw LLM inference, billing, or model fine-tuning - use for managing CrewForm agents, tasks, teams, runs, and webhooks only.

## Capabilities

- List, create, update, and delete CrewForm agents through the /api-agents endpoint
- Queue work with /api-tasks, optionally auto-dispatching when an agent or team is assigned
- Organise agents into teams and update team membership through /api-teams
- Start a team run with /api-runs and list past runs to inspect their state
- Subscribe and unsubscribe Zapier-style REST Hook webhooks for platform events through /api-hooks
- Identify the calling user with /api-me to confirm scope and project context

## Use cases

### External backend driving multi-agent workflows

Drive CrewForm from an external service rather than its UI by creating agents, assigning them to teams, and starting team runs whenever a business event occurs. The /api-runs endpoint accepts the team and inputs in one POST and returns a run record, so the backend can fire-and-forget a workflow and inspect the result later.

Example prompt: Call POST /api-runs with the target team's ID and an inputs object describing the new lead, then poll GET /api-runs to find the matching run and read its status.

### Task queue for autonomous agents

Use CrewForm tasks as a managed work queue: an external system creates a task with POST /api-tasks naming the agent or team and the task is auto-dispatched. This is useful when one product wants to delegate a job to a CrewForm agent without orchestrating LLM calls itself.

Example prompt: Call POST /api-tasks with title, description, and assigned_agent_id; CrewForm auto-dispatches and the response includes the dispatched task ID for follow-up.

### Webhook-driven downstream automation

Wire CrewForm into Zapier or another REST Hook consumer by subscribing webhooks via POST /api-hooks. When a team run completes or a task changes state, the subscribed URL receives the payload, so downstream systems like CRMs, Slack, or ticketing tools update without polling.

Example prompt: Call POST /api-hooks with the target_url and event filter for run.completed, then DELETE /api-hooks to remove the subscription when no longer needed.

### Agent-to-agent delegation through Jentic

Let a Jentic-managed agent delegate work to a CrewForm team without hard-coding endpoints by searching Jentic for a 'start a team run' operation. Jentic returns POST /api-runs with its schema, the agent fills in team_id and inputs, and Jentic injects the X-API-Key from the vault.

Example prompt: Through Jentic, run search('start a CrewForm team run'), load POST /api-runs, and execute it with the chosen team_id and the user's brief as inputs.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api-agents` | Create an agent |
| POST | `/api-tasks` | Create a task and auto-dispatch when assigned |
| POST | `/api-teams` | Create a team |
| POST | `/api-runs` | Start a new team run |
| GET | `/api-runs` | List team runs |
| POST | `/api-hooks` | Subscribe a Zapier REST Hook |
| GET | `/api-me` | Get current user identity |

## Key resources

- **Agents** — Configurable AI agents managed via /api-agents (list, create, update, delete).
- **Tasks** — Work items that auto-dispatch when assigned, managed via /api-tasks.
- **Teams** — Groupings of agents managed via /api-teams; list responses include members.
- **Runs** — Team-level executions started and listed via /api-runs.
- **Hooks** — Zapier-style REST Hook subscriptions managed via /api-hooks.
- **Identity** — Caller identity exposed via GET /api-me for confirming scope.

## Why Jentic

- **Setup:** Wiring CrewForm by hand means pointing at your Supabase project host, choosing between the cf_ API key and a JWT bearer, and sending each header on the right call. Through Jentic you install once, import CrewForm from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** CrewForm creates agents, tasks, teams, and runs through collection paths and the request body rather than URL resource ids, so scope the agent to the operations it needs, such as creating an agent or starting a run. Creating webhooks stays out unless you include that operation.
- **Credential handling:** Your CrewForm cf_ key is stored once, encrypted, by your own Jentic One instance and applied as the X-API-Key header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start a CrewForm team run' or 'create an agent in CrewForm', and Jentic returns the matching CrewForm operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **OpenAI** — Underlying language model API often consumed by individual CrewForm agents.
- **Zapier NLA** — Action layer that pairs naturally with CrewForm's Zapier REST Hook webhook subscriptions.
- **n8n** — Workflow automation platform that can orchestrate AI tasks across nodes.

## FAQ

### Why is there no official OpenAPI spec for CrewForm API?

CrewForm publishes API reference docs at docs.crewform.tech but does not ship an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call CrewForm API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the CrewForm API use?

The API supports two schemes: an X-API-Key header carrying a key prefixed with cf_ created in Settings -> API Keys, and bearer JWTs for authenticated frontend clients. Server-side integrations should use the X-API-Key header; through Jentic the key is stored encrypted and applied at execution time.

### Can I auto-dispatch a task to a CrewForm agent through the API?

Yes. POST /api-tasks creates a task and auto-dispatches it when the request body assigns an agent or team, so the calling system does not need a separate dispatch step.

### How do I subscribe a webhook to CrewForm events?

POST /api-hooks with the target URL to register a Zapier-style REST Hook subscription for events such as run completion. List active subscriptions with GET /api-hooks and remove one with DELETE /api-hooks when it is no longer needed.

### What are the rate limits for the CrewForm API?

CrewForm enforces rate limits on its Edge Functions surface. The OpenAPI spec mentions rate limiting in the description but does not declare numeric ceilings, so check the response headers and your plan in the CrewForm dashboard. Build retries with backoff around HTTP 429 on POST /api-tasks and POST /api-runs.

### How do I start a CrewForm team run from a Jentic agent?

Install Jentic with pip install jentic, then async-search for 'start a CrewForm team run'. Load POST /api-runs and execute it with the target team_id and an inputs object. Jentic attaches the X-API-Key from the vault and returns the new run record.

### Can I limit what my agent is allowed to do with the CrewForm API?

Yes. Because you run Jentic One yourself, your own rules decide which CrewForm operations and credentials the agent can use. Since CrewForm acts on agents, tasks, teams, and runs through collection paths and the request body rather than per-resource URLs, you can allow only the operations the agent needs, such as creating an agent with POST /api-agents or starting a team run with POST /api-runs. Subscribing webhooks through POST /api-hooks stays out of reach unless you explicitly include that operation.
