DEVELOPER DOCS

REST API

Invitations & Onboarding

On this page

Create an invitation

HTTP
POST /v1/orgs/{org_id}/invitations

Auth: any credential · Role: admin

Request body — InvitationCreateBody

FieldTypeRequiredDescription
emailstring✅Invitee's email address
rolestring✅Role to grant on acceptance
workspace_idstring | null➖Scope the invitation to one workspace

Examples

inv = evigauge.post(f"/v1/orgs/{org_id}/invitations", json={
    "email": "newdev@acme.com",
    "role": "dev",
})
print(inv)

List invitations

HTTP
GET /v1/orgs/{org_id}/invitations

Auth: any credential · Role: admin

Examples

print(evigauge.get(f"/v1/orgs/{org_id}/invitations"))

Revoke an invitation

HTTP
DELETE /v1/orgs/{org_id}/invitations/{invitation_id}

Auth: any credential · Role: admin

Examples

evigauge.delete(f"/v1/orgs/{org_id}/invitations/{invitation_id}")

Accept an invitation

HTTP
POST /v1/auth/accept-invite

Auth: any authenticated principal — the accepting user must be signed in.

Request body — AcceptBody

FieldTypeRequiredDescription
tokenstring✅Invitation token from the invite email

Examples

evigauge.post("/v1/auth/accept-invite", json={"token": invite_token})

Onboard an organization

HTTP
POST /v1/onboarding/org

First-run creation of an organization for a newly signed-up user.

Auth: any authenticated principal

Request body — OrgCreateBody

FieldTypeRequiredDescription
org_namestring✅Organization display name
contact_emailstring✅Primary contact address
team_countstring | null➖Team size band

Examples

org = evigauge.post("/v1/onboarding/org", json={
    "org_name": "Acme Corp",
    "contact_email": "ops@acme.com",
    "team_count": "11-50",
})
print(org)

Onboard a workspace

HTTP
POST /v1/onboarding/workspace

Auth: any authenticated principal

Request body

FieldTypeRequiredDescription
org_idstring✅Organization UUID from the onboarding step above
workspace_namestring✅Workspace display name

Note this differs from POST /v1/orgs/{org_id}/workspaces, which takes name (and optional slug) with the org in the path. The onboarding variant takes org_id in the body.

Examples

ws = evigauge.post("/v1/onboarding/workspace", json={
    "org_id": org_id,
    "workspace_name": "Production",
})
print(ws)