Conventions
| Base URL | https://api.meowsapp.com |
| Authentication | Authorization: Bearer <token> (or X-V3-Secret) on everything except /health*. See Authentication. |
| Content type | application/json; multipart/form-data only for media uploads. |
| Where parameters go | GET routes and POST /start: query string. Other POST routes: JSON body. |
| Success | 200 with the documented body. Sends return {"status": "sent", "messageId"}. |
| Errors | Always {"error": "<message>"} with a 4xx/5xx status. See Errors. |
| Timestamps | RFC 3339, UTC. |
| Identifiers | clientId (letters+digits), to (LID / +phone / JID), chatRoomId, messageId. See Core concepts. |
A complete request
curl -X POST "https://api.meowsapp.com/check-state" \
-H "Authorization: Bearer $SN_TOKEN" -H "Content-Type: application/json" \
-d '{ "clientId": "acmemain" }'Endpoint index
Sessions10 routes
| POST | /start | Start or resume a session |
| GET | /qr | Get the pairing QR |
| POST | /pair-phone | Pair with a phone-number code |
| POST | /check-state | Check connection state |
| GET | /clients | List sessions |
| POST | /set-webhook | Set or clear the webhook |
| POST | /set-org-id | Enable hosted history (workspace id) |
| POST | /set-api-secret | Per-session API secret |
| POST | /set-enable-group-ai | Enable group messages |
| POST | /disconnect | Unlink and delete a session |
Messages11 routes
| POST | /send-message | Send text |
| POST | /send-media-message | Send media by URL |
| POST | /send-media-message | Send media by upload |
| POST | /send-poll-message | Send a poll |
| POST | /send-interactive-message | Send buttons |
| POST | /send-reaction | React to a message |
| POST | /edit-message | Edit a sent message |
| POST | /send-location | Send a location |
| POST | /send-contact | Send a contact card |
| POST | /send-typing | Typing indicator |
| POST | /delete-message | Delete a message |
Chats & contacts6 routes
| POST | /mark-read | Send read receipts |
| POST | /mark-unread | Mark a chat unread |
| POST | /user-info | Look up a contact |
| POST | /check-owner-lid | Is this number on WhatsApp? |
| GET | /profile-picture | Profile picture |
| POST | /refresh-avatars | Backfill profile pictures |
Groups6 routes
| POST | /get-groups | List groups |
| POST | /get-group-participants | Group details & members |
| POST | /create-group | Create a group |
| POST | /update-group-members | Add, remove, promote, demote |
| POST | /group-invite-link | Invite link |
| POST | /leave-group | Leave a group |
Hosted inbox & media library6 routes
| GET | /chatrooms | List chats |
| GET | /chatrooms/{chatRoomId}/messages | Chat history |
| GET | /chatrooms/{chatRoomId}/messages/{messageId}/media-url | Media link for a message |
| POST | /chatrooms/{chatRoomId}/read | Clear unread count |
| GET | /media-files | Media library |
| GET | /media-files/{messageId}/url | Media link by storage id |
Health & configuration4 routes
| GET | /health/live | Liveness |
| GET | /health/ready | Readiness |
| GET | /health/clients | Per-session state |
| GET | /config | Runtime configuration |
Webhook events
The events we POST to your webhookUrl — envelope and every type.