Read a rule's forward log

One row per message and address: SENT with the emailId of the forward (read it with GET /v1/emails/{id}), SKIPPED or FAILED with the reason.

GEThttps://app.usenotix.dev/api/v1/forwarding-rules/{id}/log

Full access and read only keys can call this. Sending access keys cannot. Key permissions lists the extra rules some calls have.

One row per message and address: SENT with the emailId of the forward (read it with GET /v1/emails/{id}), SKIPPED or FAILED with the reason. The log never holds a message body. Pass nextCursor back as cursor for the next page.

ReasonMeaning
SPAM, VIRUSThe message failed the spam or virus check.
LOOP_HEADERThe message was already forwarded by a Notix rule.
AUTO_REPLYAn out-of-office reply, bounce or list message.
DUPLICATEThe same Message-ID was forwarded by this rule in the last 24 hours.
RULE_PAUSEDThe rule is paused.
NOT_VERIFIEDThe address has not confirmed yet.
OWN_RECEIVING_DOMAINThe address is on a domain you receive on, and the rule does not allow chaining.
DOMAIN_NOT_RECEIVINGThe rule is on your own receiving domain, which stopped receiving for your team before the message was forwarded.
RATE_LIMITEDStill over the limit after retries: 30 messages a minute for the rule, 60 forwards for the domain or 120 for the team.
RATE_COUNTER_UNAVAILABLENotix could not count forwards for about 15 minutes, so it did not send.
NO_SENDERThere is no verified sending domain to send the forward from.
ATTACHMENTS_TOO_LARGEForwarded, without its attachments: they were over what one email can carry.
ATTACHMENTS_NOT_SCANNEDForwarded, without its attachments: the virus check did not pass.
SUPPRESSEDThe address is on your suppression list.
SEND_REFUSED:<code>The send checks refused it, for example your plan's limit.
SEND_ERROR, INTERRUPTEDThe send failed after retries, or stopped part way.
WEBHOOK_NOT_SUBSCRIBEDThe webhook no longer takes email.received for this domain.

The log is kept 90 days.

Full access and read only keys can call it. A key limited to one domain sees only rules on receiving domains under its domain. Send-only and live AI keys cannot.

Path parameters

idstringrequired

Query parameters

limitinteger

At most 100, default 50.

Minimum 1. Maximum 100.

cursorstring

nextCursor from the previous page.

Headers

Authorizationstringrequired

Bearer followed by your API key.

Errors

400

A cursor from another rule.

403

`SCOPE_DENIED`: a send-only or live AI key.

404

No rule with this id for the calling team, or outside a pinned key's domain.

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

curl -X GET "https://app.usenotix.dev/api/v1/forwarding-rules/<id>/log" \
  -H "Authorization: Bearer $NOTIX_API_KEY"
Response200
{
  "data": [
    {
      "id": "cm1x8f3k20001qz7v5b9d2e4a",
      "inboundMessageId": "cm1x8f3k20001qz7v5b9d2e4a",
      "destination": "string",
      "status": "PENDING",
      "emailId": "cm1x8f3k20001qz7v5b9d2e4a",
      "reason": "string",
      "createdAt": "string"
    }
  ],
  "nextCursor": "string"
}
Open in ClaudeOpen in ChatGPT