Notix
API reference

Deliverability.

Check a message for problems before you send it. Every request needs an API key in the Authorization header; the reference overview covers keys, errors and rate limits.

Check a message before sending

POST/v1/deliverability/checkSending or full access key

Check a message before you send it and get back a report with a verdict, a score and the findings. A BLOCK verdict describes a message the send paths would refuse; the check itself answers 200 whenever the message could be rendered.

Request body (JSON)
FieldTypeAbout
fromrequiredstring

The address the message would be sent from. 'Name <address>' is allowed. An address on a domain the team has not verified is a block finding.

At least 3 characters.

subjectrequiredstring

The subject line as a recipient would see it.

htmlstring

The HTML body. Provide this or templateId, not both.

textstring

The plain text alternative. Optional, and only meaningful alongside html.

templateIdstring

A saved template to render and check. Provide this or html, not both.

variablesmap of string

Values for the template's variables: at most 200, each at most 10000 characters. Ignored when html is provided.

marketingboolean

Whether this is marketing content. Marketing content without an unsubscribe link is a block finding. Defaults to false.

terminal
curl -X POST "https://app.usenotix.dev/api/v1/deliverability/check" \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "news@acme.com",
  "subject": "Your September update"
}'

Responses

200The report. A BLOCK verdict describes a message the send paths would refuse; this endpoint itself always answers 200 when the message could be rendered
200 response fields
FieldTypeAbout
verdictrequiredstring

BLOCK when any block finding is present, else WARN when any warn finding is present, else PASS.

One of PASS, WARN, BLOCK.

scorerequirednumber

0 to 100. Higher is better.

findingsrequiredobject[]

Ordered block first, then warn, then info.

findings[].idrequiredstring

The stable id of the check that produced this finding.

findings[].severityrequiredstring

A block finding refuses the send, a warn advises, an info observes.

One of block, warn, info.

findings[].titlerequiredstring
findings[].detailrequiredstring
findings[].fixrequiredstring
spamrequiredobject
spam.availablerequiredboolean

False when the spam filter could not be reached. A filter outage never blocks a send.

spam.scorenumber

The spam filter's score. Higher is worse.

spam.symbolsobject[]

The rules that fired, when the filter answered.

spam.symbols[].namerequiredstring
spam.symbols[].scorerequirednumber
spam.symbols[].descriptionrequiredstring
checkedAtrequiredstring (date-time)

When the report was built.

budgetExceededrequiredstring[]

Ids of the checks that did not finish inside the time budget. These neither block nor warn.

400Invalid input, for example neither or both of html and templateId, a missing from, or an empty subject
404No template with this id for the calling team
429The team's API rate limit was exceeded