Organizations

Organization management endpoints — create, list, update orgs and manage membership.

Organization Endpoints

List Organizations

GET /organizations

Returns all organizations the authenticated identity belongs to.

Response:

[
  {
    "id": "org-abc123",
    "name": "My Energy Lab",
    "owner_id": "usr-paul-xyz",
    "created_at": "2026-03-06T10:00:00Z"
  }
]

Create Organization

POST /organizations

Request Body:

{
  "name": "My Energy Lab"
}

The authenticated identity becomes the owner.

Get Organization

GET /organizations/{org_id}

Update Organization

PUT /organizations/{org_id}

Request Body:

{
  "name": "Updated Name"
}

Delete Organization

DELETE /organizations/{org_id}

Requires owner role.

Membership Endpoints

List Members

GET /organizations/{org_id}/members

Response:

[
  {
    "identity_id": "usr-paul-xyz",
    "role": "owner",
    "joined_at": "2026-03-06T10:00:00Z"
  },
  {
    "identity_id": "usr-tobias-abc",
    "role": "admin",
    "joined_at": "2026-03-06T11:00:00Z"
  }
]

Add Member

POST /organizations/{org_id}/members

Request Body:

{
  "identity_id": "usr-tobias-abc",
  "role": "admin"
}

Update Member Role

PUT /organizations/{org_id}/members/{identity_id}

Request Body:

{
  "role": "operator"
}

Remove Member

DELETE /organizations/{org_id}/members/{identity_id}

Roles

RoleDescription
ownerFull control, billing, can delete org and transfer ownership
adminManage members, sites, devices, gateways
operatorControl devices, view data (optionally scoped to sites)
viewerRead-only access to telemetry and metadata

Knowledge gap for Johan: Verify exact endpoint paths, request/response schemas, and the full permission matrix for each role. Are there invitation/acceptance flows, or are members added directly?