Import people from a CSV file or from JSON.
A CSV file is the body (Content-Type: text/csv, at most 16 MiB, its first record the header;
group_id as a query parameter); JSON names up to 1,000 people. 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_idId_GroupWith a CSV body: the group every imported person joins.
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>nullcountsImportCountsrequiredAn 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_atTimestamprequirederrorsImportErrorsrequiredAn 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.
formatImportFormatrequiredThe format of an import's file: what an import read, a CSV file or the people of a JSON body.
csvjsongroup_idstring | nullThe group every imported person joins.
idId_Importrequiredjob_idId_Job | nullShow propertiesHide properties
stringnulllast_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.
nullstatusImportStatusrequiredWhere an import is (imports.status): queued until its job starts, processing while it
reads rows, then completed (invalid rows are reported, not fatal) or failed.
queuedprocessingcompletedfailedupdated_atTimestamprequiredNo valid credential.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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).
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat 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.