> ## Documentation Index
> Fetch the complete documentation index at: https://devs.izap.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# REST API

> The iZap HTTP API — resources, conventions, and error model.

The iZap REST API is rooted at `/api/v1` on each environment and authenticated with
OAuth 2.0 / JWT (see [Authentication](/en/api-reference/authentication)). Browse the
full request and response schema — and try calls live — in the **Endpoints** section
of this tab.

| Environment | Origin                        |
| ----------- | ----------------------------- |
| Production  | `https://api.izap.ai`         |
| Staging     | `https://api-staging.izap.ai` |

<Tip>
  New to iZap? The [setup wizard](/en/api-reference/wizard) scaffolds a working
  client (REST, MCP, webhooks, or SSE) into your stack in one command.
</Tip>

## Resources

| Resource           | Path                           | Purpose                             |
| ------------------ | ------------------------------ | ----------------------------------- |
| Auth               | `/api/v1/auth/*`, `/oauth/*`   | JWT login and OAuth 2.0             |
| Businesses         | `/api/v1/businesses/*`         | Tenant config and members           |
| Chats              | `/api/v1/chats/*`              | Conversation read/write and sending |
| Scheduling         | `/api/v1/scheduling/*`         | Customers, services, and bookings   |
| WhatsApp templates | `/api/v1/whatsapp_templates/*` | Manage and sync message templates   |
| Transmissions      | `/api/v1/transmissions/*`      | WhatsApp broadcasts                 |

## Conventions

* **Versioning** — the API is mounted under `/api/v1`; breaking changes move to a
  new version path.
* **Auth** — send `Authorization: Bearer <jwt>` on every request.
* **Content type** — JSON request and response bodies, except form-encoded auth.

## Status

Check live platform health on the [status page](https://api.izap.ai/status). The
`/health` endpoint stays available as a machine-readable JSON liveness probe for
your own monitoring.

## Error model

| Status | Meaning                                    |
| ------ | ------------------------------------------ |
| `401`  | Missing/expired token — re-authenticate.   |
| `422`  | Validation error — check the request body. |
| `400`  | Domain or data conflict.                   |
| `500`  | Server error.                              |
