Read the sending rules
The team's sending rules, as the console's Sending rules page shows them: every rule, how many are on, what they held back this month (month), today's…
https://app.usenotix.dev/api/v1/sending-rulesFull access and read only keys can call this. Sending access keys cannot. Key permissions lists the extra rules some calls have.
The team's sending rules, as the console's Sending rules page shows them: every rule, how many are on, what they held back this month (month), today's counts against the daily caps (today, UTC) and this month's held-back messages (held).
A team that never saved rules has every rule off.
The rules
| Rule | What it does |
|---|---|
quietHours | No marketing between from and to (24-hour HH:MM) in timezone. With action: "HOLD" a message is held and sent when quiet hours end, spread over 30 minutes; with "SKIP" it is not sent. appliesTo picks what it covers: MARKETING_EMAIL, MARKETING_SMS (does nothing yet: Notix sends no marketing SMS today) and TRANSACTIONAL. Transactional email can only be held, never skipped, and a window is at most 12 hours. With useContactTimezone, a contact's own timezone property (an IANA zone such as Africa/Nairobi) is used when it is valid. |
frequencyCap | At most max broadcast and automation emails to one contact in windowDays days. The rest are skipped, never sent later. Covers broadcasts and automations only, and is best effort. |
priorityLanes | Always on: codes, transactional and marketing run on separate queues. |
dailyCaps | Your own limits a day for email, sms and codes (null is no cap). When the email cap is reached, marketing email waits, spread a cap's worth a day (best effort, approximate when sending is heavy). An SMS or a code SMS past its cap is refused with 429. Days are UTC: they reset at 00:00 UTC. |
backupChannel | Saved for your workspace. Nothing is sent by email yet: an SMS sent through the API has no email address to fall back to. |
countryAllowList | SMS, one-time codes included, only to the listed countries (two-letter codes such as NG). Any other SMS, console tests included, is refused with 403, and a queued one is checked again before it is sent. |
One-time codes are never held back by quiet hours or the email caps; a code sent by SMS counts against the codes cap. An email a rule has held for more than 7 days in all fails. Transactional email is held by quiet hours only when appliesTo includes TRANSACTIONAL, and never counted by the caps.
Every message a rule holds, skips or refuses is recorded: the email's events say which rule and when it will go, and held in the answer lists this month's, one line per message, rule and day. For a key limited to one domain, held[].label is empty. Every change is recorded with who made it and the rules before and after, and team admins are emailed when quiet hours widen, skipping turns on or the allow list turns on.
Who can call it
Every key that reads: full access, read only and live AI keys, including keys limited to one domain. Send-only keys answer 403 SCOPE_DENIED.
Headers
Bearer followed by your API key.
curl -X GET "https://app.usenotix.dev/api/v1/sending-rules" \
-H "Authorization: Bearer $NOTIX_API_KEY"
{
"quietHours": {
"enabled": true,
"from": "21:00",
"to": "07:00",
"timezone": "Africa/Lagos",
"useContactTimezone": true,
"appliesTo": [
"MARKETING_EMAIL"
],
"action": "HOLD"
},
"frequencyCap": {
"enabled": true,
"max": 1,
"windowDays": 1
},
"priorityLanes": {
"enabled": true
},
"dailyCaps": {
"enabled": true,
"email": 1,
"sms": 1,
"codes": 1
},
"backupChannel": {
"enabled": true
},
"countryAllowList": {
"enabled": true,
"countries": [
"string"
]
},
"updatedAt": "string",
"rulesOn": 1,
"rulesTotal": 1,
"month": {
"heldBack": 1,
"quietHours": 1,
"frequencyCap": 1,
"dailyCap": 1,
"countryAllowList": 1
},
"today": {
"email": 1,
"sms": 1,
"codes": 1
},
"held": [
{
"firstAt": "string",
"label": "string",
"channel": "EMAIL",
"rule": "QUIET_HOURS",
"outcome": "HELD",
"count": 1,
"releaseAt": "string"
}
]
}