API reference/Copy and audio

Download a week's audio

read

All of the week's audio in one ZIP, named by ISCI.

GEThttps://affiliates.radioworkflow.com/api/v1/affiliations/{id}/weeks/{week}/audio.zip
Read: this changes nothing.

Every creative of the week whose audio is ready, in one ZIP archive, each file named {ISCI}.mp3. Load it straight into your automation system.

Only ready audio goes in: a creative that is still pending, or whose audio the network delivers another way, is left out. With nothing ready the answer is 404 not_found.

Over MCP the tool returns a link to this download instead of the audio itself, so no audio or signed link passes through an assistant.

Authentication

Send a station key as Authorization: Bearer rwaff_k_.... A key with the read scope. Keys and scopes

Path parameters

idstring1 to 64 charactersrequired
The affiliation id from GET /v1/affiliations: one station's relationship with one network.
weekdaterequired
Monday of the broadcast week, YYYY-MM-DD. Any other day answers 400.

Response

200application/zipA ZIP archive with one file per ready creative.

Response schema over MCP: get_week_audio

urlstringrequired
The portal's ZIP route for the week's ready audio.
readyCreativesintegerrequired
How many creatives have audio in the ZIP.

Errors

400bad_requestThe request is not valid: a path value, a query value or a body field is missing, malformed or out of range.
403forbiddenThe key is valid but cannot do this for this affiliation: the affiliation is not one of the key's, or the person who made the key lacks the role.
404not_foundNothing was found for the values in the path: no audio is ready for the week yet, the upload id is unknown, or the record does not exist.
502upstream_failedThe service behind the API answered in a way the portal could not use.
Possible on every endpoint
401invalid_principalThe key is missing, malformed, unknown, revoked or expired; all of these answer the same way.
429rate_limitedToo many requests: the key's bucket, a daily limit or the failed sign-in brake refused this one.
500server_errorSomething went wrong on our side. The answer never carries internal detail.
503unavailableThe service is not available right now: it could not be reached, or it is not set up yet.

Every code, its fix and when to retry

Rate limits

Failed sign-ins per address10 per minuteportal:auth
Burst per key60 per minuteportal:key
Calls per key600 per 10 minuteskey:{prefix}

The limits and the RateLimit headers

MCP

An assistant calls this as the tool get_week_audio, with the same input as one object. The MCP server
Request
curl -X GET 'https://affiliates.radioworkflow.com/api/v1/affiliations/srn-ksmt/weeks/2026-09-21/audio.zip' \
  -H "Authorization: Bearer $AFFILIATE_API_KEY" \
  --output audio.zip
Response200
A ZIP archive (binary), for example:
  SR_TRHD0921060.mp3
  SR_UPLN0907060.mp3
  SR_GGBK0901030.mp3
Over MCP: get_week_audio
{
  "url": "https://affiliates.radioworkflow.com/api/weeks/srn-ksmt/2026-09-21/audio.zip",
  "readyCreatives": 12
}

Try it

Demo data, no key, nothing saved