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

# Overview

> Complete reference for RyzeAPI endpoints, organized by module

This is the complete API reference. Endpoints are organized into **modules**, each covering a specific aspect of WhatsApp.

If you're just starting, we recommend reading: [Quickstart](/en/guide/quickstart) → [Concepts](/en/guide/concepts) → [Authentication](/en/guide/authentication) before diving into a specific module.

## Base URL and conventions

* **Base URL:** `https://ryzeapi.cloud`
* **Path prefix:** every endpoint starts with `/api/<module>/...`
* **Health probe:** `/health` (no `/api/` prefix)
* **Real-time events:** `/ws/:instance` (WebSocket)
* **Content-Type:** `application/json` on every `POST` / `PUT` / `DELETE` with body
* **Authentication:** `token` header on every route (see [Authentication](/en/guide/authentication))
* **Rate limit:** `100 req/min` by default; instance creation has a strict limit of `20 req/min`
* **Maximum body:** 64 MB per request (covers base64 uploads)

## Modules

<CardGroup cols={2}>
  <Card title="Instance" icon="server" href="/en/api/instance/overview">
    Create, connect, configure, and operate your WhatsApp instances.
  </Card>

  <Card title="Messages" icon="message" href="/en/api/messages/overview">
    Text, media, sticker, location, contact, reaction, poll, carousel, buttons, list, form, PIX, and status.
  </Card>

  <Card title="Chat" icon="comments" href="/en/api/chat/overview">
    Contacts, labels, archive, pin, mute, presence, history, forward, edit, delete, and more.
  </Card>

  <Card title="Groups" icon="users" href="/en/api/groups/overview">
    Create groups, manage participants, invite links, and moderation.
  </Card>

  <Card title="Communities" icon="building" href="/en/api/communities/overview">
    Create communities and link subgroups.
  </Card>

  <Card title="Newsletter" icon="newspaper" href="/en/api/newsletter/overview">
    Create channels and manage subscriptions.
  </Card>

  <Card title="Profile" icon="user" href="/en/api/profile/overview">
    Name, picture, status message, and privacy of the connected WhatsApp account.
  </Card>

  <Card title="Events" icon="webhook" href="/en/api/events/overview">
    Webhooks (with persisted queue + retry) and real-time WebSockets.
  </Card>

  <Card title="WebSocket" icon="plug" href="/en/api/websocket">
    `/ws/:instance` upgrade, protocol, heartbeat, reconnection.
  </Card>

  <Card title="Chatwoot" icon="headset" href="/en/api/chatwoot/overview">
    Native integration with Chatwoot.
  </Card>

  <Card title="Observability" icon="heart-pulse" href="/en/api/observability/overview">
    `/health`, combined probe for orchestrators.
  </Card>
</CardGroup>

## Response format

Every call returns a JSON with the `success` field indicating the result:

<Tabs>
  <Tab title="Success">
    ```json theme={null}
    {
      "success": true,
      "message": "Message sent successfully",
      "status": "sent",
      "data": { "...": "..." }
    }
    ```
  </Tab>

  <Tab title="Error">
    ```json theme={null}
    {
      "success": false,
      "error": {
        "message": "Instance is not connected to WhatsApp"
      }
    }
    ```
  </Tab>
</Tabs>

The error envelope has **only** `success` + `error.message`, there is no numeric `code` field. Programmatic differentiation uses the **HTTP status** + the message text. See [Error types](/en/guide/errors) for the full message catalog.

## WhatsApp identifiers (JIDs)

| Type               | Format                   | Example                         |
| ------------------ | ------------------------ | ------------------------------- |
| Private            | `<phone>@s.whatsapp.net` | `5511999999999@s.whatsapp.net`  |
| Group              | `<id>@g.us`              | `120363406289005073@g.us`       |
| Newsletter         | `<id>@newsletter`        | `120363422585881117@newsletter` |
| LID (hidden)       | `<id>@lid`               | `199789077627112@lid`           |
| Broadcast (status) | `status@broadcast`       | `status@broadcast`              |

Most endpoints accept a **plain number** (`5511999999999`) and convert it internally. For Brazilian numbers (with prefix `55`), the API tries variations with/without the extra "9" after the area code.

## Quick glossary

* **JID**, the unique identifier in WhatsApp (contact, group, channel, LID).
* **Account**, your space in RyzeAPI, identified by the TokenAccount.
* **Instance**, an active connection to a WhatsApp number.
* **TokenAccount**, account token; used to create/list/delete instances and operate any instance in the account.
* **TokenInstance**, instance-specific token; used for day-to-day operations of that instance.
* **Webhook**, a `POST` the API makes to your URL when an event happens (with exponential retry and DLQ).
* **WebSocket**, persistent connection to receive events in real time.
* **Chatwoot integration**, native RyzeAPI feature that connects your instances to Chatwoot.

## Variables in examples

The Base URL is always `https://ryzeapi.cloud`. The examples use these variables:

| Variable          | Meaning                              |
| ----------------- | ------------------------------------ |
| `$Token_Account`  | Your TokenAccount                    |
| `$Token_Instance` | TokenInstance of a specific instance |
| `$Instance_Name`  | Instance name (e.g., `myInstance`)   |
