Saltar al contenido principal
POST
/
api
/
message
/
status
/
:instance
Enviar status
curl --request POST \
  --url https://api.example.com/api/message/status/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "type": "<string>",
  "message": "<string>",
  "mediaUrl": "<string>",
  "mimeType": "<string>",
  "fileName": "<string>",
  "backgroundColor": "<string>",
  "font": "<string>",
  "isVoice": true,
  "duration": {},
  "waveform": [
    {}
  ],
  "source": "<string>"
}
'

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.

Auth: TokenAccount o TokenInstanceRate-limit: Global (100/min) • Idempotente: no

Descripción

Publica un status (historia) con duración de 24 horas en el perfil de la instancia. Soporta cuatro tipos: text (texto plano con color de fondo y fuente), image, video y audio. A diferencia de los demás endpoints, no hay campo number, el status se publica en status@broadcast y es visible para todos los contactos que tengan permiso (configurado en la app). Las menciones no son soportadas en este endpoint.

Ejemplos

Status de texto con color y fuente

Publica un status puramente textual con color de fondo y fuente personalizados. No se necesita mediaUrl.
curl -X POST "https://ryzeapi.cloud/api/message/status/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "type":            "text",
    "message":         "May is here, and so are the new features!",
    "backgroundColor": "#FF6600",
    "font":            "serif"
  }'

Status de imagen

Publica una imagen como status. mediaUrl es requerido para tipos no-texto. message se muestra como subtítulo.
curl -X POST "https://ryzeapi.cloud/api/message/status/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "type":     "image",
    "message":  "New version launch!",
    "mediaUrl": "https://cdn.example.com/launch-banner.jpg"
  }'

Status de video

Publica un video corto como status. WhatsApp limita las historias de video a 30 segundos, los más largos se recortan.
curl -X POST "https://ryzeapi.cloud/api/message/status/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "type":     "video",
    "message":  "Behind the scenes from this week's recording",
    "mediaUrl": "https://cdn.example.com/teaser.mp4",
    "mimeType": "video/mp4"
  }'

Status de audio (mensaje de voz)

Publica audio como status. Por defecto se trata como PTT (voz). Usa isVoice: false para manejarlo como un archivo de audio regular.
curl -X POST "https://ryzeapi.cloud/api/message/status/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "type":     "audio",
    "message":  "Today's voice note",
    "mediaUrl": "https://cdn.example.com/voice-note.ogg",
    "mimeType": "audio/ogg; codecs=opus",
    "isVoice":  true
  }'

Respuesta exitosa

El messageType refleja el type que enviaste (text, image, video o audio) y chat.jid siempre es status@broadcast. El messageId retornado puede usarse para eliminar la publicación antes de la ventana de 24 horas vía el endpoint de eliminar mensaje.
200 OK
{
  "success": true,
  "message": "Status sent successfully",
  "status":  "sent",
  "data": {
    "messageId":   "3EB08FCF27E532F1B0F5",
    "direction":   "sent",
    "messageType": "text",
    "content":     "May is here, and so are the new features!",
    "source":      "api",
    "timestamp":   "2026-04-30T14:30:00Z",
    "chat": {
      "jid":     "status@broadcast",
      "isGroup": false
    },
    "sender": {
      "jid":      "5511777777777@s.whatsapp.net",
      "instance": "my-instance"
    }
  }
}

Parámetros de ruta

instance
string
requerido
Nombre de la instancia (p. ej., $Instance_Name).

Cabeceras

token
string
requerido
TokenAccount o TokenInstance.
Content-Type
string
requerido
application/json

Cuerpo de la solicitud

type
string
requerido
Tipo de status. Valores aceptados: text, image, video, audio.
message
string
requerido
Contenido textual del status. Para type=text, este es el texto efectivamente mostrado. Para media (image, video, audio), funciona como subtítulo.
mediaUrl
string
URL pública del archivo de media. Requerido cuando type es image, video o audio. Ignorado cuando type=text.
mimeType
string
Tipo MIME de la media (p. ej., image/jpeg, video/mp4, audio/ogg; codecs=opus). Opcional, autodetectado cuando se omite.
fileName
string
Nombre del archivo. Opcional, raramente relevante para historias.
backgroundColor
string
Solo para type=text. Color de fondo del status en hex (p. ej., #FF0000, #00AAFF). Cuando se omite, WhatsApp usa el color default del tema.
font
string
Solo para type=text. Fuente del texto. Valores comunes: system, serif, sans-serif.
isVoice
boolean
predeterminado:"true"
Solo para type=audio. Cuando es true (default), el audio se publica como PTT (mensaje de voz). Cuando es false, se vuelve un audio regular con el reproductor estándar.
duration
uint32
Solo para type=audio. Duración en segundos. Opcional, autodetectada por la herramienta de transcoding.
waveform
byte[]
Solo para type=audio. Waveform personalizada (array de bytes). Opcional, autogenerada si se omite.
source
string
predeterminado:"api"
Identificador de origen para trazabilidad (p. ej., crm, marketing-bot, n8n).

Notas

  • No hay campo number, las historias siempre van a status@broadcast y se vuelven visibles según las reglas de privacidad configuradas en la app (Configuración → Privacidad → Status).
  • Las menciones no son soportadas en este endpoint, mention y mentionAll no existen aquí (las historias no soportan menciones en la API).
  • El audio en formatos no-Opus (mp3, m4a, wav) es convertido automáticamente por el servidor a través de FFmpeg a audio/ogg; codecs=opus antes de publicar. El proceso puede aumentar el tiempo de respuesta de la solicitud.
  • Para type=video, WhatsApp limita las historias a ~30 segundos. Los videos más largos pueden ser recortados o rechazados por el servidor de WhatsApp.
  • Los status duran 24 horas y se eliminan automáticamente. Para eliminarlos antes, usa el endpoint de eliminar mensaje con el messageId retornado.
  • backgroundColor y font solo tienen efecto en type=text. En status de media, son ignorados silenciosamente.

Errores

HTTPStatus internoMensaje
400Instance name is required
400Invalid request body: <detail>
400Type must be one of: text, image, video, audio
400Message is required
400MediaURL is required for type: <type>
400media_download_failedFailed to download media from URL
400media_validation_failed(validación del archivo de media)
400unsupported_media_type(formato de media no soportado)
500media_upload_failedFailed to upload media to WhatsApp
500audio_conversion_failed(fallo al convertir audio a Opus)
404Instance not found
500send_failedFailed to send status: <reason>
503disconnectedInstance is not connected to WhatsApp
Envoltorio de error:
{
  "success": false,
  "error": { "message": "MediaURL is required for type: image" }
}