Review a broadcast before sending
The dashboard's pre-send review: who it reaches, the sender's domain, the subject, the deliverability check, the unsubscribe link, contacts missing a…
https://app.usenotix.dev/api/v1/broadcasts/{broadcastId}/reviewFull access and read only keys can call this. Sending access keys cannot. Key permissions lists the extra rules some calls have.
The dashboard's pre-send review: who it reaches, the sender's domain, the subject, the deliverability check, the unsubscribe link, contacts missing a variable the email uses, and the sends left on the plan, each ok, warn or blocked. With monthly units enforced on a paid plan, the plan check counts units instead (1 a recipient): blocked when they are used up and pay-as-you-go is off or the wallet is empty, warn when this send goes past them or past what the wallet covers. holds says whether Notix will hold the send for review, and whether this key's approval policy needs a person's approval for that many recipients (or refuses it). canSend is advice: scheduling runs every check again.
The team can review broadcasts 30 times a minute through the API. The counts run under a 10-second statement timeout.
Who can call it
Any key that reads broadcasts: full access, read only and live AI keys. A send-only key answers 403 SCOPE_DENIED. A key limited to one domain sees only broadcasts that send from its domain; any other answers 404.
Path parameters
Headers
Bearer followed by your API key.
Errors
No campaign with this id for the calling team (or, for a key limited to one domain, on its domain).
The team reviewed campaigns through the API 30 times in the last minute.
The call could not be counted just now. Try again shortly.
Every error has the same shape. See all error codes.
curl -X GET "https://app.usenotix.dev/api/v1/broadcasts/<broadcastId>/review" \
-H "Authorization: Bearer $NOTIX_API_KEY"
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
const { data, error } = await notix.broadcasts.review("cmp_123");
// data.canSend, data.recipients, data.checks, data.holds
{
"campaignId": "cm1x8f3k20001qz7v5b9d2e4a",
"status": "string",
"canSend": true,
"recipients": 1,
"checks": [
{
"key": "audience",
"tone": "ok",
"title": "string",
"detail": "string"
}
],
"holds": {
"notixReview": true,
"approval": "NOT_REQUIRED",
"approvalMessage": "string"
}
}