API reference/Copy and audio

List a week's creatives

read

Creatives on the week, with short-lived audio links.

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

The creatives the week's units and show spots use: advertiser, title, ISCI, length, flight dates, the network cart number and how many times it runs this week.

mediaStatus says where the audio is. ready audio comes with an audioUrl that works for 15 minutes (audioUrlExpiresAt, Unix seconds); ask again for a fresh one. pending audio has not arrived yet. external means the network delivers the audio another way, and no link is given.

Send with_urls=0 to leave the links out, for example when you only need the list.

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.

Query parameters

with_urlsintegeroptionaldefault 1
1 includes the short-lived audio links; 0 leaves them out.
01

Response

200application/jsonThe week's creatives.

Response schema

creativesCreative[]required
Creative15 fields
idstringrequired
advertiserstringrequired
titlestringrequired
iscistringrequired
lengthintegerrequired
flightStartdaterequired
flightEnddaterequired
audioReadybooleanrequired
replacesstringoptional
instructionsstringoptional
cartstringrequired
timesThisWeekintegerrequired
mediaStatus"ready" | "pending" | "external"required
audioUrlstringoptional
audioUrlExpiresAtintegeroptional

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.
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 list_creatives, 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/creatives' \
  -H "Authorization: Bearer $AFFILIATE_API_KEY"
Response200
{
  "creatives": [
    {
      "id": "trhd",
      "advertiser": "Trailhead Outfitters",
      "title": "Hunting Season Kickoff",
      "isci": "SR_TRHD0921060",
      "length": 60,
      "flightStart": "2026-09-21",
      "flightEnd": "2026-10-25",
      "audioReady": true,
      "cart": "K90388",
      "timesThisWeek": 5,
      "mediaStatus": "ready",
      "audioUrl": "https://media.example/SR_TRHD0921060.mp3?signature=0f3a9c",
      "audioUrlExpiresAt": 1790264700
    }
  ]
}

Try it

Demo data, no key, nothing saved