canonical: https://jentic.com/apis/nexmo.com/nexmo-media

# Nexmo Media API

Jentic publishes the only available OpenAPI specification for Nexmo Media API, keeping it validated and agent-ready. The Media API stores and retrieves media items - most often audio files used by Nexmo's Voice API for prompts and recordings. Four endpoints cover listing and searching items, retrieving an item's metadata, updating that metadata, and deleting an item by id. The API is the storage layer that other Nexmo products read from when they need to play, record, or attach a media file.

## For AI agents

List, retrieve metadata for, update, and delete media items (typically audio used by the Voice API) stored in Nexmo's media bucket. Four endpoints.

## Scope

Does not upload new media, transcribe audio, or play files into a call directly - use only to list, inspect, update metadata for, and delete media items already stored in the Nexmo bucket.

## Capabilities

- List and search media items via GET / with optional filters
- Retrieve a media item's metadata by id via GET /:id/info
- Update a media item's metadata (title, mime type, etc.) via PUT /:id/info
- Delete a media item from the bucket via DELETE /:id
- Reference stored media by id from the Nexmo Voice API for playback or recording

## Use cases

### Managing voice prompt audio files

Voice applications using Nexmo's NCCO talk and stream actions reference audio files stored in Media. Teams use GET / to list available prompts, GET /:id/info to inspect a specific file's metadata, and PUT /:id/info to rename prompts as their script evolves. Cleanup happens through DELETE /:id when prompts are retired.

Example prompt: GET / to list audio prompts, then PUT /:id/info on the matching id with the new title to rename a prompt.

### Cleaning up call recordings

Long-running Nexmo Voice deployments accumulate call recordings in Media. Operations teams periodically GET / with date filters to find old recordings and DELETE /:id to remove items past retention. The API itself does not enforce retention; the application drives the cleanup logic.

Example prompt: GET / filtered to items older than the retention window, iterate the result, and DELETE /:id for each id.

### Audit of media inventory by an AI agent

An AI agent answering 'how much media do I have stored on Nexmo?' can list items and retrieve each item's metadata through Jentic. Discovery is by intent; execution loops over the four endpoints without the agent constructing URL paths.

Example prompt: Search Jentic for 'list nexmo media items', load GET /, execute, then call GET /:id/info on each returned item to collect metadata.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/` | List and search media items |
| GET | `/:id/info` | Retrieve metadata for a media item |
| PUT | `/:id/info` | Update metadata for a media item |
| DELETE | `/:id` | Delete a media item |

## Key resources

- **Media item** — The stored audio or media file - list via GET /, manage by id via /:id and /:id/info

## Why Jentic

- **Setup:** Wiring the Nexmo Media API by hand means minting a JWT from your Application signing key for each call and pointing requests at the api.nexmo.com/v3/media host to reach items already in your media bucket. Through Jentic you install once, import the Media API from the API Directory, store the Application private key once, and your agent calls it.
- **Permission scoping:** The Media API puts the media item id in the URL path (/:id/info, /:id), so a rule can pin your agent to one media item: it can read that item's info and update its metadata. You choose the operations it may call, so deleting an item is not included unless you add it.
- **Credential handling:** Your Vonage Application private key is stored once, encrypted, by your own Jentic One instance and used to mint per-call JWTs at execution time. The key never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'update metadata on a Nexmo media item' or 'list stored media', and Jentic returns the matching Media API operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Nexmo Application API v2** — Manages the applications whose Voice flows reference these media items
- **Twilio API** — Twilio's Recordings and Media resources offer comparable storage for call audio
- **Plivo** — Plivo's Recordings API provides similar audio retrieval for voice deployments

## FAQ

### Why is there no official OpenAPI spec for Nexmo Media API?

Vonage (formerly Nexmo) does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Nexmo Media 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 Nexmo Media API use?

The OpenAPI spec does not declare a securityScheme on these endpoints, but in practice the Vonage Media service requires the same JWT bearer authentication used by other application-scoped APIs. Through Jentic the JWT is signed and injected per call, so the agent never handles the application private key.

### Can I upload new media items through this API?

No. The four endpoints in this spec cover listing, retrieving, updating, and deleting items. Uploads happen via the separate Vonage upload endpoint or are written by Voice itself when calls are recorded.

### What are the rate limits for the Nexmo Media API?

The OpenAPI spec does not declare rate limits. Vonage applies account-level throttles, and because Media is metadata-heavy rather than transactional, callers rarely hit limits in normal usage.

### How do I delete a stale call recording through Jentic?

Search Jentic for 'delete a nexmo media item', load DELETE /:id, and execute it with the id of the recording. To find candidates first, run GET / with a date filter and iterate the result.

### How do I update the title of a media file?

PUT /:id/info accepts an updated metadata body for the item. The id stays the same, so any Voice NCCO that references it continues to work after the rename.

### Can I limit what my agent is allowed to do with the Nexmo Media API?

Yes. Because you run Jentic One yourself, your own rules decide which Nexmo Media operations and credentials the agent may use. Since the Media API carries the item id in the URL path, you can pin the agent to a single media item and allow only read access to its metadata (GET /:id/info) while permitting updates (PUT /:id/info) but withholding deletion (DELETE /:id) unless you add it. The agent can call only the operations you have granted, and your stored Application key is used to sign each call without ever entering the agent's context.
