API reference/Affidavits

Sign a week

people only

Sign the week. A person signed in, never a key.

POSThttps://affiliates.radioworkflow.com/api/v1/affiliations/{id}/weeks/{week}/sign
People only: no key can call this. A person signs the week in the portal.

Signing a week is an attestation that the affidavits are true, so a person does it, signed in to the portal. No key can sign: this route always answers 403 key_cannot_sign and changes nothing.

Over MCP, a person with the sign role gets signUrl, a link to the portal's signing panel for that week, and signs there. A week can be signed once its broadcast week has ended and nothing is pending.

Authentication

No key can call it: people only. 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

403application/jsonAlways key_cannot_sign: people sign in the portal.

Response schema over MCP: sign_week

signUrlstringrequired
The portal page where a person with the sign role signs the week.

Errors

403key_cannot_signA key asked to sign a week. Signing is an attestation, so only a person signed in to the portal can do it.

Every code, its fix and when to retry

Rate limits

No key gets further than the refusal, so no limit counts it.

The limits and the RateLimit headers

MCP

An assistant calls this as the tool sign_week, with the same input as one object. The MCP server
Request
curl -X POST 'https://affiliates.radioworkflow.com/api/v1/affiliations/srn-ksmt/weeks/2026-09-21/sign' \
  -H "Authorization: Bearer $AFFILIATE_API_KEY"
Response403
{
  "error": {
    "code": "key_cannot_sign",
    "message": "A key cannot sign a week. A person signs it in the portal."
  }
}
Over MCP: sign_week
{
  "signUrl": "https://affiliates.radioworkflow.com/affidavits?week=2026-09-21&affiliation=srn-ksmt"
}

Try it

Demo data, no key, nothing saved