Docs
Invite Crew
POST /crew/invite
POST
/crew/inviteRequired Tokens
| Field | Type | Required | Description |
|---|---|---|---|
| Bearer | Authorization: Bearer <api-key> | Optional | Your API key. Pass it as the Bearer token on every request. |
| Organization token | x-Organization-Token | Optional | Run **Authorize Organization** in the Authorization folder. |
The single "grant access" entry point for the organization. For each member in the request the server resolves the email to an existing BackOps account:
- Existing account → permissions are applied immediately, a
UserLicenseis created, and anorganization.member.addednotification is emitted. No invite email is sent. - No account → an organization invitation is created carrying the
permissionspayload, a license seat is reserved for the email, and a signup invite email is sent.
The org scope is derived from the token. The members array supports a single invite or a bulk batch
(each row carries its own license + permission set). Input is validated up front, so an invalid row
(unknown permission, missing license, insufficient seats) rejects the whole request.
Requires Organization admin (*) permission.
Body
| Field | Type | Required | Description |
|---|---|---|---|
| members[].connectedUserEmail | string | Required | The account email being granted access (the match key). |
| members[].crewId | Guid | Optional | Attach the grant to an existing crew row; omit to create a new one. |
| members[].firstName / lastName / email / phoneNumber | string | Optional | Contact fields used when creating a new crew row. |
| members[].licenseId | Guid | Required | The org license to assign (existing user) or reserve (new email). |
| members[].permissions | string[] | Required | `Organization.*` permission strings to grant; each validated against the catalog. |
Responses
200 OK—{ results: [{ email, outcome, crewId }] }whereoutcomeisgrantedorinvited.400 Bad Request— unknown permission, missing license, blacklisted email, or no seats available (this API has no 409 mapping; over-capacity surfaces as 400).403 Forbidden— caller is not an organization admin.404 Not Found— a referenced license or crew row does not exist.