> ## 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.

# Visión General

> Endpoints de llamadas de voz en WhatsApp: llamada fake (suena y cuelga) y llamada con audio

**Auth:** `TokenAccount` o `TokenInstance` • **Rate-limit:** `Global` (100/min) • **Idempotente:** no

El módulo `/api/call/*` cubre el inicio de **llamadas de voz** desde la instancia. Actualmente hay dos operaciones: la **llamada fake**, que hace sonar el teléfono unos segundos y cuelga sola (sin audio), y la **llamada con audio**, que llama y reproduce un archivo cuando el destinatario atiende. Todas las rutas validan la propiedad de la instancia y aceptan `TokenAccount` o `TokenInstance`.

## Endpoints disponibles

| Método | Path                        | Tipo                                     |
| ------ | --------------------------- | ---------------------------------------- |
| POST   | `/api/call/fake/:instance`  | [Llamada Fake](/es/api/calls/fake)       |
| POST   | `/api/call/audio/:instance` | [Llamada con Audio](/es/api/calls/audio) |

## Estructura común

### Destinatario (`number`)

Ambos endpoints reciben el destino en el campo `number`, que acepta:

* Número simple: `"5511999999999"` (preferido).
* JID privado: `"5511999999999@s.whatsapp.net"`.

Las llamadas son siempre 1:1 — no hay llamada a grupo vía API.

### Respuesta estándar (200)

Ambas rutas devuelven un envoltorio con el `callId` asignado por WhatsApp:

```json theme={null}
{
  "success": true,
  "message": "Audio call placed",
  "callId":  "3EB08FCF27E532F1D3D3",
  "number":  "5511999999999"
}
```

La llamada fake incluye además el campo `duration` (segundos que estuvo sonando).

<Note>
  El `callId` identifica la llamada en WhatsApp. La llamada fake la termina automáticamente el servidor tras `duration` segundos; la llamada con audio solo reproduce el archivo si el destinatario **atiende**.
</Note>

## Errores comunes

| HTTP | Mensaje                                                  |
| ---- | -------------------------------------------------------- |
| 400  | `Instance name is required`                              |
| 400  | `Invalid request body: <detail>`                         |
| 400  | `Number is required`                                     |
| 400  | `Duration must be between 1 and 60 seconds` (fake)       |
| 400  | `Provide exactly one of mediaUrl or mediaBase64` (audio) |
| 404  | `instance not found`                                     |
| 500  | `<motivo del fallo>`                                     |

Envoltorio de error:

```json theme={null}
{
  "success": false,
  "error": { "message": "Number is required" }
}
```

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Llamada Fake" icon="phone" href="/es/api/calls/fake">
    Hace sonar el teléfono unos segundos y cuelga sola.
  </Card>

  <Card title="Llamada con Audio" icon="phone-volume" href="/es/api/calls/audio">
    Llama y reproduce un audio (URL o base64) al atender.
  </Card>
</CardGroup>
