Authenticate using HTTP Basic auth with your Mux token ID as username and token secret as password
POST to /video/v1/assets with a JSON body containing input[0].url pointing to a publicly accessible source video URL
Poll GET /video/v1/assets/{ASSET_ID} or listen for the video.asset.ready webhook event until status transitions from 'preparing' to 'ready'
Retrieve the playback_ids array from the asset response; use the id field to construct the HLS URL: https://stream.mux.com/{PLAYBACK_ID}.m3u8
For signed playback, create a signing key via /video/v1/signing-keys, sign a JWT with the playback ID as the sub claim and an expiry, and append ?token=YOUR_JWT to the stream URL
Known gotchas
Mux performs per-title encoding automatically; do not attempt to specify a fixed ABR ladder — the API ignores custom rendition parameters and optimizes the ladder internally
The source URL must be reachable from Mux's ingest infrastructure; pre-signed S3 URLs are supported but must not expire before Mux completes the download
Playback IDs have a policy of 'public' or 'signed'; once created, the policy cannot be changed — create a new playback ID with the correct policy if you made the wrong choice
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp