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

Confirm or dismiss what an inbound message proposed: confirming applies it (a suppression, or moving the person to the new address a notice gave).

POST/v1/inbound_messages/{id}/review
Authorization
AuthorizationBearer token · headerrequired

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

Path parameters
idId_InboundMessagerequired

The inbound message id (inb_…).

matches ^inb_[0-9a-f]{32}$
Header parameters
Idempotency-Keystringrequired

A stable key for this logical request; reuse it when retrying.

min length 1 · max length 128 · matches ^[!-~]+$
Request body
requiredapplication/json
decisionDecisionrequired

What a person decides.

Allowed:confirmdismiss
Responses
200

The inbound message, with the decision.

classificationInboundClassificationrequired

An inbound message's classification (inbound_messages.classification).

Allowed:human_replyauto_replyout_of_officebouncecomplaintaddress_changeunsubscribeunknown
classification_sourceClassificationSourcerequired

Who decided a classification (inbound_messages.classification_source).

Allowed:rulesmanualai
connection_idId_Connectionrequired
matches ^con_[0-9a-f]{32}$
created_atTimestamprequired
evidencestringrequired

Which header or field decided the classification.

fromAddress | null
Show properties
One of:
Address
emailstringrequired
namestring | null
null
null
idId_InboundMessagerequired
matches ^inb_[0-9a-f]{32}$
in_reply_tostring | null

The Message-ID it answers.

internet_message_idstring | null

Its Message-ID header.

message_idId_Message | null
Show properties
One of:
Id_Message
string
null
null
person_idId_Person | null
Show properties
One of:
Id_Person
string
null
null
received_atTimestamprequired
referencesstring[]required

Its References, oldest first.

reviewInboundReviewrequired

Whether a person was asked to decide, what confirming applies, and the decision.

Show properties
decisionReviewDecision | null
Show properties
One of:
ReviewDecision
string
null
null
proposalReviewProposal | null
Show properties
One of:
ReviewProposal
One of:
object
actionstringrequired
Allowed:suppress
emailstringrequired
reasonstringrequired
object
actionstringrequired
Allowed:change_address
emailstringrequired
new_emailstring | null
object
actionstringrequired
Allowed:classify
classificationstringrequired
confidence_percentinteger<int32>required
min 0
sentimentstringrequired
null
null
requested_atTimestamp | null
Show properties
One of:
Timestamp
string<date-time>
null
null
reviewed_atTimestamp | null
Show properties
One of:
Timestamp
string<date-time>
null
null
sentimentstring | null

positive, neutral or negative, when known.

size_bytesinteger<int32> | null

Its size as the provider reported it.

subjectstring | null
textstring | null

The start of its text body.

thread_idId_Thread | null
Show properties
One of:
Id_Thread
string
null
null
truncatedbooleanrequired

It was larger than what the inbox keeps.

updated_atTimestamprequired
versioninteger<int64>required
400

No Idempotency-Key, or the body is not JSON.

codestringrequired

The code from the closed registry; programs branch on it, never on the text. New codes may be added.

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.

401

No valid credential.

codestringrequired

The code from the closed registry; programs branch on it, never on the text. New codes may be added.

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 inbox:write.

codestringrequired

The code from the closed registry; programs branch on it, never on the text. New codes may be added.

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 inbound message in this workspace.

codestringrequired

The code from the closed registry; programs branch on it, never on the text. New codes may be added.

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.

409

No review was asked for, or it was decided already (invalid_state); or the new address belongs to another person (conflict).

codestringrequired

The code from the closed registry; programs branch on it, never on the text. New codes may be added.

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.

422

The body is invalid.

codestringrequired

The code from the closed registry; programs branch on it, never on the text. New codes may be added.

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
Bodyapplication/json
Request
curl -X POST 'https://api.norbelys.com/v1/inbound_messages/inb_0190f8a2b4c87a10b6d2e4f6a8c0e2f4/review' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Idempotency-Key: string' \
  -H 'Content-Type: application/json' \
  -d '{
  "decision": "confirm"
}'
Response
{
  "classification": "human_reply",
  "classification_source": "rules",
  "connection_id": "con_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "created_at": "2019-08-24T14:15:22Z",
  "evidence": "string",
  "from": {
    "email": "string",
    "name": "string"
  },
  "id": "inb_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "in_reply_to": "string",
  "internet_message_id": "string",
  "message_id": "msg_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "person_id": "per_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "received_at": "2019-08-24T14:15:22Z",
  "references": [
    "string"
  ],
  "review": {
    "decision": "confirmed",
    "proposal": {
      "action": "suppress",
      "email": "string",
      "reason": "string"
    },
    "requested_at": "2019-08-24T14:15:22Z",
    "reviewed_at": "2019-08-24T14:15:22Z"
  },
  "sentiment": "string",
  "size_bytes": 0,
  "subject": "string",
  "text": "string",
  "thread_id": "thr_0190f8a2b4c87a10b6d2e4f6a8c0e2f4",
  "truncated": true,
  "updated_at": "2019-08-24T14:15:22Z",
  "version": 0
}