Import people from a CSV file (the body, `Content-Type: text/csv`, at most 16 MiB, its first record the header; `group_id` as a query parameter) or from JSON (`people`, up to 1,000). The import runs as a job: poll the import, or listen for `import.completed`.
/v1/importsAuthorizationBearer token · headerrequiredAn API key (nb_live_…, nb_test_…), a workspace token (nbs_…) or a CLI token (nbc_…).
group_idstringWith a CSV body: the group every imported person joins (grp_…).
Idempotency-KeystringrequiredA stable key for this logical request; reuse it when retrying.
application/jsongroup_idstring | nullThe group every imported person joins.
peopleobject[]required1 to 1,000 people, each {email, given_name?, family_name?, company?, fields?}; each is
checked by the import, which reports the invalid ones.
The import, queued; Location names it.
completed_atTimestamp | nullShow propertiesHide properties
string<date-time>nullcountsCountsrequiredAn import's rows so far.
Show propertiesHide properties
importedinteger<int64>requiredRows that created a person or merged into one.
invalidinteger<int64>requiredRows that could not describe a person.
skippedinteger<int64>requiredRows whose address an earlier row of the file already imported.
totalinteger<int64>requiredRows read.
created_atTimestamprequirederrorsErrorsrequiredAn import's problems: a first page and the report.
Show propertiesHide properties
dataRowProblem[]requiredOne problem per invalid row, the first 100.
Show propertiesHide properties
RowProblemfieldstringrequiredThe column or attribute at fault (email, fields.industry, …).
problemstringrequiredrowinteger<int64>requiredThe row: in a CSV file, its position as a spreadsheet numbers it (the header is row 1);
in a JSON import, the person's position in people (from 1).
has_morebooleanrequiredTrue when more rows are invalid than data shows.
urlstring | nullA CSV of every problem of every invalid row (row,field,problem), once the import
completed; the link works for 15 minutes from this read.
formatstringrequiredcsv or json.
group_idstring | nullThe group every imported person joins.
idId_Importrequiredjob_idstring | nullThe job doing the work.
last_errorLastError | nullShow propertiesHide properties
atTimestamprequiredWhen the job's row last changed: the moment of the error for a job that ended, and at or after it while the job is still waiting or running (the row keeps no separate time for its error).
codestringrequiredA short machine-readable code (error, lease_expired, unknown_kind, cancelled, …).
detailstringrequiredA human-readable explanation.
nullstatusstringrequiredqueued, processing, completed or failed. New values may be added.
updated_atTimestamprequiredNo 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 people:write.
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 group does not exist (not_found).
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 file is larger than 16 MiB.
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 neither text/csv nor application/json.
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, or the file has no email column.
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.
Object storage is unavailable; retry with the same key.
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.