VX Agents

OpenAPI Marketplace · Messaging & SMS

Infobip SMS

v1.0.0 · 9 endpoints · 0 connections · shared by vx.ai

When an appointment reminder or a one-off promo has to go out by text: preview how Infobip will split and encode the message, send it now or at a set time with sendAt, then follow delivery reports, read replies, and reschedule or cancel a scheduled bulk.

Connect this API to an AI agent Browse all specs

What you can do with Infobip SMS 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.

MethodPathOperationDescription
POST /sms/1/preview previewSms Preview character count, encoding and message parts before sending
POST /sms/3/messages sendSms Send SMS to one or many recipients, now or scheduled with sendAt
GET /sms/3/reports getDeliveryReports Fetch new delivery reports (each report is returned once)
GET /sms/3/logs getMessageLogs Search sent-message logs from the last 48 hours by number, status or bulk
GET /sms/1/inbox/reports getInboundMessages Fetch new incoming SMS replies (each message is returned once)
GET /sms/1/bulks getScheduledBulk Get the scheduled send time of a bulk
PUT /sms/1/bulks rescheduleBulk Move a scheduled bulk to a new send time
GET /sms/1/bulks/status getBulkStatus Get the status of a scheduled bulk (pending, paused, canceled...)
PUT /sms/1/bulks/status updateBulkStatus Pause, resume or cancel a scheduled bulk

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

  1. Sign in to the Infobip portal (a free trial account works).
  2. Open Developer tools > API keys and click Create API key.
  3. Give it a name and select the scopes below, then copy the key.
  4. Copy your personal base URL from the same page (e.g. xyz123.api.infobip.com) and set it as the server baseUrl variable.
  5. In VX Agents, store the value as App <api-key>.

Permissions used

API scope Operations
sms:message:send sendSms, getDeliveryReports, getScheduledBulk, getBulkStatus
sms:logs:read getMessageLogs
sms:inbound-message:read getInboundMessages
sms:manage previewSms, rescheduleBulk, updateBulkStatus (also covers every operation above)

The simplest setup is one key with sms:manage.

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 the scope. On a trial account, you can only send to your own verified number.
  • 400 Bad Request: invalid destination (use international format without +, e.g. 41793026727), empty text, or a sendAt in the past or more than 180 days ahead.
  • 429 Too Many Requests: rate limit hit; back off and retry.

Store the 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 the full header value App <api-key>.
  • Base URL: set the server variable baseUrl to your personal prefix from the Infobip portal (e.g. xyz123 → https://xyz123.api.infobip.com). Pin it as a preset.
  • Preset worth pinning: your approved sender (alphanumeric sender ID or number). Trial accounts send from ServiceSMS and only to your own verified number.

Send an SMS

  1. previewSms with the text to see messageCount, charactersRemaining and the encoding. Emoji or non-Latin text switches to Unicode, so each part holds fewer characters and costs more.
  2. Show the user the recipients, sender and text, and get a yes. SMS costs money and cannot be recalled.
  3. sendSms with messages: [{"sender": "MyShop", "destinations": [{"to": "41793026727"}], "content": {"text": "Hi Anna, see you tomorrow at 10:00."}}]. Numbers go in international format without + or 00. Several recipients go in destinations. Several different texts go in separate messages entries.
  4. To schedule, add options.schedule.sendAt (ISO 8601 with offset, at most 180 days ahead) and options.schedule.bulkId (your own id, so you can manage the batch later).
  5. Keep bulkId and each messageId from the response.

Follow up

  • getMessageLogs with messageId, bulkId, destination or generalStatus (e.g. DELIVERED, UNDELIVERABLE, PENDING) to see what happened. Logs cover the last 48 hours, up to 1,000 per call.
  • getDeliveryReports and getInboundMessages return each report or reply only once. Use them when no webhook is set up, and keep what you read.
  • Scheduled batch: getScheduledBulk / getBulkStatus with bulkId, rescheduleBulk with a new sendAt, updateBulkStatus with PAUSED, PENDING (resume) or CANCELED. Confirm with the user before rescheduling or cancelling.

Good to know

  • One GSM-7 SMS holds 160 characters (153 per part when split). Unicode holds 70 (67 per part).
  • Rate limit on logs: about 120 requests a minute.
  • Marketing messages must respect local opt-out and quiet-hours rules. Use deliveryTimeWindow on a message to avoid night-time sends.
  • Source: Infobip SMS API reference (https://www.infobip.com/docs/api/channels/sms), checked 2026-10-16.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Infobip SMS” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs