curl --request POST \
--url https://api.aireserve.com/v1/admin/invite_user \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "jsmith@example.com",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"role": "user",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sendOnboardingEmail": true
}
'import requests
url = "https://api.aireserve.com/v1/admin/invite_user"
payload = {
"email": "jsmith@example.com",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"role": "user",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sendOnboardingEmail": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'jsmith@example.com',
clientId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
role: 'user',
teamId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
sendOnboardingEmail: true
})
};
fetch('https://api.aireserve.com/v1/admin/invite_user', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"error": "<string>",
"error_description": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"error": "<string>",
"error_description": "<string>"
}Invite a new user to the organization (admins and team leads)
Invite a new user to the organization (admins and team leads). High stakes: Creates an account for this email and can send it a live sign-in link. Interactive clients should confirm with the user first. Runs as the token’s owner within their role; the portal’s own authorization and audit log apply.
curl --request POST \
--url https://api.aireserve.com/v1/admin/invite_user \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "jsmith@example.com",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"role": "user",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sendOnboardingEmail": true
}
'import requests
url = "https://api.aireserve.com/v1/admin/invite_user"
payload = {
"email": "jsmith@example.com",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"role": "user",
"teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sendOnboardingEmail": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: 'jsmith@example.com',
clientId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
role: 'user',
teamId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
sendOnboardingEmail: true
})
};
fetch('https://api.aireserve.com/v1/admin/invite_user', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"error": "<string>",
"error_description": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"error": "<string>",
"error_description": "<string>"
}Authorizations
A management token: minted by the OAuth flow (aireserve login, or an MCP client's Authenticate step) or on the portal Keys page under Management Keys. Inference API keys are refused.
Body
255^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Target organization id — platform admins only; omit otherwise
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$1 - 255user, enterprise_admin Team to place the new user on; required for team leads
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Executed successfully (ok: true).
executed Whether the operation succeeded.
The consent line describing what was done, built from resolved labels.
Human-readable result line.
Operation payload (reads) or detail worth relaying (writes).
A one-time secret the operation minted (API key, credential). Shown once; store it now.
Present exactly when secret is: redact this response from logs.
true