Base URL
Point your HTTP client or environment variable at the following base URL to start using the Evolution GO layer:Authentication
Pass your Pilot Status API key using the same header your existing Evolution GO code already sends. If your code uses theapikey header, continue using it:
Supported operations
Every request is a call to<METHOD> https://pilotstatus.com.br/api/layer/evolution-go<PATH>. The instance is resolved from your API key, so Evolution GO paths that normally carry an instance segment do not need one here. Send operations are automatically load-balanced across your number’s connected instances.
Instance (session)
Send (load-balanced)
These endpoints send messages through the Evolution GO layer; the number is selected by the API key, so the path has no instance segment andnumber in the body is the recipient.
POST /send/text — Send text message
POST /send/text — Send text message
linkPreview is true the server enriches the first URL in text with an OpenGraph preview card.POST /send/link — Send link preview
POST /send/link — Send link preview
title, description and imgUrl from the URL found in text, so those fields are optional and any value you pass may be overridden.POST /send/media — Send media message
POST /send/media — Send media message
multipart/form-data upload with a file field; type selects the media kind.POST /send/poll — Send poll
POST /send/poll — Send poll
POST /send/sticker — Send sticker
POST /send/sticker — Send sticker
POST /send/location — Send location
POST /send/location — Send location
POST /send/contact — Send contact card
POST /send/contact — Send contact card
fullName and phone are required inside vcard.POST /send/carousel — Send carousel cards
POST /send/carousel — Send carousel cards
User / Contacts
The apikey selects the number, so no instance segment appears in the path or body.POST /user/info — Get user info
POST /user/info — Get user info
POST /user/check — Check on WhatsApp
POST /user/check — Check on WhatsApp
POST /user/avatar — Get user avatar
POST /user/avatar — Get user avatar
GET /user/contacts — List contacts
GET /user/contacts — List contacts
GET /user/privacy — Get privacy settings
GET /user/privacy — Get privacy settings
POST /user/privacy — Set privacy settings
POST /user/privacy — Set privacy settings
all, contacts, contact_blacklist, known, match_last_seen, or none.POST /user/block — Block a contact
POST /user/block — Block a contact
POST /user/unblock — Unblock a contact
POST /user/unblock — Unblock a contact
GET /user/blocklist — List blocked contacts
GET /user/blocklist — List blocked contacts
POST /user/profilePicture — Set profile picture
POST /user/profilePicture — Set profile picture
POST /user/profileName — Set profile name
POST /user/profileName — Set profile name
POST /user/profileStatus — Set profile status
POST /user/profileStatus — Set profile status
Message
Message-level actions on the connected number — the apikey selects the number, so never include an instance in the path or body.POST /message/react — React to message
POST /message/react — React to message
fromMe and (for group messages) the participant author.POST /message/presence — Send chat presence
POST /message/presence — Send chat presence
POST /message/markread — Mark messages read
POST /message/markread — Mark messages read
POST /message/downloadmedia — Download media
POST /message/downloadmedia — Download media
POST /message/status — Get message status
POST /message/status — Get message status
POST /message/delete — Delete for everyone
POST /message/delete — Delete for everyone
POST /message/edit — Edit a message
POST /message/edit — Edit a message
Chat
Manage chat state (pin, archive, mute) and request message history for the number selected by your API key.POST /chat/pin — Pin a chat
POST /chat/pin — Pin a chat
POST /chat/unpin — Unpin a chat
POST /chat/unpin — Unpin a chat
POST /chat/archive — Archive a chat
POST /chat/archive — Archive a chat
POST /chat/unarchive — Unarchive a chat
POST /chat/unarchive — Unarchive a chat
POST /chat/mute — Mute a chat
POST /chat/mute — Mute a chat
POST /chat/unmute — Unmute a chat
POST /chat/unmute — Unmute a chat
POST /chat/history-sync — Request history sync
POST /chat/history-sync — Request history sync
messageInfo object identifies the anchor message (its Chat JID, message ID, direction flags, and Timestamp); fields are unmarshalled from the whatsmeow MessageInfo type, so keys are PascalCase and Chat is a JID string.Group
Manage WhatsApp groups for the connected number: list, inspect, create, update, and join or leave. The apikey selects the number, so no instance segment is used.GET /group/list — List joined groups
GET /group/list — List joined groups
POST /group/info — Get group info
POST /group/info — Get group info
POST /group/invitelink — Get invite link
POST /group/invitelink — Get invite link
POST /group/photo — Set group photo
POST /group/photo — Set group photo
POST /group/name — Set group name
POST /group/name — Set group name
POST /group/description — Set group description
POST /group/description — Set group description
POST /group/create — Create group
POST /group/create — Create group
POST /group/participant — Update participants
POST /group/participant — Update participants
GET /group/myall — List owned groups
GET /group/myall — List owned groups
POST /group/join — Join via invite
POST /group/join — Join via invite
POST /group/leave — Leave group
POST /group/leave — Leave group
Call (voice)
Place, answer, reject, hang up and stream audio on WhatsApp voice calls. The apikey selects the number, so no instance goes in the path or body.POST /call/start — Start outbound call
POST /call/start — Start outbound call
GET /call/list — List active calls
GET /call/list — List active calls
POST /call/get — Get call by id
POST /call/get — Get call by id
POST /call/answer — Answer incoming call
POST /call/answer — Answer incoming call
callId to answer the latest incoming call.POST /call/reject — Reject call
POST /call/reject — Reject call
callCreator.POST /call/reject/by-id — Reject tracked call
POST /call/reject/by-id — Reject tracked call
POST /call/reject/latest — Reject latest offer
POST /call/reject/latest — Reject latest offer
POST /call/hangup — Hang up call
POST /call/hangup — Hang up call
POST /call/media/play — Play audio to call
POST /call/media/play — Play audio to call
filePath) or a multipart/form-data upload with fields callId, audio (or file) and hangupAfterPlay.POST /call/media/realtime/session — Create realtime session
POST /call/media/realtime/session — Create realtime session
Community
Manage WhatsApp communities and their linked groups. The API key selects the number, so no instance is included in the path or body.POST /community/create — Create community
POST /community/create — Create community
POST /community/add — Add groups
POST /community/add — Add groups
POST /community/remove — Remove groups
POST /community/remove — Remove groups
Label
Manage WhatsApp labels: attach or detach them from chats and messages, edit a label, and list all labels. The apikey selects the number, so no instance is included in the path or body.POST /label/chat — Add label to chat
POST /label/chat — Add label to chat
POST /label/message — Add label to message
POST /label/message — Add label to message
POST /label/edit — Edit label
POST /label/edit — Edit label
GET /label/list — List all labels
GET /label/list — List all labels
POST /unlabel/chat — Remove label from chat
POST /unlabel/chat — Remove label from chat
POST /unlabel/message — Remove label from message
POST /unlabel/message — Remove label from message
Newsletter / Channels
Manage WhatsApp newsletters (channels) — create, list, inspect, resolve invites, subscribe, and fetch messages. The apikey selects the number, so no instance segment appears in the path.Blocked (admin/global)
These global and admin-only Evolution GO paths are not exposed through the layer and return 403:GET /server/ok · /swagger/* · POST /instance/create · GET /instance/all · GET /instance/info/{id} · DELETE /instance/delete/{id} · POST /instance/proxy/{id} · DELETE /instance/proxy/{id} · POST /instance/forcereconnect/{id} · GET /instance/logs/{id}
Events
The layer forwards events to your configured webhook in Evolution GO’s own native (PascalCase) format, so your existing event handlers keep working unchanged:Message · SendMessage · Receipt · Presence · ChatPresence · Archive · CallOffer · CallAccept · CallTerminate · Connected · PairSuccess · TemporaryBan · LoggedOut · ConnectFailure · Disconnected · LabelEdit · LabelAssociationChat · LabelAssociationMessage · Contact · PushName · GroupInfo · JoinedGroup · NewsletterJoin · NewsletterLeave · QRCode · QRSuccess
The modern UPPER_SNAKE aliases are also accepted:
MESSAGES_UPSERT · SEND_MESSAGE · CONNECTION_UPDATE · QRCODE_UPDATED · PRESENCE_UPDATE · CHATS_UPSERT · CHATS_UPDATE · CHATS_DELETE · GROUPS_UPSERT · GROUPS_UPDATE · GROUP_PARTICIPANTS_UPDATE · CALL · CONTACTS_UPSERT · CONTACTS_UPDATE · NEWSLETTER_UPDATE · LABEL_EDIT · LABEL_ASSOCIATION
In addition, Pilot Status can deliver its own normalized events alongside the native ones:
- Call lifecycle:
call.ringing,call.connected,call.ended,call.missed - Number lifecycle:
number.created,number.connected,number.disconnected,number.removed
Example: send text via Evolution GO layer
The request below is a real Evolution GO layer call — a standardPOST /send/text, with only the base URL changed to route through Pilot Status. There is no instance segment in the path: the apikey header selects the instance.
POST /send/text — number and text, plus optional fields like delay, quoted, and mentionedJid. The response format is identical to what your existing code consumes.