Approve a broadcast with the emailed code

Approve a broadcast the key's approval policy held, with the 6-digit code emailed to the key's owner and the team's admins.

POSThttps://app.usenotix.dev/api/v1/broadcasts/{broadcastId}/approve

Needs a full access key. Sending access keys cannot call this. Key permissions lists the extra rules some calls have.

Approve a broadcast the key's approval policy held, with the 6-digit code emailed to the key's owner and the team's admins. Only a person can give the code. Five wrong codes lock the approval, the code works for 15 minutes, and code attempts are rate limited per key. Then schedule again with approvalId.

Approval

Every API key has an approval policy, set by a team admin. Keys created before policies existed use the default, APPROVE_OVER_N with N = 50. An admin can turn approval off for a key in the dashboard; that key then schedules without approval and reports its policy as null.

PolicyWhat a schedule by the key does
APPROVE_OVER_N (the default, N = 50)Up to N recipients sends. Above N it answers 409 APPROVAL_REQUIRED with a draft card in approval, and emails a 6-digit code to the key's owner and the team's admins. Show approval.card to the person, ask them for the code, send it to POST /v1/broadcasts/{broadcastId}/approve, then schedule again with approvalId.
AUTO_UNDER_NUp to N recipients sends. Above N it answers 403: send it from the dashboard.
DRAFT_ONLYEvery schedule answers 403. The key only saves drafts.

A person must approve: the agent never receives the code, and a schedule only uses an approval a person approved (by the code, or by Approve on the broadcast in the dashboard), presented by approvalId, at least 10 seconds after it was created. A key may send at most 20 approved broadcasts in 24 hours, and ask for at most 10 new approvals an hour. An approval is single use, expires after 24 hours and is bound to the broadcast, its content and the recipient count on the card. The send is capped at that count: contacts added afterwards are not reached. A changed broadcast or count answers 409 again with a new card. A create with sendNow or scheduledAt goes through the same check and keeps its draft when it answers 409.

Path parameters

broadcastIdstringrequired

Body parameters

approvalIdstringrequired

The approval.approvalId from the 409 APPROVAL_REQUIRED.

codestringrequired

The 6-digit code a person read from the approval email. Never guess it.

Headers

Authorizationstringrequired

Bearer followed by your API key.

Errors

400

The code is wrong (tries left in the message), expired, or the approval is no longer waiting.

403

KEY_PAUSED: the key is paused. A key that sends 10 wrong codes in 24 hours is paused automatically, and its owner and admins are emailed.

404

No such approval for this campaign and API key.

429

Too many codes tried with this API key; wait 10 minutes.

Every error has the same shape. See all error codes.

curl -X POST "https://app.usenotix.dev/api/v1/broadcasts/<broadcastId>/approve" \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "approvalId": "cm1x8f3k20001qz7v5b9d2e4a",
  "code": "string"
}'
Response200
{
  "approvalId": "cm1x8f3k20001qz7v5b9d2e4a",
  "status": "APPROVED",
  "approvedAt": "string"
}
Open in ClaudeOpen in ChatGPT