Create a connection. A credential-based one (SMTP, a relay, the managed MTA) is created in `verifying`, or the workspace's archived connection of the same account comes back with its id, history and identities; a check (or the managed MTA's provisioning) proves it. A Google or Microsoft mailbox answers `202` with the consent URL; the callback creates it.
/v1/connectionsAuthorizationBearer token · headerrequiredAn API key (nb_live_…, nb_test_…), a workspace token (nbs_…) or a CLI token (nbc_…).
Idempotency-KeystringrequiredA stable key for this logical request; reuse it when retrying.
application/jsonaccount_emailstring | nullThe account (not for Google and Microsoft, whose address the provider names): an SMTP login, the From address of a paced SES connection or of the managed MTA, a name for a relay account.
daily_limitinteger<int32> | nullSubmissions a UTC day.
identitiesIdentityInput[] | nullThe From addresses, at most 50; by default the account's own address.
Show propertiesHide properties
IdentityInputemailstring<email>requiredThe From address.
enabledboolean | nullWhether campaigns may send from it (default true).
idstring | nullThe identity to update (sid_…); absent for a new one.
namestring | nullThe display name, 1 to 200 characters.
reply_tostring<email> | nullThe Reply-To address.
signature_htmlstring | nullThe HTML signature, at most 64 KiB.
signature_textstring | nullThe text signature, at most 64 KiB.
tagsstring[] | nullUp to 20 tags of 1 to 64 characters.
verifiedboolean | nullThe person attests the address may be sent as (default false); a Gmail mailbox's check replaces it with what Gmail says.
imapImapInput | nullShow propertiesHide properties
hoststringrequiredThe host name.
portinteger<int32>requiredThe port.
securityImapSecurityrequiredHow an IMAP session is secured.
tlsplainnullproviderProviderrequiredThe provider behind a connection (connections.provider).
smtpgooglemicrosoftsessendgridmailgunnorbelysquota_scope_idstring | nullThe quota scope of the account; required for SES.
receivingReceivingInput | nullShow propertiesHide properties
foldersstring[]requiredFolder names at the provider, at most 10; INBOX is the inbox.
nullreturn_tostring | nullGoogle and Microsoft: the dashboard path the browser returns to after the consent.
send_interval_minutesinteger<int32> | nullA paced sender's minutes between cold sends, 5 to 1,440, rounded up to whole 5-minute slots; 10 for a mailbox when absent; on SES it makes the connection a paced sender of one From address; refused for SendGrid, Mailgun and the managed MTA.
send_windowSendWindow | nullShow propertiesHide properties
daysinteger<int32>[]requiredThe days of the week, 1 (Monday) to 7 (Sunday), each once, in order.
endstringrequiredThe closing time, HH:MM, after the opening; 24:00 closes at midnight.
startstringrequiredThe opening time, HH:MM.
nullsmtpSmtpInput | nullShow propertiesHide properties
configuration_setstring | nullAmazon SES: the configuration set every message names.
hoststringrequiredThe host name.
passwordstringrequiredThe password, app password or relay key.
portinteger<int32>requiredThe port.
securitySecurityrequiredHow an SMTP session is secured.
tlsstarttlsplainusernamestring | nullThe login; an SMTP login's is its account (account_email).
nulltimezonestring | nullThe send window's IANA time zone (UTC by default).
warmup_stageinteger<int32> | nullThe warm-up stage to start at; absent when not warming.
webhookWebhookInput | nullShow propertiesHide properties
keystringrequiredMailgun: the HTTP webhook signing key. SendGrid: the verification key its webhook shows (base64). SES: the ARN of the SNS topic the configuration set posts to.
nullThe connection, verifying.
accountAccountrequiredThe account behind a connection.
Show propertiesHide properties
emailstringrequiredThe mailbox's address, an SMTP login as it is, the From address a paced SES connection paces, or a name the customer gave a relay account.
issuerstring | nullFor OAuth: the ID token's issuer.
subjectstring | nullFor OAuth: the provider's immutable subject, kept through address changes and archive.
authorizationAuthorization | nullShow propertiesHide properties
expires_atTimestamprequiredWhen the ceremony expires.
urlstringrequiredThe provider's consent page.
nullchecked_atTimestamp | nullShow propertiesHide properties
string<date-time>nullcreated_atTimestamprequiredcreated_bystring | nulldaily_limitinteger<int32>requiredSubmissions a UTC day.
idId_ConnectionrequiredidentitiesIdentityObject[]requiredThe From addresses, at most 50.
Show propertiesHide properties
IdentityObjectcreated_atTimestamprequiredemailstringrequiredThe From address.
enabledbooleanrequiredWhether campaigns may send from it.
idId_SenderIdentityrequirednamestring | nullThe display name.
reply_tostring | nullThe Reply-To address.
signature_htmlstring | nullThe signature appended to HTML bodies.
signature_textstring | nullThe signature appended to text bodies.
tagsstring[]requiredTags a campaign selects senders by.
updated_atTimestamprequiredverifiedbooleanrequiredWhether the address may be sent as: confirmed by the provider where it can say, else the person's word.
imapImapSettings | nullShow propertiesHide properties
hoststringrequiredThe host name.
portinteger<int32>requiredThe port.
securityImapSecurityrequiredHow an IMAP session is secured.
tlsplainnullpausedbooleanrequiredThe person's pause: sending stops, conversations wait.
paused_untilTimestamp | nullShow propertiesHide properties
string<date-time>nullproviderstringrequiredsmtp, google, microsoft, ses, sendgrid, mailgun or norbelys; new values
may be added.
quota_scope_idstring | nullreceivingReceivingObjectrequiredWhat a connection reads, as the API shows it.
Show propertiesHide properties
foldersFolderObject[]requiredThe folders, oldest first; a disabled one is no longer read. Every enabled folder is shown, and disabled ones while there is room.
Show propertiesHide properties
FolderObjectenabledbooleanrequiredWhether it is read.
failuresinteger<int32>requiredConsecutive failed reads.
folderstringrequiredThe folder's name at the provider (INBOX).
idId_ReceiveBindingrequiredpolled_atTimestamp | nullShow propertiesHide properties
Timestampnullstatus_detailstring | nullWhat the last failed read said.
send_interval_minutesinteger<int32> | nullA paced sender's minutes between cold sends, whole 5-minute slots; null when rate-paced.
send_windowSendWindow | nullShow propertiesHide properties
daysinteger<int32>[]requiredThe days of the week, 1 (Monday) to 7 (Sunday), each once, in order.
endstringrequiredThe closing time, HH:MM, after the opening; 24:00 closes at midnight.
startstringrequiredThe opening time, HH:MM.
nullsmtpSmtpSettings | nullShow propertiesHide properties
configuration_setstring | nullThe Amazon SES configuration set every message names, so SES publishes its events.
hoststringrequiredThe host name.
portinteger<int32>requiredThe port.
securitySecurityrequiredHow an SMTP session is secured.
tlsstarttlsplainusernamestringrequiredThe login.
nullstatusstringrequiredverifying, active, authorization_required, failed, disabled or archived;
new values may be added.
status_detailstring | nullThe health text: what went wrong and what to do.
timezonestringrequiredThe IANA time zone of the send window.
transportstringrequiredsmtp or api.
updated_atTimestamprequiredusageUsagerequiredThe daily budget's use today and yesterday (UTC days).
Show propertiesHide properties
todayUsageDayrequiredA day's use of the daily budget.
Show propertiesHide properties
reservedinteger<int32>requiredSubmissions claimed and not settled yet.
usedinteger<int32>requiredSubmissions the provider accepted (or may have).
yesterdayUsageDayrequiredA day's use of the daily budget.
Show propertiesHide properties
reservedinteger<int32>requiredSubmissions claimed and not settled yet.
usedinteger<int32>requiredSubmissions the provider accepted (or may have).
versioninteger<int64>requiredThe connection's version, also the response's ETag: updated_at in microseconds since
the Unix epoch. An update sent with it in If-Match applies only to this version, so a
replacement of identities or of the folders read never undoes a change made since it
was read. Health checks and the sender's pacing move it too.
warmup_stageinteger<int32> | nullThe warm-up stage; null when not warming.
webhookWebhookObject | nullShow propertiesHide properties
idId_ProviderWebhookrequiredkey_setbooleanrequiredWhether its verification material is set: SendGrid's verification key, Mailgun's signing key, the SNS topic for SES; callbacks are refused until it is.
urlstringrequiredThe URL to configure at the provider (an SES connection's quota scope names the one its account subscribes).
nullGoogle or Microsoft: the consent to open, with the ceremony cookie.
authorizationAuthorizationrequiredA consent the browser must give: open url, from the browser that received the ceremony
cookie with this answer.
Show propertiesHide properties
expires_atTimestamprequiredWhen the ceremony expires.
urlstringrequiredThe provider's consent page.
No 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 connections:manage.
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 quota scope in this workspace.
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 account is connected already (conflict), naming the live connection.
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 body is invalid.
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.