Infobip RCS Business Messaging
Can this phone get RCS? Check it, then send branded RCS text, file or rich card messages through Infobip with suggested replies and SMS failover, show typing or read events, and follow each message through delivery reports, logs and your sender's launch status.
Connect this API to an AI agent Browse all specs
What you can do with Infobip RCS Business Messaging via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| POST | /rcs/2/capability-check/query |
checkRcsCapability | Check which phone numbers can receive RCS messages |
| POST | /rcs/2/messages |
sendRcsMessages | Send RCS text, card, carousel or file messages (with suggestions, SMS failover) |
| POST | /rcs/1/events |
sendRcsEvents | Send a typing indicator or read receipt in an RCS conversation |
| GET | /rcs/2/reports |
getRcsDeliveryReports | Get delivery reports for sent RCS messages |
| GET | /rcs/2/logs |
getRcsMessageLogs | Search logs of sent RCS messages by sender, number, status or date |
| GET | /rcs/1/senders |
listRcsSenders | List the RCS senders (agents) on your account |
| GET | /rcs/1/senders/{senderName} |
getRcsSender | Get one RCS sender's brand details |
| GET | /rcs/1/senders/{senderName}/launch-status |
getRcsSenderLaunchStatus | Check whether an RCS sender is launched on each carrier |
| GET | /rcs/1/senders/{sender}/templates |
listRcsTemplates | List RCS templates of a sender |
| GET | /rcs/1/senders/{sender}/templates/{templateName} |
getRcsTemplate | Get one RCS template and its content |
| GET | /rcs/1/senders/{sender}/templates/{templateName}/status |
getRcsTemplateStatus | Get the approval status of an RCS template |
Authentication
infobipApiKey
API key — sent as the Authorization header
Infobip API key sent as Authorization: App <api-key> (the word App, a space, then the key).
How to get a credential
- Sign in to the Infobip portal (a free trial account works; trial messages can only go to your own verified number).
- Open Developer tools > API keys and click Create API key.
- Give it a name and select the scopes below, then copy the key.
- Copy your personal base URL from the same page (e.g.
xyz123.api.infobip.com) and set it as the serverbaseUrlvariable. - Sending needs an RCS sender (agent) registered and launched on your account (Channels and Numbers > RCS); until launch, messages only reach the sender's test numbers.
Permissions used
| API scope | Operations |
|---|---|
rcs:message:send (or message:send) |
sendRcsMessages, sendRcsEvents, getRcsDeliveryReports |
rcs:logs:read |
getRcsMessageLogs |
rcs:manage |
checkRcsCapability, listRcsSenders, getRcsSender, getRcsSenderLaunchStatus, listRcsTemplates, getRcsTemplate, getRcsTemplateStatus (and every send/log operation) |
rcs:provision (alternative to rcs:manage for sender and template reads) |
getRcsSender, getRcsSenderLaunchStatus, listRcsTemplates, getRcsTemplate, getRcsTemplateStatus |
Common errors
- 401 Unauthorized: the header is not
App <key>, the key was revoked, or the base URL belongs to another account. - 403 Forbidden: the key lacks one of the scopes above, or the sender is not registered to your account.
- 400 Bad Request: unknown sender, a number not in international format (e.g.
441134960001), more than 5 numbers in a capability check, or content that does not match itstype. - 429 Too Many Requests: rate limit hit (logs allow 120 requests a minute, sender and template reads 10 a second); wait and retry.
Store the value App <api-key> as a VX Agents credential (API key header) and never paste it into chat.
Usage guide
Setup
- Credential: an Infobip API key stored as
App <api-key>(see the authentication notes for scopes). - Set the server variable
baseUrlto your personal Infobip prefix (xyz123forhttps://xyz123.api.infobip.com). - Worth pinning: your RCS sender name (used as
senderin messages and capability checks, and as the path value for sender and template calls).listRcsSendersshows the names.
Send an RCS message and follow it up
- Before a campaign, call
getRcsSenderLaunchStatusfor your sender: until it is launched on a carrier, only its test numbers receive messages. - Call
checkRcsCapabilitywithsenderand up to 5phoneNumbers(international, no+). Numbers that cannot get RCS should go out by SMS instead. - Draft the message:
messages[].sender,destinations[].toandcontentwith atype:TEXT(text),FILE(file.url, optionalthumbnail) orCARD(contentwithtitle,description,media, plusorientation/alignment). Add up to the allowedsuggestions(REPLY,OPEN_URL,DIAL_PHONE) andoptions.smsFailover.textso the message still lands by SMS if RCS fails. - Show the user the recipients and content and get a yes, then call
sendRcsMessages. Keep the returnedbulkIdandmessageIds. - Check the outcome with
getRcsDeliveryReports(bybulkIdormessageId) orgetRcsMessageLogs(filter bysender,destination,generalStatus,sentSince/sentUntil). - In a live conversation,
sendRcsEventswith content typeTYPING_INDICATOR, orSEENplus the inboundmessageId, shows the customer you are on it. - For templates,
listRcsTemplatesandgetRcsTemplateshow the content;getRcsTemplateStatustells you whether it is approved.
Good to know
- Every send costs money and reaches a real person: always confirm recipients and content first.
- Delivery reports are returned only once each: a second call with the same filter returns nothing new. Use the logs for history (48 hours; use
useCursor=trueandcursorto page). - Times are ISO 8601 with offset, e.g.
2026-10-25T09:00:00.000+0000. - Carousels, location/calendar suggestions and MMS failover are not in this spec (left out for size).
Source: Infobip RCS API reference (https://www.infobip.com/docs/api/channels/rcs), checked 2026-10-25.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Infobip RCS Business Messaging” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.