Skip to content
Norbelys
Esc
↑↓navigate↵open⌘Jpreview

Retrieve a delivery event.

GET/v1/delivery_events/{id}
Authorization
AuthorizationBearer token · headerrequired

An API key (nb_live_…, nb_test_…), a workspace token (nbs_…) or a CLI token (nbc_…).

Path parameters
idId_DeliveryEventrequired

The delivery event id (dev_…).

matches ^dev_[0-9a-f]{32}$
Responses
200

The delivery event.

actionDsnAction | null
Show properties
One of:
DsnAction
string
null
null
attempt_numberinteger<int32> | null

The attempt it comes from, when its source is an attempt.

categoryEvidenceCategoryrequired

Why an outcome happened, in a closed vocabulary (attempts.category, delivery_events.category).

Allowed:acceptedinvalid_recipientmailbox_fullno_routeinvalid_addresscontent_rejectedpolicythrottledunauthorizedforbiddenconnection_faileddeadlineunsupportedtransientrejecteduncertaindeliveredcomplaintunsubscribedaddress_changedexpiredsuppressedsender_archivedrender_failedworkspace_deleted
confidenceEvidenceConfidencerequired

How much a delivery event can be trusted (delivery_events.confidence).

Allowed:authenticatedcorroboratedinferredhuman_text
diagnosticstring | null
enhanced_statusstring | null
idId_DeliveryEventrequired
matches ^dev_[0-9a-f]{32}$
kindDeliveryEventKindrequired

What kind of observation a delivery event is (delivery_events.kind).

Allowed:accepteddeferreddeliveredbouncedrejectedcomplaintunsubscribedaddress_changedreported
message_idId_Message | null
Show properties
One of:
Id_Message
string
null
null
observed_atTimestamprequired

When the source observed it.

phaseSubmissionPhase | null
Show properties
One of:
SubmissionPhase
string
null
null
processed_atTimestamprequired

When Norbelys recorded it.

provider_codestring | null

An exact provider-specific rejection code found in diagnostic, when any; it does not change the event's kind, recipient effect, or retry decision.

received_atTimestamprequired

When Norbelys received it.

recipientstring | null

The recipient it concerns; null when the evidence names none.

recipient_refRecipientRefrequired

Why an event's recipient is known (delivery_events.recipient_ref).

Allowed:namedsingle_envelopeunknown
sourceEvidenceSourcerequired

Where a delivery event came from (delivery_events.source).

Allowed:smtpprovider_apiprovider_webhookdsnarfinbound_noticepreflightunsubscribemanualsent_folder
thread_idId_Thread | null
Show properties
One of:
Id_Thread
string
null
null
401

No valid credential.

codeProblemCoderequired

The closed registry of problem codes: programs branch on a problem's code, never on its text. A code may be added, never repurposed.

Allowed:invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeout
detailstringrequired

What went wrong, for a person; never an internal cause.

errorsFieldError[]

With validation_failed only: every invalid field.

Show properties
Array of FieldError
codestringrequired

What is wrong (required, range, length, format, invalid, …).

detailstringrequired

A safe, human-readable explanation.

pointerstringrequired

RFC 6901 pointer into the body, or ?name for a query parameter.

instancestringrequired

The request's path.

request_idstringrequired

The request's id, also in X-Request-Id: what support needs to find the request.

retry_afterinteger<int64> | null

With 429 and 503: the seconds to wait, as in Retry-After.

min 0
statusinteger<int32>required

The HTTP status.

min 0
titlestringrequired

Fixed per code.

typestringrequired

https://docs.norbelys.com/errors/<code>, a page that explains the code.

403

The credential lacks messages:read.

codeProblemCoderequired

The closed registry of problem codes: programs branch on a problem's code, never on its text. A code may be added, never repurposed.

Allowed:invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeout
detailstringrequired

What went wrong, for a person; never an internal cause.

errorsFieldError[]

With validation_failed only: every invalid field.

Show properties
Array of FieldError
codestringrequired

What is wrong (required, range, length, format, invalid, …).

detailstringrequired

A safe, human-readable explanation.

pointerstringrequired

RFC 6901 pointer into the body, or ?name for a query parameter.

instancestringrequired

The request's path.

request_idstringrequired

The request's id, also in X-Request-Id: what support needs to find the request.

retry_afterinteger<int64> | null

With 429 and 503: the seconds to wait, as in Retry-After.

min 0
statusinteger<int32>required

The HTTP status.

min 0
titlestringrequired

Fixed per code.

typestringrequired

https://docs.norbelys.com/errors/<code>, a page that explains the code.

404

No such delivery event in this workspace (not_found), or its period was archived (archived): POST /v1/exports reads it.

codeProblemCoderequired

The closed registry of problem codes: programs branch on a problem's code, never on its text. A code may be added, never repurposed.

Allowed:invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeout
detailstringrequired

What went wrong, for a person; never an internal cause.

errorsFieldError[]

With validation_failed only: every invalid field.

Show properties
Array of FieldError
codestringrequired

What is wrong (required, range, length, format, invalid, …).

detailstringrequired

A safe, human-readable explanation.

pointerstringrequired

RFC 6901 pointer into the body, or ?name for a query parameter.

instancestringrequired

The request's path.

request_idstringrequired

The request's id, also in X-Request-Id: what support needs to find the request.

retry_afterinteger<int64> | null

With 429 and 503: the seconds to wait, as in Retry-After.

min 0
statusinteger<int32>required

The HTTP status.

min 0
titlestringrequired

Fixed per code.

typestringrequired

https://docs.norbelys.com/errors/<code>, a page that explains the code.

Try it
Server
Authorization
Parameters
Request
curl -X GET 'https://api.norbelys.com/v1/delivery_events/dev_0190f8a2b4c87a10b6d2e4f6a8c0e2f4' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
{
  "action": "failed",
  "attempt_number": 0,
  "category": "accepted",
  "confidence": "authenticated",
  "diagnostic": "string",
  "enhanced_status": "string",
  "id": "dev_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "kind": "accepted",
  "message_id": "msg_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "observed_at": "2019-08-24T14:15:22Z",
  "phase": "connect",
  "processed_at": "2019-08-24T14:15:22Z",
  "provider_code": "string",
  "received_at": "2019-08-24T14:15:22Z",
  "recipient": "string",
  "recipient_ref": "named",
  "source": "smtp",
  "thread_id": "thr_0190f8a2b4c87a10b6d2e4f6a8c0e2f4"
}