Overview

Organizations are the top-level entities in Obeya Cloud. Each API token is scoped to a single organization identified by the subdomain.

Get Organization

Retrieve the current organization’s details.
GET /api/trpc/organizations.get
Response:
{
  "result": {
    "data": {
      "json": {
        "id": "org_01HXK5QJBN3YZXM8KJP2RSNV4C",
        "name": "Acme Corp",
        "slug": "acme",
        "logo": "https://acme.obeya.cloud/storage/logo.svg",
        "timezone": "America/New_York",
        "dateFormat": "MM/DD/YYYY",
        "weekStart": "monday",
        "language": "en",
        "plan": "business",
        "createdAt": "2026-01-15T10:00:00.000Z",
        "updatedAt": "2026-03-19T14:30:00.000Z"
      }
    }
  }
}

Update Organization

Update organization settings. Requires Admin or Owner role.
POST /api/trpc/organizations.update
Request:
{
  "json": {
    "name": "Acme Corporation",
    "timezone": "Europe/London",
    "dateFormat": "DD/MM/YYYY",
    "weekStart": "monday",
    "language": "en"
  }
}
Response:
{
  "result": {
    "data": {
      "json": {
        "id": "org_01HXK5QJBN3YZXM8KJP2RSNV4C",
        "name": "Acme Corporation",
        "slug": "acme",
        "timezone": "Europe/London",
        "dateFormat": "DD/MM/YYYY",
        "weekStart": "monday",
        "language": "en",
        "updatedAt": "2026-03-19T15:00:00.000Z"
      }
    }
  }
}

List Members

List all members of the organization.
GET /api/trpc/organizations.members.list
Input Parameters:
ParameterTypeRequiredDescription
cursorstringNoPagination cursor
limitnumberNoResults per page (default: 50, max: 200)
searchstringNoSearch by name or email
rolestringNoFilter by role: owner, admin, member, guest
statusstringNoFilter by status: active, pending, deactivated
Response:
{
  "result": {
    "data": {
      "json": {
        "members": [
          {
            "id": "usr_01HXK5...",
            "name": "Alice Johnson",
            "email": "alice@company.com",
            "avatar": "https://...",
            "role": "admin",
            "status": "active",
            "joinedAt": "2026-01-15T10:00:00.000Z",
            "lastActiveAt": "2026-03-19T14:30:00.000Z"
          }
        ],
        "nextCursor": "usr_01HXK6..."
      }
    }
  }
}

Invite Member

Invite a new member to the organization. Requires Admin role.
POST /api/trpc/organizations.members.invite
Request:
{
  "json": {
    "email": "bob@company.com",
    "role": "member",
    "workspaceIds": ["wsp_01HXK5..."]
  }
}
Response:
{
  "result": {
    "data": {
      "json": {
        "invitationId": "inv_01HXK5...",
        "email": "bob@company.com",
        "role": "member",
        "status": "pending",
        "expiresAt": "2026-03-26T14:30:00.000Z"
      }
    }
  }
}

Remove Member

Remove a member from the organization. Requires Admin role.
POST /api/trpc/organizations.members.remove
Request:
{
  "json": {
    "userId": "usr_01HXK5...",
    "reassignTo": "usr_01HXK6..."
  }
}
The reassignTo parameter is optional. If provided, all items assigned to the removed member will be reassigned to the specified user.

Update Member Role

Change a member’s role. Requires Admin role. Cannot change the Owner’s role.
POST /api/trpc/organizations.members.updateRole
Request:
{
  "json": {
    "userId": "usr_01HXK5...",
    "role": "admin"
  }
}
Only the organization Owner can promote a member to Admin. Admins can only set roles to Member or Guest.