Everything an AI agent can do with the Vonage API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints26
API versionv1
Last updated23 June 2026
Orientation

How the Vonage API works.

The Vonage API is how an app or AI agent reaches a phone network: sending an SMS or WhatsApp message, placing a voice call, verifying a user with a one-time code, or looking up a number. Access comes from an account key and secret for some APIs and a token signed by an application's private key for others, and since Vonage has no per-endpoint scopes, whatever holds a valid credential can do everything that credential allows. Each Vonage product is its own API, and events like an inbound message are pushed to webhook URLs set per application.

26Endpoints
7Capability groups
10Read
16Write
11Permissions
Authentication
Vonage authenticates in two main ways, and which one an API accepts is fixed by that API. The account API key and secret, sent as HTTP Basic auth, cover the SMS, Number Insight, Numbers, and Account APIs, plus SMS and MMS on the Messages API. Voice and the WhatsApp, Viber, RCS, and Messenger channels of the Messages API instead need a JSON Web Token signed by an application's private key. The legacy SMS API can also use a signed request so the secret never travels in the call.
Permissions
Vonage has no per-endpoint OAuth scopes. The credential is the boundary, and an API key and secret reach the whole account. For Voice and the non-SMS message channels, the boundary is the application: a JWT is signed by one application's private key, and that application's linked capabilities, like Voice or Messages, plus its allowed numbers decide what the token can do. Because there is no scope to narrow, anything holding a valid credential can do everything that credential allows.
Versioning
Each Vonage API is versioned on its own, in the path rather than a header. The Messages and Voice APIs sit at v1, Verify has both an original release with no version segment and a newer v2, and the SMS, Number Insight, Numbers, and Account APIs carry no version segment at all. An integration pins to a specific API and migrates when that API ships a successor, as Number Insight is doing toward Identity Insights ahead of its 4 February 2027 sunset.
Data model
Vonage is several REST APIs on two hosts. Messages, Voice, and Verify answer at api.nexmo.com, while SMS, Number Insight, Numbers, and Account answer at rest.nexmo.com. The Messages API unifies SMS, MMS, WhatsApp, Viber, RCS, and Messenger behind one send endpoint keyed by a channel field, while Voice models a live call as a resource controlled by a Call Control Object. Events such as inbound messages and call state are pushed to webhook URLs registered per application, and newer APIs report errors in RFC 7807 problem-detail form.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Vonage determines what it can reach. Some APIs answer with an account key and secret, others with a token signed by an application's private key, and a hosted server exposes Vonage tools to agents, each governed by the credential behind it.

Ways to connect

REST APIs

Vonage is a set of separate REST APIs rather than one. Messages, Voice, and Verify answer at api.nexmo.com, while the SMS, Number Insight, Numbers, and Account APIs answer at rest.nexmo.com. Each API has its own path version, its own base address, and its own accepted credentials.

Best forConnecting an app or AI agent to Vonage.
Governed byThe API key and secret, or the application JWT, behind the call.
Docs ↗

Webhooks

Vonage POSTs events to webhook URLs registered on an application or number, such as an inbound message, a message status update, or a call answer or completion event. There is no central event feed, so the events delivered depend on which URLs are configured.

Best forReceiving Vonage events at an app or AI agent.
Governed byThe webhook URLs set on the application or number, and optional signature verification.
Docs ↗

MCP server (Tooling / API Bindings)

Vonage's first-party Tooling MCP server, also called the API Bindings server, exposes Vonage APIs to AI agents through the Model Context Protocol. It runs locally over standard input and output through the npx package @vonage/vonage-mcp-server-api-bindings, authenticating with the VONAGE_API_KEY and VONAGE_API_SECRET environment variables, and covers tasks like checking the balance, sending SMS, and managing applications.

Best forConnecting an AI agent to Vonage APIs through MCP.
Governed byThe API key and secret in the server's environment.
Docs ↗

MCP server (Documentation)

Vonage's first-party Documentation MCP server gives an agent access to Vonage API documentation, code snippets, and tutorials over the Model Context Protocol, not to live account data. It is a remote server at https://documentation-mcp.vonage.dev/mcp.

Best forGiving an AI agent grounded access to Vonage documentation.
Governed byRead-only access to public documentation, no account credentials.
Docs ↗
Authentication

API key and secret (Basic auth)

The account API key and secret authenticate most APIs through HTTP Basic auth, base64-encoded and joined by a colon. They work for the SMS, Number Insight, Numbers, and Account APIs, and for SMS and MMS over the Messages API, and grant the full account, since Vonage has no per-resource scopes on the key.

TokenAPI key and secret
Best forSMS, Number Insight, Numbers, and Account calls
Docs ↗

Application JWT

Voice and the WhatsApp, Viber, RCS, and Messenger channels of the Messages API authenticate with a JSON Web Token signed by an application's private key. The application's linked capabilities define what the token can do, since there is no scope on the token itself.

TokenJWT signed by an application's private key
Best forVoice and the non-SMS Messages channels
Docs ↗

Signed request

The legacy SMS API can authenticate a request with a signature instead of the plain secret, sending api_key, a sig hash, and a timestamp, so the secret never travels in the request. The signature is computed from the request parameters and a signing secret.

TokenSignature (api_key, sig, timestamp)
Best forSigned legacy SMS calls
Docs ↗
Capability map

What an AI agent can do in Vonage.

The Vonage platform is split into separate APIs an agent can act on, such as messaging, voice calls, identity verification, number lookup, and number management. Each has its own methods and its own base address, and writes in some send real messages, place real calls, or spend account credit.

Messages

2 endpoints

Send a message across SMS, MMS, WhatsApp, Viber, RCS, or Facebook Messenger through one endpoint, and update the status of a sent message.

A write here sends a real message to a real recipient and spends account credit.
View endpoints

SMS (legacy)

1 endpoint

Send an outbound SMS through the original single-channel SMS API, which predates the unified Messages API.

A write here sends a real text message and spends account credit.
View endpoints

Voice

6 endpoints

Create an outbound call, list and read calls, transfer an in-progress call to new instructions, and play audio or text-to-speech into a call.

A write here places or changes a real phone call and spends account credit.
View endpoints

Verify

5 endpoints

Start a verification, check a user-supplied code, advance to the next channel, and cancel a request, through the newer Verify v2 API.

A write here sends a real verification code and spends account credit.
View endpoints

Number Insight

3 endpoints

Look up basic, standard, or advanced information about a phone number, such as its format, carrier, and validity.

A standard or advanced lookup is a billable real-time query against the number.
View endpoints

Numbers

5 endpoints

List the numbers an account owns, search for available numbers, buy a number, cancel a number, and change a number's behaviour.

A write here buys or releases a real phone number and changes billing.
View endpoints

Account

4 endpoints

Read the account balance, update account-level webhook settings, and list, create, or revoke the API secrets on an account.

A write here changes account settings or the secrets that authenticate every call.
View endpoints
Endpoint reference

Every Vonage API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Messages

Send a message across SMS, MMS, WhatsApp, Viber, RCS, or Facebook Messenger through one endpoint, and update the status of a sent message.2

Vonage has no per-endpoint OAuth scopes; access is the credential itself. Basic auth with the API key and secret works for SMS and MMS, while WhatsApp, Viber, RCS, and Messenger need a JWT signed by an application's private key. Returns a message_uuid.

Acts onmessage
Permission (capability)Messages: send
VersionAvailable since the API’s base version
Webhook eventmessage-status
Rate limit75 requests per second per API key

JWT authentication only, signed by an application's private key.

Acts onmessage
Permission (capability)Messages: send
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit75 requests per second per API key

SMS (legacy)

Send an outbound SMS through the original single-channel SMS API, which predates the unified Messages API.1

Answers at rest.nexmo.com, not the api.nexmo.com host. Authenticates with the API key and secret, or with a signed request using api_key, sig, and timestamp. Newer integrations use the Messages API instead.

Acts onsms
Permission (capability)SMS: send
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit30 requests per second per API key by default

Voice

Create an outbound call, list and read calls, transfer an in-progress call to new instructions, and play audio or text-to-speech into a call.6

JWT signed by a Voice application's private key. Limited to 3 outbound calls created per second across all voice products.

Acts oncall
Permission (capability)Voice: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit3 calls per second

JWT signed by a Voice application's private key. Counts toward the 15 requests per second non-create voice limit.

Acts oncall
Permission (capability)Voice: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit15 requests per second

JWT signed by a Voice application's private key. Counts toward the 15 requests per second non-create voice limit.

Acts oncall
Permission (capability)Voice: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit15 requests per second

JWT signed by a Voice application's private key. Counts toward the 15 requests per second non-create voice limit.

Acts oncall
Permission (capability)Voice: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit15 requests per second

JWT signed by a Voice application's private key. Counts toward the 15 requests per second non-create voice limit.

Acts oncall
Permission (capability)Voice: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit15 requests per second

JWT signed by a Voice application's private key. Counts toward the 15 requests per second non-create voice limit.

Acts oncall
Permission (capability)Voice: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit15 requests per second

Verify

Start a verification, check a user-supplied code, advance to the next channel, and cancel a request, through the newer Verify v2 API.5

Verify v2 accepts a JWT or Basic auth with the API key and secret. Returns a request_id used to check the code. The original Verify API uses POST /verify and POST /verify/check instead.

Acts onverification
Permission (capability)Verify: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A JWT or Basic auth with the API key and secret. A wrong code returns 401, an expired or already-verified request returns 409 or 410.

Acts onverification
Permission (capability)Verify: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A JWT or Basic auth with the API key and secret.

Acts onverification
Permission (capability)Verify: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A JWT or Basic auth with the API key and secret. Valid from 30 seconds after the request starts and before the second workflow event.

Acts onverification
Permission (capability)Verify: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A JWT or Basic auth with the API key and secret.

Acts ontemplate
Permission (capability)Verify: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Number Insight

Look up basic, standard, or advanced information about a phone number, such as its format, carrier, and validity.3

Answers at rest.nexmo.com with Basic auth using the API key and secret. The Number Insight API is being sunset on 4 February 2027, with Identity Insights as the successor.

Acts onnumber insight
Permission (capability)Number Insight: read
VersionSunset 2027-02-04
Webhook eventNone
Rate limitStandard limits apply

A billable lookup. Answers at rest.nexmo.com with Basic auth. Sunset on 4 February 2027 in favour of Identity Insights.

Acts onnumber insight
Permission (capability)Number Insight: read
VersionSunset 2027-02-04
Webhook eventNone
Rate limitStandard limits apply

A billable lookup. Answers at rest.nexmo.com with Basic auth. An asynchronous variant at /ni/advanced/async returns results to a callback URL. Sunset on 4 February 2027.

Acts onnumber insight
Permission (capability)Number Insight: read
VersionSunset 2027-02-04
Webhook eventNone
Rate limitStandard limits apply

Numbers

List the numbers an account owns, search for available numbers, buy a number, cancel a number, and change a number's behaviour.5

Answers at rest.nexmo.com with Basic auth using the API key and secret. This endpoint is limited to 1 request per second.

Acts onnumber
Permission (capability)Numbers: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit1 request per second

Answers at rest.nexmo.com with Basic auth. The Numbers API is limited to 3 requests per second.

Acts onnumber
Permission (capability)Numbers: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit3 requests per second

Answers at rest.nexmo.com with Basic auth. Starts a recurring charge for the number.

Acts onnumber
Permission (capability)Numbers: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit3 requests per second

Answers at rest.nexmo.com with Basic auth. Releases the number, which cannot be guaranteed back.

Acts onnumber
Permission (capability)Numbers: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit3 requests per second

Answers at rest.nexmo.com with Basic auth.

Acts onnumber
Permission (capability)Numbers: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit3 requests per second

Account

Read the account balance, update account-level webhook settings, and list, create, or revoke the API secrets on an account.4

Answers at rest.nexmo.com with Basic auth using the API key and secret.

Acts onaccount
Permission (capability)Account: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Answers at rest.nexmo.com with Basic auth.

Acts onaccount
Permission (capability)Account: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Answers at api.nexmo.com with Basic auth. The secret value itself is shown only when a secret is created.

Acts onsecret
Permission (capability)Account: read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Answers at api.nexmo.com with Basic auth. A secret must be 8 to 25 characters with an uppercase letter, a lowercase letter, and a digit. The new secret authenticates calls on the account.

Acts onsecret
Permission (capability)Account: write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Vonage can notify an app or AI agent when something happens, like an inbound message arriving or a call changing state, instead of the app repeatedly asking. The events delivered depend on the application and the webhook URLs registered on it, since there is no central event feed.

EventWhat it signalsTriggered by
inbound messageFires when a message is received on a Vonage number or channel, carrying the channel, sender, recipient, timestamp, and content. Vonage POSTs it to the inbound URL set on the application.In-app only
message statusFires when a sent message changes state, such as submitted, delivered, read, rejected, or undeliverable, and includes any error detail and usage pricing. Vonage POSTs it to the status URL set on the application./v1/messages
call eventFires as a call moves through its lifecycle, such as started, ringing, answered, and completed, sent to the event URL on the Voice application or the create-call request./v1/calls
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Vonage limits how fast an app or AI agent can call, and the limit is set per API rather than across the whole platform. Each API publishes its own ceiling, like a few calls per second for voice and a higher rate for messaging.

Request rate

Vonage sets a rate limit per API, not one ceiling across the platform. The Messages API allows 75 requests per second per API key by default, raised case by case through an account manager, while the legacy SMS API defaults to 30 requests per second per key. Voice allows 3 outbound calls created per second, shared across all voice products, plus 15 requests per second for other voice calls like listing and modifying. The Numbers API allows 3 requests per second, with the list-owned-numbers endpoint held to 1 per second. Going over any limit returns HTTP 429, and channel or network providers may apply their own stricter throughput on top.

Pagination

List endpoints differ by API. Voice lists calls with page_size and record_index plus an order field, and Verify v2 lists templates with page and page_size. The legacy SMS, Number Insight, and Account APIs are mostly single-object lookups rather than paged lists, so pagination applies only where a list is returned.

Request size

Per-message size depends on the channel: a single SMS segment is 160 GSM-7 characters or 70 unicode characters, and longer messages are split into concatenated segments and billed per segment. Channels such as WhatsApp and MMS set their own media and length limits. An API secret is 8 to 25 characters.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
401UnauthorizedThe credentials are missing or invalid: a wrong API key or secret, a JWT that does not verify, or for Verify a code that does not match.Send valid credentials for that API, the key and secret or a JWT signed by the right application key. For Verify, treat 401 on a check as a wrong code.
402Out of creditThe account balance is too low to cover the request, returned in RFC 7807 form with type, title, detail, and instance fields.Top up the account balance, then resend the request.
422Unprocessable EntityThe request was understood but a field is invalid, such as a malformed number or an unsupported channel option. Newer APIs return the detail in RFC 7807 form.Read the title and detail in the problem response, correct the named field, and resend.
429Too Many RequestsThe per-API rate limit was exceeded, such as more than 3 calls per second on Voice or above the per-key throughput on Messages.Back off and retry with exponential backoff, and smooth the request rate to stay under that API's limit.
500Internal Server ErrorAn error on Vonage's side. It is uncommon.Retry with backoff, and contact Vonage support if it persists.
Versioning & freshness

Version history.

Vonage versions each API independently in its path, so the Messages and Voice APIs sit at v1, Verify has both an original release and a newer v2, and Number Insight and the legacy SMS API carry no version segment.

Version history

What changed, and when

Latest versionv1
v1Current version
Messages and Voice APIs at v1

The Messages and Voice APIs sit at path version v1 on api.nexmo.com. The Messages API unifies SMS, MMS, WhatsApp, Viber, RCS, and Messenger behind one send endpoint, and the Voice API controls live calls through Call Control Objects. Both are the current build path for new messaging and voice integrations.

What changed
  • Messages API v1 sends across SMS, MMS, WhatsApp, Viber, RCS, and Facebook Messenger through POST /v1/messages
  • Voice API v1 creates, lists, reads, and modifies calls under /v1/calls
  • Newer APIs report errors in RFC 7807 problem-detail form
Verify v2
Verify v2 supersedes the original Verify API

Verify v2 at /v2/verify adds multi-channel workflows, such as SMS then voice then WhatsApp, custom templates, and silent authentication, over the original Verify API. The original Verify API at /verify remains available for existing integrations.

What changed
  • Workflow-based verification across SMS, voice, WhatsApp, email, and silent auth
  • Custom templates and template fragments for verification messages
  • Accepts either a JWT or Basic auth
Number Insight sunset
Number Insight sunsetting 4 February 2027

Vonage will sunset the Number Insight API on 4 February 2027 and recommends migrating to the Identity Insights API, which consolidates number datasets such as formatting, carrier, SIM-swap, and subscriber match into a single request. A transition guide documents the differences.

What changed
  • Number Insight basic, standard, and advanced lookups remain available until the sunset date
  • Identity Insights API named as the successor
  • Transition guide published for migration

An integration pins to a specific API and its path version, and migrates when an API publishes a successor.

Vonage API reference ↗
Questions

Vonage API, answered.

Why does Vonage have so many different base addresses and versions?+
Vonage grew from several products, and each is its own REST API. Messages, Voice, and Verify answer at api.nexmo.com, while the older SMS, Number Insight, Numbers, and Account APIs answer at rest.nexmo.com. Versions are per API and live in the path, so Messages and Voice are at v1, Verify has an original release and a v2, and the rest carry no version segment. An integration picks the right host and path for each API it calls.
When do I authenticate with the API key and secret, and when with a JWT?+
It depends on the API. The key and secret, sent as HTTP Basic auth, work for the SMS, Number Insight, Numbers, and Account APIs, and for SMS and MMS on the Messages API. Voice and the WhatsApp, Viber, RCS, and Messenger channels of the Messages API need a JSON Web Token signed by an application's private key. Verify v2 accepts either. The key and secret reach the whole account, so a JWT scoped to one application is the tighter option where it is supported.
Does Vonage have per-endpoint permission scopes I can narrow?+
No. Vonage has no OAuth scopes on a key or token. An API key and secret can call anything on the account, and a JWT can do whatever its application's capabilities allow on that application's numbers. The boundary is the credential and, for JWT, the application it belongs to, not a per-endpoint permission. To limit what an agent can do, the access has to be governed outside Vonage, at the layer that issues and proxies the calls.
What are the rate limits, and are they the same for every API?+
No, the limit is set per API. The Messages API allows 75 requests per second per key by default, the legacy SMS API 30 per second, Voice 3 outbound calls per second plus 15 per second for other voice requests, and the Numbers API 3 per second with the list-owned endpoint at 1 per second. Going over returns HTTP 429. Channel and network providers can also impose their own stricter throughput on top of the API limit.
Should I use the Messages API or the legacy SMS API?+
The Messages API is the one to build on. It sends across SMS, MMS, WhatsApp, Viber, RCS, and Messenger through a single endpoint keyed by a channel field, reports errors in RFC 7807 form, and supports a higher default throughput. The SMS API is the original single-channel sender and remains available, but new integrations use Messages.
How does an agent receive inbound messages or call events?+
Through webhooks, not a central feed. Vonage POSTs an event to a URL registered on the application or number, such as an inbound message, a delivery status update, or a call answer or completion. The events delivered depend entirely on which webhook URLs are configured, so an inbound URL and a status URL have to be set per application to receive them.
Is the Number Insight API going away?+
Yes. Vonage is sunsetting the Number Insight API on 4 February 2027 and points integrations to the newer Identity Insights API, which returns several number datasets, like formatting, carrier, SIM-swap, and subscriber match, in one call. A transition guide covers the differences. Until then the basic, standard, and advanced lookups still work.
Related

More communication API guides for agents

What is Bollard AI?

Control what every AI agent can do in Vonage.

Bollard AI sits between a team's AI agents and Vonage. Grant each agent exactly the access it needs, read or write, action by action, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Vonage key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Vonage
Notify Agent
Send SMS ActionOffReadFull use
Place voice calls ActionOffReadFull use
Account balance ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in Vonage