canonical: https://jentic.com/apis/coachful.co/coachful

# Coachful Zapier API

Jentic publishes the only available OpenAPI specification for Coachful Zapier API, keeping it validated and agent-ready. The API exposes the integration surface that Coachful uses for its Zapier app - webhook subscriptions, polling triggers for recent events, action endpoints for creating tasks, habits, messages, posts, and invoices, and search endpoints for finding clients and listing programs, cohorts, channels, and resources. It is built for automation use cases on top of the Coachful coaching platform rather than for building a full client-facing app.

## For AI agents

Automate coaching workflows on Coachful - create tasks, habits, messages, invoices, and program enrolments, plus subscribe to client-event webhooks.

## Scope

Does not handle video session hosting, payment card processing, or course-content delivery - use for Coachful client, task, habit, message, invoice, and enrolment automation only.

## Capabilities

- Subscribe to Coachful events via POST `/api/zapier/hooks` and unsubscribe with DELETE `/api/zapier/hooks/{hookId}`
- Poll for recent events with GET `/api/zapier/triggers/{event}` when webhooks are not viable
- Create tasks, habits, posts, messages, and invoices for clients via dedicated `/api/zapier/actions` endpoints
- Enrol a client in a program or grant a resource through `/api/zapier/actions/enroll-in-program` and /grant-resource
- Find clients by email and list programs, cohorts, resources, channels, and check-in flows via the `/api/zapier/searches` endpoints

## Use cases

### Onboarding Automation for New Clients

Automate coaching client onboarding by listening for a new-client event, then chaining create-task, grant-resource, and enroll-in-program actions in one workflow. POST `/api/zapier/hooks` subscribes to the event and the action endpoints turn an inbound signup into a full onboarding sequence without manual coach effort. End-to-end setup typically takes a few hours.

Example prompt: Subscribe to the new-client event via POST `/api/zapier/hooks`, then on each event call `/api/zapier/actions/create-task` and `/api/zapier/actions/enroll-in-program.`

### Billing and Invoice Sync

Generate Coachful invoices from upstream events such as a Stripe subscription renewal or a CRM stage change. POST `/api/zapier/actions/create-invoice` issues the invoice for the matched client, while GET `/api/zapier/searches/find-client` locates the client record by email. This keeps the coaching ledger in sync with whichever payments or CRM tool is the source of truth.

Example prompt: Find the client with email alex@example.com via GET `/api/zapier/searches/find-client`, then issue an invoice for $200 via POST `/api/zapier/actions/create-invoice.`

### Habit and Check-in Reinforcement

Push habits and check-in prompts to clients on a schedule or in response to external events. POST `/api/zapier/actions/create-habit` assigns a new habit and the check-in flow listings under `/api/zapier/searches/list-checkin-flows` let an automation pick the right flow before sending a message via `/api/zapier/actions/send-message.` Useful for fitness, nutrition, and wellness coaches.

Example prompt: Create a daily water-intake habit for client id 123 via POST `/api/zapier/actions/create-habit` and then send a kickoff message with `/api/zapier/actions/send-message.`

### AI Agent Coaching Workflows via Jentic

An AI assistant for a coaching business uses Jentic to discover and call Coachful's automation surface without storing the X-API-Key directly. The agent searches for 'enrol a client in a program', loads the schema, and executes - Jentic injects credentials at execution time and respects the documented 100 reads/min and 30 writes/min limits.

Example prompt: Use Jentic to search for 'enrol a Coachful client', load the POST `/api/zapier/actions/enroll-in-program` schema, and enrol client id 42 in program id 7.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/zapier/hooks` | Subscribe to a Coachful event |
| POST | `/api/zapier/actions/create-task` | Create a task for a client |
| POST | `/api/zapier/actions/send-message` | Send a message to a client |
| POST | `/api/zapier/actions/create-invoice` | Create an invoice for a client |
| POST | `/api/zapier/actions/enroll-in-program` | Enrol a client in a coaching program |
| GET | `/api/zapier/searches/find-client` | Find a client by email |
| GET | `/api/zapier/searches/list-programs` | List all programs |

## Key resources

- **Auth** — Verify API keys via GET `/api/zapier/auth/test`
- **Hooks** — Subscribe to and unsubscribe from event webhooks
- **Triggers** — Poll for recent events and fetch sample event payloads
- **Actions** — Create tasks, habits, messages, posts, invoices, program enrolments and resource grants
- **Searches** — Find clients by email and list programs, cohorts, resources, channels, and check-in flows

## Why Jentic

- **Setup:** Wiring Coachful by hand means learning its X-API-Key header auth, targeting app.coachful.co, staying inside its read and write rate limits, and handling retries yourself. Through Jentic you install once, import the Coachful Zapier API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Coachful passes client and task targets in the request body rather than the URL path, so scope the agent to the operations it needs, such as finding a client or listing programs. You choose that set, so write operations like creating a task, sending a message, or creating an invoice are not included unless you add them.
- **Credential handling:** Your Coachful key is stored once, encrypted, by your own Jentic One instance and injected into 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 'enrol a client in a program' or 'send a coaching message', and Jentic returns the matching Coachful action with its input schema so the agent calls the right endpoint without reading the Zapier integration docs.

## Related APIs

- **upcoach** — upcoach is a coaching-business platform with overlapping client and program features.
- **Teachable** — Teachable focuses on selling courses and digital products to learners.
- **Circle** — Circle hosts the community space many coaching businesses use alongside Coachful.
- **Calendly** — Calendly handles session scheduling for coaches.

## FAQ

### Why is there no official OpenAPI spec for Coachful Zapier API?

Coachful does not publish an OpenAPI specification on its developer site. Jentic generates and maintains this spec so that AI agents and developers can call Coachful Zapier 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 Coachful Zapier API use?

The API uses an API-key scheme called ApiKeyAuth, sent as the X-API-Key header on every request. Through Jentic the key is stored encrypted in the vault and injected at execution time, so an agent never sees the raw value.

### Can I create tasks and habits for clients with the Coachful Zapier API?

Yes. POST `/api/zapier/actions/create-task` creates a task and POST `/api/zapier/actions/create-habit` assigns a habit, each scoped to a specific client id. Use GET `/api/zapier/searches/find-client` to look the client up by email if you only have the address.

### What are the rate limits for the Coachful Zapier API?

Coachful enforces 100 read requests per minute and 30 write requests per minute per API key, as declared on the X-API-Key security scheme. High-volume automations should batch reads into search endpoints rather than per-record polls.

### How do I enrol a client in a program through Jentic?

Search Jentic for 'enrol a Coachful client', load the POST `/api/zapier/actions/enroll-in-program` schema, and execute with the client id and program id. Install the SDK with pip install jentic and call it via the async client.

### Does the API support real-time webhooks or only polling?

Both. POST `/api/zapier/hooks` subscribes a target URL to a specific event for real-time delivery, and DELETE `/api/zapier/hooks/{hookId}` removes the subscription. If webhooks are blocked, GET `/api/zapier/triggers/{event}` returns recent events for polling.

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

Yes. Because you run Jentic One yourself, you decide which Coachful operations your agent may call and which credential it uses, and your own rules are what grant or deny each action. Coachful passes client and task targets in the request body rather than the URL path, so you scope the agent to just the operations it needs, such as GET `/api/zapier/searches/find-client` or GET `/api/zapier/searches/list-programs.` Write operations like POST `/api/zapier/actions/create-task`, /send-message, or /create-invoice stay unavailable to the agent unless you explicitly add them to that set.
