Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Your API key, sent as Authorization: Bearer <key>. A key is nrk_live_ or nrk_test_, a 26-character key id, _ and a 43-character secret. Account, audit and usage data stay within the key's environment. Dedicated team scopes apply across the workspace.

assess creates and reads assessments, records outcomes and reports key usage. investigate reads accounts, assessment history and request diagnostics without export or enforcement access. The legacy history scope also permits account exports, submitted identifiers and enforcement reports. delete permits account and assessment deletion.

evidence or detailed adds detailed merged evidence and submitted identifiers where the operation permits them. Neither grants access to the underlying resource alone. exports permits exports with the underlying account or audit scope. audit reads audit events and usage reads usage. audit_manage manages audit streams and retention, and includes audit-read and export authority.

webhooks manages webhook endpoints. integrations manages hosted auth-provider integrations. management manages keys, settings, lists, reviews and policy evaluations in the key's environment. New keys cannot exceed the issuer's effective permissions.

settings reads configuration, previews policy and list changes, runs evaluations and changes retention. Publishing decision policy or changing lists requires settings and policy_publish together, or the legacy management scope.

groups creates and reads groups, adds people, starts and cancels screenings and records decisions on people, in the key's environment.

members reads the workspace directory. members_manage also administers non-owner members and invitations. These scopes require a live key issued by a current owner with access to both environments. They grant access across the workspace. management does not grant team access. API keys cannot change owners or accept invitations.

A missing, unknown, revoked or expired key answers 401. A valid key without a required scope answers 403.

Path Parameters

workspace_id
string
required

The workspace id. A workspace the acting user is not an active member of answers 404, as do another workspace than an API key's own, a malformed id and a test environment's id. The workspace id, which is also its live environment's workspace id; the test environment's is the same id with:test appended. A workspace created through the API is tnt_ and a 26-character ULID.

Pattern: ^[A-Za-z0-9][A-Za-z0-9_.-]{0,122}$

Body

application/json

POST /v1/workspaces/{workspace_id}/invites body. Creates an invite for role and returns its token once. email is where the console sends the token and is not checked against the user who accepts. With external_user_id set, only that user can accept.

role
enum<string>
required

A built-in capability set. Specialist roles are independent; effective access is returned by GET /v1/workspaces/{workspace_id}/capabilities.

Available options:
owner,
admin,
developer,
viewer,
investigator,
auditor,
billing
email
string

Where the console sends the invite. Informational: it is not matched against the accepting user.

Required string length: 3 - 254
Pattern: ^[!-?A-~]+@[!-?A-~]+$
external_user_id
string

The user's id at the identity provider the console signs people in with: 1 to 256 printable ASCII characters with no space, compared exactly.

Required string length: 1 - 256
Pattern: ^[!-~]{1,256}$
environments
enum<string>[]

Allowed data environments. Invites default to both. Omitted on member PATCH preserves the current grants; owners retain both.

Required array length: 1 - 2 elements
Available options:
live,
test
denied_actions
enum<string>[]

Independent removals from a built-in preset: sensitive evidence, exports, or active policy publication. Owners retain full authority. Omitted member updates preserve exclusions.

Maximum array length: 3
Available options:
evidence.read,
exports.read,
policy.publish

Response

The invite and its token, shown here once only.

A pending invite to a workspace. token is present only in the answer that created it and is never returned again; only its hash is stored. An invite can be accepted once, within 7 days of its creation.

id
string
required

Opaque, server-assigned invite id: inv_ and a 26-character ULID.

Pattern: ^inv_[0-7][0-9A-HJKMNP-TV-Z]{25}$
workspace_id
string
required

The workspace id, which is also its live environment's workspace id; the test environment's is the same id with:test appended. A workspace created through the API is tnt_ and a 26-character ULID.

Pattern: ^[A-Za-z0-9][A-Za-z0-9_.-]{0,122}$
role
enum<string>
required

A built-in capability set. Specialist roles are independent; effective access is returned by GET /v1/workspaces/{workspace_id}/capabilities.

Available options:
owner,
admin,
developer,
viewer,
investigator,
auditor,
billing
created_by
string
required

The stable member id that issued this invite, the authenticated live API key prefix for members_manage automation, or, for an invite NoResponse issued for the workspace, NoResponse's own id (adm_ or nrc_). Reissuing preserves the original creator; the audit event names the reissuing actor.

Pattern: ^(mem_|adm_|nrc_|nrk_live_)[0-7][0-9A-HJKMNP-TV-Z]{25}$
created_at
string<date-time>
required
expires_at
string<date-time>
required
email
string

Where the console sends the invite. Informational: it is not matched against the accepting user.

Required string length: 3 - 254
Pattern: ^[!-?A-~]+@[!-?A-~]+$
external_user_id
string

The user's id at the identity provider the console signs people in with: 1 to 256 printable ASCII characters with no space, compared exactly.

Required string length: 1 - 256
Pattern: ^[!-~]{1,256}$
token
string

The invite token: nrinv_, the invite id's ULID, _ and 43 unpadded base64url characters (32 random bytes). The new member's console sends it to POST /v1/invites/accept.

Pattern: ^nrinv_[0-7][0-9A-HJKMNP-TV-Z]{25}_[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$
environments
enum<string>[]

Allowed data environments. Invites default to both. Omitted on member PATCH preserves the current grants; owners retain both.

Required array length: 1 - 2 elements
Available options:
live,
test
denied_actions
enum<string>[]

Independent removals from a built-in preset: sensitive evidence, exports, or active policy publication. Owners retain full authority. Omitted member updates preserve exclusions.

Maximum array length: 3
Available options:
evidence.read,
exports.read,
policy.publish
reissued_at
string<date-time>

Last token reissue, not proof of email delivery.