Invite someone by email
post/v1/teams/{team_id}/invites
Requires an API key
Owners and admins (only an owner invites an owner). The invite is bound to the email: the person signs in with that confirmed email and accepts it from GET /v1/me/teams. Ivora sends no email; share the sign-in link yourself. Expires after 14 days. 409 already_member or invite_pending.
Path parameters
- team_idstringRequiredPattern
^team_[0-9a-f]{32}$
Request body
- emailstringRequired3–254 characters · Pattern
^[^@\s]+@[^@\s]+\.[^@\s]+$ - roleenumRequiredTeam role: owner (everything, the team's card and members; never limited to projects), admin (every project, its creation and renaming, the team's billing and the members, never an owner), developer (tenant-admin project access: stations, billing, tokens, webhooks, the project's API keys), operator (read access plus stations:control), viewer (read access, webhooks included) or billing (the team's billing pages and card, no project scope).One of
owner,admin,developer,operator,viewer,billing - projectsarray of integer | nullTenant IDs of the team's projects the member is limited to; null for every project, now and later. Owners and admins are never limited.
Returns · 201
- idstringRequired
- team_idstringRequired
- team_namestring | null
- emailstringRequired
- roleenumRequiredOne of
owner,admin,developer,operator,viewer,billing - projectsarray of integer | nullRequiredTenant IDs of the team's projects the member is limited to; null for every project, now and later. Owners and admins are never limited.
- statusenumRequiredOne of
pending,accepted,declined,revoked - expiredbooleanRequiredA pending invite past expires_at can no longer be accepted; invite again.
- invited_bystringRequired
- created_atstringRequired
- expires_atstringRequired
- responded_atstring | null
POST /v1/teams/{team_id}/invites
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/teams/team_0123456789abcdef0123456789abcdef/invites" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "developer@example.com",
"role": "owner"
}'Response · 201
{
"id": "id_0123456789abcdef",
"team_id": "team_0123456789abcdef",
"team_name": "string",
"email": "developer@example.com",
"role": "owner",
"projects": [
1
],
"status": "pending",
"expired": false,
"invited_by": "string",
"created_at": "2026-09-30T17:00:00Z",
"expires_at": "2026-09-30T17:00:00Z",
"responded_at": "2026-09-30T17:00:00Z"
}Try it is not available here yetRequests from this page are off until the production API at
https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.