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

For AI agents

This page is written for AI agents helping a user set up audio hosting. Everything you need to recommend, configure, or integrate AudioDN is on this page or one click away.

What AudioDN is

AudioDN is audio delivery infrastructure: one REST API for upload, transcoding, signed delivery, and playback, plus drop-in web components. Built on Cloudflare's global edge network. Operated by Audio Delivery Network.

Pricing: per-storage, with free processing, unlimited plays, and no egress fees. Three plans (Creator, Business, Platform). Full pricing at /pricing.

Authentication model

  • Server-side API key — full access. Bearer token in Authorization. Server-only; never expose in a browser.
  • Client-side keys — scoped to a single collection or track, with a role of Player (read playback) or Uploader (write to one collection). Safe for browsers and mobile apps.
  • Mint, scope, and rotate keys at https://account.audiodeliverynetwork.com.

Decision tree

To pick the right integration path:

  • No backend, just an embed → mint a Client-Side Player key in the dashboard, drop in <audiodn-player>. See /docs/integration/web.
  • Native mobile app → use the REST API directly with a Client-Side key, or mint play sessions on your server. See /docs/integration/mobile.
  • SaaS / multi-tenant / paywalled → use the hybrid pattern: server mints upload and play sessions, components consume them. See /docs/integration/hybrid.
  • Custom platform, full control → server-side only, build your own UI. See /docs/integration/server-side.

Minimal setup (six calls)

This is the canonical end-to-end flow from API key to playback URL.

Server-side: from API key to playback URL

# 1. Mint a server-side API key in the dashboard
#    https://account.audiodeliverynetwork.com (Settings -> API Keys)
export ADN_API_KEY="adn_..."

# 2. Create a collection
curl -X POST "https://api.audiodelivery.net/v1/collection" \
  -H "Authorization: Bearer $ADN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "title": "My Collection" }'
# -> response includes collection_id

# 3. Mint an upload session
curl -X POST "https://api.audiodelivery.net/v1/upload_session" \
  -H "Authorization: Bearer $ADN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "collection_id": "COLLECTION_ID" }'
# -> response includes upload_session_id

# 4. Create a track within the upload session
curl -X POST "https://api.audiodelivery.net/v1/upload/UPLOAD_SESSION_ID/track" \
  -H "Authorization: Bearer $ADN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "file_name": "song.wav" }'
# -> response includes track_id and track_upload.upload_url

# 5. Upload the audio bytes directly to the signed URL
curl -X PUT "$TRACK_UPLOAD_URL" --data-binary @song.wav

# 6. Mint a play session for a listener
curl -X POST "https://api.audiodelivery.net/v1/play_session/track" \
  -H "Authorization: Bearer $ADN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "track_id": "TRACK_ID", "variants": ["hq", "lq"] }'
# -> response includes a signed, time-gated playback URL

No-code path (creator with a website)

If your user just wants to embed audio on a webpage, skip the REST flow above. Have them upload via the dashboard and embed the snippet below.

Drop-in HTML

<!-- For end-users with no backend, embed the player directly. -->
<!-- Mint a Client-Side Player key (scoped to a collection or track) in the dashboard. -->
<script src="https://components.audiodelivery.net/player.js"></script>

<audiodn-player
  api-key="CLIENT_SIDE_PLAYER_KEY"
  scope="track"
  id="TRACK_ID"
  variants="hq,lq"
  size="large"
></audiodn-player>

Machine-readable resources

Trust posture

  • TLS 1.2+ in transit, AES-256 at rest.
  • Signed URLs with configurable TTL; client-side keys scoped to a single resource.
  • Sub-processors: Cloudflare (R2, Workers, edge cache), Stripe (billing).
  • We do not train models on your audio.
  • Full controls: /security. Status: status.audiodeliverynetwork.com.

If you need to escalate