List organizations

GET /v1/organizations · permission organizations:read

Lists the environment's organizations, newest first. Only forward pagination (after) exists; before and an order other than desc return 422. Filters are exact matches; deleted organizations are not listed.

Request

Field Type Required Description
limit integer no Page size, 1-100 (default 20).
after string no The list_metadata.after cursor of the previous page.
status string no Only organizations in this status: active, disabled or pending_deletion.
slug string no Exact match on the current slug.
external_id string no Exact match on external_id.
domain string no Not supported yet; returns 422.

No request body.

Response

200 OK with a page of organizations.

{
  "data": [
    {
      "id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
      "name": "Acme Corp",
      "slug": "acme",
      "external_id": "crm-4821",
      "status": "active",
      "metadata": {
        "tier": "gold"
      },
      "brand_color": "#1F6FEB",
      "max_memberships": null,
      "default_zoneinfo": null,
      "created_via": "admin_api",
      "disabled_at": null,
      "deletion_requested_at": null,
      "deletion_due_at": null,
      "created_at": "2026-10-12T09:30:00.123456Z",
      "updated_at": "2026-10-12T09:30:00.123456Z",
      "version": 1
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}

Errors

HTTP code When
400 invalid_cursor The cursor is malformed or belongs to other filters.
422 validation_failed A query parameter is invalid (before, order=asc, domain, unknown status).
401 unauthenticated The credential is missing, invalid or revoked.
403 insufficient_permissions The credential lacks the required permission.
429 rate_limited The rate limit was exceeded; retry after the Retry-After period.
503 service_unavailable A dependency is temporarily unavailable; retry after the Retry-After period.

Example

curl "https://api.eu.keenauth.com/v1/organizations?status=active&limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"