Acknowledge a version
writeTell the network the station has this version.
POST
https://affiliates.radioworkflow.com/api/v1/affiliations/{id}/weeks/{week}/versions/{version}/acknowledgeWrite: this tells the network the station has the version; repeating it changes nothing more.
Tells the network the station has the latest version of the week in its log. The network sees who acknowledged it and when.
Only the latest version can be acknowledged: an older one answers 409 stale_version with latest, the version to read and acknowledge instead. Acknowledging again changes nothing. The body is an empty JSON object.
Authentication
Send a station key as
Authorization: Bearer rwaff_k_.... A key with the acknowledge scope. Keys and scopesPath parameters
idstring1 to 64 charactersrequiredThe affiliation id from
GET /v1/affiliations: one station's relationship with one network.weekdaterequiredMonday of the broadcast week,
YYYY-MM-DD. Any other day answers 400.versionintegerat least 0requiredThe version to acknowledge: the latest one, as
get-week or get-changes shows it.Idempotency
Send a new
Idempotency-Key header with every request (8 to 48 letters, digits, dashes or underscores; a UUID is a good choice). To retry a request that timed out, send it again with the same key: if the first attempt saved, the repeat answers its first result instead of recording twice. A reused key records nothing new: here it answers its first result even when the body changed, and after a request to another endpoint it usually fails with 502 upstream_failed. Never reuse one for a new request. How it worksResponse
200
application/jsonThe acknowledgement as the network sees it.Response schema
acknowledgedobjectrequiredacknowledged.bystringrequiredacknowledged.atstringrequiredacknowledged.atTsintegerrequiredacknowledged.versionintegerrequiredErrors
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.
403read_onlyThe affiliation is read-only: the network paused or ended it, or the station outlet is inactive. Its history stays readable.
403insufficient_scopeThe key does not carry the scope this endpoint needs (`read`, `report` or `acknowledge`).
409stale_versionA newer version of the week exists than the one you sent: acknowledging the older one, or reporting dropped breaks by its break numbers after the show's breaks were renumbered, would be wrong.
413payload_too_largeThe request body is over the limit: 256 KB of JSON (512 KB when applying log matches), or 10 MB for an uploaded log.
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.
503unavailableThe service is not available right now: it could not be reached, or it is not set up yet.
Rate limits
Failed sign-ins per address10 per minute
portal:authBurst per key60 per minute
portal:keyCalls per key600 per 10 minutes
key:{prefix}Writes per key120 per minute
w:{prefix}MCP
An assistant calls this as the tool
acknowledge_version, with the same input as one object. The MCP server# A new Idempotency-Key for every new request. Reuse it only to retry this same request.
IDEMPOTENCY_KEY=$(uuidgen)
curl -X POST 'https://affiliates.radioworkflow.com/api/v1/affiliations/srn-ksmt/weeks/2026-09-21/versions/3/acknowledge' \
-H "Authorization: Bearer $AFFILIATE_API_KEY" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-d '{}'{}{
"acknowledged": {
"version": 3,
"by": "Automation key",
"at": "Thu, Sep 24, 10:31 AM",
"atTs": 1790263860
}
}