Launch Sale: Creator and Business plans are discounted for a limited time. View pricing

API Overview

Everything you need to know before making your first API request.

Base URL

All API endpoints are prefixed with /v1/. Use the following base URL for all requests:

https://api.audiodelivery.net/v1/

Authentication

Most API requests require authentication via a Bearer token in the Authorization header. If you’re using ADN web components with a Client-Side API key, the components handle authentication automatically — this section applies to direct API requests.

Authorization: Bearer your_api_key_here

A few upload and playback endpoints are authorized by a session ID in the URL instead of a Bearer token, and take no Authorization header: GET /v1/upload_session/:upload_session_id, POST /v1/upload/:upload_session_id/track, and GET /v1/play/:play_session_id/:play_track_id. Each is noted on its endpoint reference.

API Key Types

Key typeUse caseSecurity
API AccessServer-to-server requests — create sessions, manage tracks, configure variantsKeep secret. Never expose in client-side code.
Client-SideWeb components and mobile apps — play audio, upload filesSafe to include in front-end code. Scoped to playback and upload operations only.
Inline SharePublic share links — redirect directly to a single track variant with no Authorization headerThe key is in the URL. Anyone with the link can stream until expiry or deletion. Created in the dashboard. See Inline Share.
URL SigningSign delivery URLs on your own server for public tracks — no play session or Authorization headerThe signing secret stays server-side. Created in the dashboard. See Signing Keys.

Creating API Keys

Create your first API Access key from the Settings page in the AudioDN dashboard. With that key you can then generate Client-Side (player and uploader) keys server-to-server via POST /v1/api_key. Inline Share and URL Signing keys are not managed through the API — create them from Settings → API Keys in the dashboard.

Request Format

All request and response bodies use JSON. Include the Authorization header on every authenticated request (see the exceptions above), and set Content-Type: application/json when sending a request body. Here’s an example creating a play session across every platform:

Example Request

curl -X POST "https://api.audiodelivery.net/v1/play_session/collection" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "collection_id": "COLLECTION_ID",
  "variants": [
    "hq",
    "lq"
  ]
}'

Responses

Successful responses include “ok”: true along with the requested data. Errors return “ok”: false with a message and a unique request ID for debugging:

Success

{
"ok": true,
...
}

Error

{
"ok": false,
"message": "Description of what went wrong",
"api_request_id": "uuid"
}

HTTP Status Codes

CodeMeaning
200Success
400Bad request — check the request body or parameters
401Unauthorized — missing or invalid API key
403Forbidden — the API key doesn’t have permission for this operation
404Not found — the resource doesn’t exist or isn’t accessible
410Gone — the session has expired
500Internal server error — retry or contact support

Pagination

List endpoints return all matching records. For large collections, filter by collection_id or creator_id to scope results.

IDs & Formats

All resource IDs are UUIDs (e.g. 04ea3a34-a0f7-45e8-a711-9c7274490e2e). Timestamps are returned as ISO 8601 strings in UTC.