Elydora Docs

Onboarding

Create the first workspace for a new user. Each user completes onboarding once; a second attempt returns VALIDATION_ERROR with HTTP 409.

Get Onboarding Status

GET
/v1/onboarding/status
Return whether the user completed onboarding and the current organization.
Auth: Any authenticated user

Example Request

bash
curl https://api.elydora.com/v1/onboarding/status \
  -H "Authorization: Bearer <token>"

Response

json
{
  "onboarding_completed": 0,
  "org_id": null
}

After onboarding the response carries the workspace:

json
{
  "onboarding_completed": 1,
  "org_id": "0195a0b1-c2d3-7e4f-a5b6-c7d8e9f0a1b2"
}

Create Personal Workspace

POST
/v1/onboarding/personal
Create a workspace named Personal Workspace with no request body. Returns HTTP 201.
Auth: Any authenticated user

Example Request

bash
curl -X POST https://api.elydora.com/v1/onboarding/personal \
  -H "Authorization: Bearer <token>"

Response

json
{
  "org_id": "0195a0b1-c2d3-7e4f-a5b6-c7d8e9f0a1b2"
}

Create Organization Workspace

POST
/v1/onboarding/organization
Create a named organization and send optional invitations. Returns HTTP 201.
Auth: Any authenticated user

Request Body

FieldTypeRequiredDescription
org_namestringYesOrganization name, up to 128 characters
descriptionstringNoDescription, up to 512 characters
invitationsarrayNoInvitations to send on creation, each with email and role

Invitation Fields

FieldTypeRequiredDescription
emailstringYesEmail address, up to 256 characters
rolestringYesRBAC role: org_owner, security_admin, compliance_auditor, integration_engineer, or readonly_investigator

Example Request

bash
curl -X POST https://api.elydora.com/v1/onboarding/organization \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "org_name": "Acme Corp",
    "description": "Acme Corporation AI audit workspace",
    "invitations": [
      { "email": "[email protected]", "role": "security_admin" },
      { "email": "[email protected]", "role": "compliance_auditor" }
    ]
  }'

Response

json
{
  "org_id": "0195a0b1-c2d3-7e4f-a5b6-c7d8e9f0a1b2"
}