Create an invitation
curl --request POST \
--url https://api.awardee.com/v1/team/invitations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]",
"role_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '[email protected]', role_id: 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d'})
};
fetch('https://api.awardee.com/v1/team/invitations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.awardee.com/v1/team/invitations"
payload = {
"email": "[email protected]",
"role_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"object": "invitation",
"id": "8f3a9d2e-1b4c-4f5d-9e8a-7c3b2a1d0f9e",
"email": "[email protected]",
"role_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"role": "admin",
"status": "pending",
"invited_by": "c1f5b2a7-9e8d-4f6a-b3c4-d5e6f7a8b9c0",
"created_at": "2026-01-15T10:00:00.000Z",
"updated_at": "2026-01-15T10:00:00.000Z",
"expires_at": "2026-01-22T10:00:00.000Z",
"token": "f4a2b6e7-1c8d-4e9f-a3b5-c7d8e9f0a1b2"
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}Endpoints
Create an invitation
Generates a pending invitation and returns the secret token. The token is shown once: embed it in your accept link (/invite/accept?token=…) — it cannot be retrieved later.
POST
/
team
/
invitations
Create an invitation
curl --request POST \
--url https://api.awardee.com/v1/team/invitations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]",
"role_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '[email protected]', role_id: 'a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d'})
};
fetch('https://api.awardee.com/v1/team/invitations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.awardee.com/v1/team/invitations"
payload = {
"email": "[email protected]",
"role_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"object": "invitation",
"id": "8f3a9d2e-1b4c-4f5d-9e8a-7c3b2a1d0f9e",
"email": "[email protected]",
"role_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"role": "admin",
"status": "pending",
"invited_by": "c1f5b2a7-9e8d-4f6a-b3c4-d5e6f7a8b9c0",
"created_at": "2026-01-15T10:00:00.000Z",
"updated_at": "2026-01-15T10:00:00.000Z",
"expires_at": "2026-01-22T10:00:00.000Z",
"token": "f4a2b6e7-1c8d-4e9f-a3b5-c7d8e9f0a1b2"
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}{
"error": "<string>",
"message": "<string>",
"request_id": "<string>",
"details": "<unknown>",
"retry_after": 123
}Authorizations
Send your API key as Authorization: Bearer aw_live_…. Manage keys in the dashboard under Settings → API Keys.
Headers
Opaque key that makes this POST safe to retry. Responses are cached for 24h per API key.
Maximum string length:
255Body
application/json
Pattern:
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Example:
Example:
"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
Response
Invitation created
Allowed value:
"invitation"Example:
"8f3a9d2e-1b4c-4f5d-9e8a-7c3b2a1d0f9e"
Pattern:
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$Example:
Example:
"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
Example:
"admin"
Available options:
pending, accepted, declined, expired, revoked Example:
"c1f5b2a7-9e8d-4f6a-b3c4-d5e6f7a8b9c0"
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Example:
"2026-01-15T10:00:00.000Z"
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Example:
"2026-01-15T10:00:00.000Z"
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Example:
"2026-01-22T10:00:00.000Z"
Secret token. Surfaced only on create — store and embed in your invite link.
Example:
"f4a2b6e7-1c8d-4e9f-a3b5-c7d8e9f0a1b2"

