Bulk-invite a member across companies

Invites the same email (with one role) to multiple companies at once, sharing
a single invitation token and sending a single email.

The invitation is partial: companies where the email cannot be invited are
skipped and the rest are processed. Each skipped company comes back in
skipped with a stable reason:

  • already_member: the email already belongs to a member of that company.
  • owner_invitation: the email has a pending owner invitation there and the
    caller is not an owner of that company, so it cannot be moved.
  • role_not_found: the company does not define the requested role.
  • already_invited: another invitation for that company was created at the
    same time.

A pending invitation for the same email in one of the selected companies is
not skipped: it is moved to the new token with the new role and returned in
reinvited. Pending invitations in companies that were not selected keep
their previous link.

Permissions are not skipped: the caller needs members_management in every
target company, and assigning the owner role requires the caller to be an
owner of each one; otherwise the whole request is rejected with 403.

At most 200 companies per request: larger lists are rejected with 422
(too_many_companies) and nothing is processed, so split them into batches of
up to 200.

Every 403, 412 and 422 carries a stable code (forbidden,
owner_only, parameter_missing, too_many_companies, invalid_companies,
nothing_to_invite); branch on it instead of on the English message.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required
string
required
company_ids
array of uuids
required
length between 1 and 200

Company UUIDs to invite the email into. At most 200 per request.

company_ids*
Headers
uuid
required

UUID of the company on whose behalf the request is made. Required for every Organization endpoint.
See The company-id header for details on how to obtain
a value for this header and the error responses to expect when it is missing or invalid.

Responses

401

Unauthorized

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json