Product
Jentic OSThe workplace. An in-house AI platform for every employeeJentic OneSafe access. Agents reach your systems without holding keysJentic AIRThe foundation. Gets your existing platforms ready for AI
Pricing
Developers

GET STARTED

API DirectoryBrowse 10,000+ APIs Ready For AI Agent IntegrationDocumentationGuides and API reference

TOOLS

API ScoringCheck your AI Readiness using our scorecardArazzo UIVisualize Arazzo Workflows As Interactive DocumentationArazzo EditorBuild And Edit Multi-Step API Workflows Visually

COMMUNITY

GitHubOpen source projects and examplesOpen StandardsBuilt on open specs. Never locked in.
Resources
Company
About UsOur mission and teamCareersJoin our teamContactGet in touch
Try it now
Jentic OSJentic OneJentic AIR
Pricing
API DirectoryDocumentationAPI ScoringArazzo UIArazzo EditorGitHubOpen Standards
Resources
About UsCareersContact
Try it now
JenticJentic
Products
  • Jentic OS
  • Jentic One
  • Jentic AIR
For Developers
  • API Directory
  • Documentation
  • GitHub
Company
  • About Jentic
  • Careers
  • Contact Us
  • Trust Centre
ISO/IEC 27001:2022 certification badge issued by Prescient SecurityISO/IEC 27001:2022 certification badge issued by Prescient Security

Information Security Management System

Certified to ISO/IEC 27001:2022 by Prescient Security

Terms & Conditions•Privacy Policy•
© 2026 Jentic. All rights reserved.
Switch to light modeSwitch to dark mode
APIs / Communications / Nexmo / Voice API
Voice API logo

Nexmo Voice API

Browse all Nexmo APIs
Agent-ready OpenAPI document · curated by JenticCommunicationsVoice Telephonybearer9 EndpointsREST

Know of an official OpenAPI document? Contribute it →

For Agents

Place outbound voice calls, control in-progress calls with TTS, audio streaming, and DTMF, and retrieve historical call records by UUID.

Use for: I need to place an outbound call to a customer, Play a TTS announcement into an in-progress call, Retrieve the status of a specific Vonage call by UUID, List all completed calls from the last 24 hours

Not supported: Does not send SMS, WhatsApp, or run identity verification - use for outbound voice calling and in-call control only.

Jentic publishes the only available OpenAPI specification for Voice API, keeping it validated and agent-ready. The Vonage Voice API places outbound calls, controls in-progress calls, and surfaces historical call records through 9 endpoints. Calls are driven by a Nexmo Call Control Object that defines the connect, talk, stream, and input actions, and live calls can be muted, hung up, or sent DTMF tones, audio streams, and TTS prompts mid-call. The API is authenticated with JWT bearer tokens scoped to a Vonage application that holds the public key.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the Voice API to your agent

Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Voice API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.

Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.

1

Step 1: Jentic One Host machine

# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fnexmo.com%2Fvoice" | sh
2

Step 2: Agent machine

# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fnexmo.com%2Fvoice" | sh
jentic register       # connects your agent to your Jentic One instance

Jentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.

Capabilities

What an agent can do with Voice API.

Place outbound voice calls to a phone number, SIP endpoint, or WebSocket using a Nexmo Call Control Object

List historical calls with filters for status, direction, and date range for billing and audit

Modify an in-progress call to mute, unmute, hang up, or transfer to a new NCCO

Stream an audio file into an active call and stop the stream when complete

Play text-to-speech prompts into an active call in dozens of languages and voices

Send DTMF tones into a call programmatically for IVR navigation or accepting input from a remote system

Use Cases

Patterns agents use Voice API for, with concrete tasks.

★ Outbound Voice Notification

Place an outbound voice call that delivers a TTS message - appointment reminders, alert escalations, or callback offers. POST / accepts the to and from endpoints plus an NCCO that defines the talk action with the message and language. Status callbacks fire at ringing, answered, and completed, allowing retry logic when the call goes unanswered.

POST / with to=[{type:'phone',number:'+15551234567'}], from={type:'phone',number:'+447700900000'}, and an NCCO containing a talk action delivering the reminder, then GET /{uuid} to track the status

In-Call Audio and TTS Control

Drive a live call mid-flight by playing TTS, streaming audio, or injecting DTMF without rebuilding the call. PUT /{uuid}/talk plays a TTS prompt, PUT /{uuid}/stream starts an audio file, and PUT /{uuid}/dtmf sends touch-tone digits. The matching DELETE endpoints stop streaming or talking, freeing the call to receive the next instruction.

PUT /{uuid}/talk with text='Please hold' and language='en-US' to play a hold message, then DELETE /{uuid}/talk and PUT /{uuid}/stream to play music

Call Detail Record Lookup

Retrieve historical call records for billing reconciliation, support investigations, or analytics dashboards. GET / lists calls with filters for date_start, date_end, status, and direction, and GET /{uuid} returns the full record including duration, price, and direction for a specific call. Pair with the Reports API for bulk historical exports.

GET / with status=completed and date_start covering the last 24 hours to list completed calls, then GET /{uuid} for any call that needs deeper investigation

AI Agent Voice Operations

Through Jentic, an AI agent places and controls calls without holding the Vonage application's private key. The agent searches Jentic with the intent 'place an outbound voice call', loads the POST / schema, and executes with the to, from, and NCCO arguments. Mid-call talk, stream, and DTMF endpoints become subsequent Jentic calls, with JWT bearer tokens minted from your Jentic One instance.

Use Jentic search query 'place an outbound voice call' to load POST /, execute with to, from, and NCCO, then chain PUT /{uuid}/talk to play a TTS prompt

Key Endpoints

9 endpoints — jentic publishes the only available openapi specification for voice api, keeping it validated and agent-ready.

METHOD

PATH

DESCRIPTION

POST

/

Create an outbound call

GET

/

List historical calls

GET

/{uuid}

Get details of a specific call

PUT

/{uuid}

Modify an in-progress call

PUT

/{uuid}/talk

Play TTS into an active call

PUT

/{uuid}/stream

Stream audio into an active call

PUT

/{uuid}/dtmf

Send DTMF tones into an active call

DELETE

/{uuid}/stream

Stop streaming audio into a call

POST

/

Create an outbound call

GET

/

List historical calls

GET

/{uuid}

Get details of a specific call

PUT

/{uuid}

Modify an in-progress call

PUT

/{uuid}/talk

Play TTS into an active call

PUT

/{uuid}/stream

Stream audio into an active call

PUT

/{uuid}/dtmf

Send DTMF tones into an active call

DELETE

/{uuid}/stream

Stop streaming audio into a call

Why Jentic?

What agents get from Jentic-routed access to this vendor.

Setup

Setup

Wiring the Vonage Voice API by hand means signing a short-lived JWT from your application id and private key, adding it as a bearer token on every request to api.nexmo.com/v1/calls, and building NCCO payloads for call control yourself. Through Jentic you install once, import the Voice API from the API Directory, store the application id and private key once, and your agent calls it.

Permission scoping

Permission scoping

The Voice API puts the call id in the URL path (/{uuid}, /{uuid}/talk, /{uuid}/stream), so a rule can pin your agent to controlling one live call. You choose the operations it may call, so ending a stream or hanging up is not included unless you add it.

Credential management

Credential isolation

Your Vonage application id and private key are stored once, encrypted, by your own Jentic One instance, which mints the short-lived JWT and adds it as the bearer token at execution time. The private key never enters the agent's prompt, logs, or context.

Intent-based discovery

Intent-based discovery

Agents search Jentic by intent such as 'place an outbound voice call' and Jentic returns the POST / operation with its NCCO input schema so the agent supplies structured to, from, and ncco arguments without browsing the reference docs.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Complementary

Vonage Messages API

→

Sends SMS, WhatsApp, and other text-channel messages alongside voice contact attempts.

Use Voice when the contact path is a phone call; use Messages when the same recipient should also receive an SMS or WhatsApp.

Complementary

Vonage Reports API

→

Bulk historical export of call records for billing and analytics.

Use Voice's GET / for recent calls; use Reports API when exporting millions of historical records.

Alternative

Twilio Voice

→

Twilio's voice service offers comparable outbound calling, TTS, and DTMF control.

Choose Twilio Voice when the rest of the stack is already on Twilio; choose Vonage Voice for accounts standardising on NCCO-based call flows.

FAQs

Specific to using Voice API through Jentic.

Why is there no official OpenAPI spec for Voice API?

Vonage does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Voice API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

What authentication does the Vonage Voice API use?

Voice uses JWT bearer tokens. The application signs a short-lived JWT with the private key paired to the Vonage application's public key and sends it as Authorization: Bearer <jwt> on every call. Jentic stores the application ID and private key in your Jentic One instance and mints the JWT at execution time.

How do I place an outbound voice call?

POST / with a JSON body containing to, from, and an answer_url or ncco that defines the call flow. The response includes a uuid that identifies the call for subsequent GET /{uuid} status checks and PUT /{uuid}/talk or /stream control calls.

Can I play a TTS message into a live call?

Yes. PUT /{uuid}/talk with the text, language, and voice plays the TTS prompt into the connected call leg. DELETE /{uuid}/talk stops the playback early so the next instruction (a stream, transfer, or hangup) can take over.

How do I retrieve a list of recent Vonage calls?

GET / accepts date_start, date_end, status, and direction query parameters and returns paginated call records with duration, price, and direction. For exports beyond a few thousand calls use the Vonage Reports API which is purpose-built for bulk record retrieval.

How do I place a Vonage voice call through Jentic?

Run pip install jentic, then use the Jentic search query 'place an outbound voice call' to load POST /. Execute with to, from, and an NCCO containing a talk action - Jentic mints the JWT from the application credentials in the vault. Run it through Jentic One, the self-hosted execution layer.

Can I limit what my agent is allowed to do with the Vonage Voice API?

Yes. Because you run Jentic One yourself, your own rules decide which Voice operations and credentials the agent may use, so you can allow POST / to place a call while withholding PUT /{uuid}/talk, PUT /{uuid}/stream, or PUT /{uuid}/dtmf. Since the call id sits in the URL path, a rule can pin the agent to controlling a single live call rather than any call on the account. Ending a stream or hanging up a call is available only if you explicitly grant those operations.

GET STARTED

Start building with Voice API

Explore with Jentic One
View OpenAPI Document