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_idstringRequired
    Pattern ^team_[0-9a-f]{32}$

Request body

  • emailstringRequired
    3–254 characters · Pattern ^[^@\s]+@[^@\s]+\.[^@\s]+$
  • roleenumRequired
    Team 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 | null
    Tenant 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
  • roleenumRequired
    One of owner, admin, developer, operator, viewer, billing
  • projectsarray of integer | nullRequired
    Tenant IDs of the team's projects the member is limited to; null for every project, now and later. Owners and admins are never limited.
  • statusenumRequired
    One of pending, accepted, declined, revoked
  • expiredbooleanRequired
    A 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.