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
| Field | Type | Required | Description |
|---|---|---|---|
email | string | ✅ | Invitee's email address |
role | string | ✅ | Role to grant on acceptance |
workspace_id | string | 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)
const inv = await evigauge.post(`/v1/orgs/${orgId}/invitations`, {
email: "newdev@acme.com",
role: "dev",
});
console.log(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"))
console.log(await evigauge.get(`/v1/orgs/${orgId}/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}")
await evigauge.del(`/v1/orgs/${orgId}/invitations/${invitationId}`);
Accept an invitation
HTTP
POST /v1/auth/accept-invite
Auth: any authenticated principal — the accepting user must be signed in.
Request body — AcceptBody
| Field | Type | Required | Description |
|---|---|---|---|
token | string | ✅ | Invitation token from the invite email |
Examples
evigauge.post("/v1/auth/accept-invite", json={"token": invite_token})
await evigauge.post("/v1/auth/accept-invite", { token: inviteToken });
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
| Field | Type | Required | Description |
|---|---|---|---|
org_name | string | ✅ | Organization display name |
contact_email | string | ✅ | Primary contact address |
team_count | string | 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)
const org = await evigauge.post("/v1/onboarding/org", {
org_name: "Acme Corp",
contact_email: "ops@acme.com",
team_count: "11-50",
});
console.log(org);
Onboard a workspace
HTTP
POST /v1/onboarding/workspace
Auth: any authenticated principal
Request body
| Field | Type | Required | Description |
|---|---|---|---|
org_id | string | ✅ | Organization UUID from the onboarding step above |
workspace_name | string | ✅ | Workspace display name |
Note this differs from
POST /v1/orgs/{org_id}/workspaces, which takesname(and optionalslug) with the org in the path. The onboarding variant takesorg_idin the body.
Examples
ws = evigauge.post("/v1/onboarding/workspace", json={
"org_id": org_id,
"workspace_name": "Production",
})
print(ws)
const ws = await evigauge.post("/v1/onboarding/workspace", {
org_id: orgId,
workspace_name: "Production",
});
console.log(ws);