Retrieve a message, with its latest attempts, its first delivery events and its holds.
/v1/messages/{id}AuthorizationBearer token · headerrequiredAn API key (nb_live_…, nb_test_…), a workspace token (nbs_…) or a CLI token (nbc_…).
idId_MessagerequiredThe message id (msg_…).
The message.
attemptsAttemptsrequiredA message's latest attempts.
Show propertiesHide properties
dataAttemptObject[]requiredAt most 20, newest first.
Show propertiesHide properties
AttemptObjectcategorystring | nullclaimed_atTimestamprequiredconnection_idId_Connectionrequireddiagnosticstring | nullThe provider's words, bounded and redacted.
enhanced_statusstring | nullfinished_atTimestamp | nullShow propertiesHide properties
TimestampnullidId_Attemptrequirednumberinteger<int32>required1 for the message's first attempt.
outcomestring | nullaccepted, transient, permanent, uncertain, released, suppressed or skipped;
null while the attempt runs. New values may be added.
phasestring | nullWhere it ended: connect, auth, mail_from, rcpt_to, data or api. New values may
be added.
provider_message_idstring | nullThe provider's id of the accepted message, when it returns one.
recipient_countinteger<int32>requiredsmtp_codeinteger<int32> | nullstarted_atTimestamp | nullShow propertiesHide properties
Timestampnullhas_morebooleanrequiredMore attempts exist than data shows; read them through an export.
attempts_countinteger<int64>requiredEvery attempt it had.
bccstring[]requiredcampaign_idId_Campaign | nullShow propertiesHide properties
stringnullccstring[]requiredconnection_idId_Connectionrequiredcreated_atTimestamprequiredenrollment_idId_Enrollment | nullShow propertiesHide properties
stringnulleventsEventsrequiredA message's first delivery events.
Show propertiesHide properties
dataDeliveryEventObject[]requiredAt most 20, in the order they were observed.
Show propertiesHide properties
DeliveryEventObjectactionstring | nullThe RFC 3464 action, for a delivery status notification.
attempt_numberinteger<int32> | nullThe attempt it comes from, when its source is an attempt.
categorystringrequiredconfidencestringrequiredauthenticated, corroborated, inferred or human_text. New values may be added.
diagnosticstring | nullenhanced_statusstring | nullidId_DeliveryEventrequiredkindstringrequiredaccepted, deferred, delivered, bounced, rejected, complaint, unsubscribed,
address_changed or reported. New values may be added.
message_idId_Message | nullShow propertiesHide properties
stringnullobserved_atTimestamprequiredWhen the source observed it.
phasestring | nullprocessed_atTimestamprequiredWhen Norbelys recorded it.
received_atTimestamprequiredWhen Norbelys received it.
recipientstring | nullThe recipient it concerns; null when the evidence names none.
recipient_refstringrequiredWhy the recipient is known: named, single_envelope or unknown. New values may be
added.
sourcestringrequiredsmtp, provider_api, provider_webhook, dsn, arf, inbound_notice, preflight,
unsubscribe, manual or sent_folder. New values may be added.
thread_idId_Thread | nullShow propertiesHide properties
Id_Threadnullhas_morebooleanrequiredMore events exist; url lists them all.
urlstringrequiredThe delivery event list of this message.
expires_atTimestamp | nullShow propertiesHide properties
string<date-time>nullfromAddressrequiredAn address and its display name.
Show propertiesHide properties
emailstringrequirednamestring | nullholdsHoldObject[]requiredOne per held recipient: at most the 150 addresses of the envelope.
Show propertiesHide properties
HoldObjectemailstringrequiredobserved_atTimestamprequiredreasonstringrequiredmailbox_full, greylisted, no_route or invalid_recipient (a reported invalid address
waiting for a person's review). New values may be added.
resolutionstring | nulldelivered, expired, suppressed or manual. New values may be added.
resolved_atTimestamp | nullShow propertiesHide properties
string<date-time>nullreview_afterTimestamprequiredWhen the hold is checked again.
idId_Messagerequiredin_reply_tostring | nullThe Message-ID it answers.
internet_message_idstringrequiredThe Message-ID header.
kindstringrequiredcampaign, direct, reply or transactional. New values may be added.
person_idId_Person | nullShow propertiesHide properties
stringnullreply_tostring | nullsend_atTimestamprequiredWhen it is due.
sender_identity_idId_SenderIdentityrequiredsent_atTimestamp | nullShow propertiesHide properties
string<date-time>nullsnippets_fallbackstring | nullFor a campaign step message whose step asks for personalisation snippets that were not
written: why (deadline, over_budget, provider, refused, off, …); its template's
defaults were used instead. null otherwise. New values may be added.
statestringrequiredqueued, claimed, in_flight, sent, failed, cancelled, uncertain or
suppressed. New values may be added.
status_detailstring | nullWhy it is in its state, when that needs words.
step_idId_Step | nullShow propertiesHide properties
stringnullsubjectstringrequiredThe subject as sent.
thread_idId_Thread | nullShow propertiesHide properties
stringnulltostring[]requiredtrackingTrackingrequiredWhat a message tracks, frozen when it was created.
Show propertiesHide properties
clicksbooleanrequiredIts links lead through click links.
hostnamestring | nullThe campaign's own tracking host, when it has one; the platform's otherwise.
opensbooleanrequiredAn open pixel is added to its HTML.
updated_atTimestamprequiredvariant_idId_Variant | nullShow propertiesHide properties
stringnullNo valid credential.
codestringrequiredThe code from the closed registry; programs branch on it, never on the text. New codes may be added.
detailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.
The credential lacks messages:read.
codestringrequiredThe code from the closed registry; programs branch on it, never on the text. New codes may be added.
detailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.
No such message in this workspace (not_found), or its period was archived (archived): POST /v1/exports reads it.
codestringrequiredThe code from the closed registry; programs branch on it, never on the text. New codes may be added.
detailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.