Mensagens
Envie texto, mídia e localização, e leia o histórico. Envios respondem 202 (enfileirado) — a entrega ocorre logo em seguida no canal conectado.
Gere uma chave em Painel → API Keys. A chave fica só no seu navegador (localStorage) e nunca aparece nos exemplos de código.
Enviar texto
messages:send/v1/messages/textEnvia uma mensagem de texto. Aceita a marcação do WhatsApp no corpo: *negrito*, _itálico_, ~tachado~ e ```mono```.
| Campo | Tipo | Descrição |
|---|---|---|
toobrigatório | string | Número do destinatário (E.164, só dígitos ou com +). |
bodyobrigatório | string | Texto da mensagem. |
Resposta 202
{
"id": "665f…",
"status": "queued",
"to": "5511999998888@s.whatsapp.net"
}curl -X POST "https://api.mandapi.net/v1/messages/text" \
-H "Authorization: Bearer mapi_live_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"to": "5511999998888",
"body": "Olá! *Bem-vindo* ao Mandapi 🚀"
}'Enviar mídia (imagem, vídeo, áudio, documento, figurinha)
messages:send/v1/messages/imageMesmo formato para os cinco tipos — troque o caminho: /v1/messages/{image|video|audio|document|sticker}. A origem é mediaId (de um upload em POST /v1/media) OU link (URL pública). Informe exatamente um dos dois.
| Campo | Tipo | Descrição |
|---|---|---|
toobrigatório | string | Número do destinatário. |
mediaId | string | Id de uma mídia enviada em POST /v1/media. |
link | string | URL pública do arquivo (alternativa ao mediaId). |
caption | string | Legenda (imagem/vídeo/documento). |
fileName | string | Nome do arquivo (documentos). |
Resposta 202
{
"id": "665f…",
"status": "queued",
"to": "5511999998888@s.whatsapp.net"
}curl -X POST "https://api.mandapi.net/v1/messages/image" \
-H "Authorization: Bearer mapi_live_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"to": "5511999998888",
"link": "https://picsum.photos/600/400",
"caption": "Olha essa foto!"
}'Enviar localização
messages:send/v1/messages/locationEnvia um ponto no mapa.
| Campo | Tipo | Descrição |
|---|---|---|
toobrigatório | string | Número do destinatário. |
latitudeobrigatório | number | Latitude (-90 a 90). |
longitudeobrigatório | number | Longitude (-180 a 180). |
name | string | Nome do local. |
address | string | Endereço. |
Resposta 202
{
"id": "665f…",
"status": "queued",
"to": "5511999998888@s.whatsapp.net"
}curl -X POST "https://api.mandapi.net/v1/messages/location" \
-H "Authorization: Bearer mapi_live_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"to": "5511999998888",
"latitude": -23.5613,
"longitude": -46.6565,
"name": "Av. Paulista",
"address": "São Paulo, SP"
}'Enviar contato (vCard)
messages:send/v1/messages/contactEnvia um cartão de contato para o destinatário.
| Campo | Tipo | Descrição |
|---|---|---|
toobrigatório | string | Número do destinatário. |
contactobrigatório | object | { fullName, phone, organization? }. |
Resposta 202
{
"id": "665f…",
"status": "queued",
"to": "5511999998888@s.whatsapp.net"
}curl -X POST "https://api.mandapi.net/v1/messages/contact" \
-H "Authorization: Bearer mapi_live_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"to": "5511999998888",
"contact": {
"fullName": "Suporte Mandapi",
"phone": "5511333334444"
}
}'Listar mensagens
messages:read/v1/messagesHistórico de mensagens enviadas e recebidas (mais recentes primeiro).
| Campo | Tipo | Descrição |
|---|---|---|
chatId | string | Filtra por chat (ex.: 5511999998888@s.whatsapp.net). |
direction | string | in | out. |
limit | number | 1 a 200 (padrão 50). |
Resposta 200
[
{
"id": "665f…",
"waMessageId": "3EB0…",
"channelId": "665e…",
"direction": "out",
"chatId": "5511999998888@s.whatsapp.net",
"type": "text",
"body": "Olá!",
"media": null,
"status": "sent",
"timestamp": "2026-07-22T18:00:00Z"
}
]curl -X GET "https://api.mandapi.net/v1/messages" \
-H "Authorization: Bearer mapi_live_SUA_CHAVE"