Create an invitation to join the organization
POST
/v1/organizations/invites
const url = 'https://api.adversarial.com/api/v1/organizations/invites';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"email":"example","roles":["example"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.adversarial.com/api/v1/organizations/invites \ --header 'Content-Type: application/json' \ --data '{ "email": "example", "roles": [ "example" ] }'Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
email
required
string
roles
required
Array<string>
Examplegenerated
{ "email": "example", "roles": [ "example" ]}Responses
Section titled “Responses”User successfully invited
Media typeapplication/json
object
email
required
string
expiration
required
string format: date-time
id
required
string format: uuid
invited_by
required
A User as returned by the API.
Profile images are not embedded — clients fetch them from
GET /api/v1/{icon} when icon is Some.
object
email
required
string
first_name
required
string
icon
Relative path to the user’s avatar endpoint, e.g.
"users/{id}/avatar?v={hash}". None when the user has no avatar.
string | null
id
required
string format: uuid
last_name
required
string
roles
required
Array<string>
Examplegenerated
{ "email": "example", "expiration": "2026-04-15T12:00:00Z", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "invited_by": { "email": "example", "first_name": "example", "icon": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "last_name": "example" }, "roles": [ "example" ]}