Skip to content

List and search organizations

The platform.organizations.list operation: GET /api/v1/platform/organizations in the REST API and the platform_organizations_list tool in the MCP server.

GET/api/v1/platform/organizations

Lists the organizations on Ownrecord, newest first, for platform staff (spec §39.1). query matches an organization ID exactly, the start of a slug, part of a name, or (with an @) a member's email address; status filters on active, restricted, suspended, closing or closed.

Each organization comes with metadata only (spec §39.2): name, slug, country, status, support-access policy, the plan read from the platform brand (plan.key from the subscription's prices; internal for the platform organization) with the plan cache's status, and counts of entities, brands (live ones too) and members. Its customers, invoices, ledger and settings need a support-access grant.

At a glance

  • REST: GET /api/v1/platform/organizations
  • MCP tool: platform_organizations_list
  • Operation ID: platform.organizations.list
  • Scope: Platform
  • Permission: platform:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Pagination: limit (at most 100) and starting_after
  • Authentication: API key with the platform:read scope
  • Since: M12

Request

Query parameters

FieldTypeRequiredDescription
querystringNoAn organization ID, a slug prefix, part of a name, or a member's email address.
statusone of active, restricted, suspended, closing, closedNoOnly organizations with this status.
limitinteger (1 to 100)NoPage size, 1 to 100 (default 10).
starting_afterorg_… IDNoThe next_cursor of the previous page.

Response

200 OK with a JSON object, a page of the list (newest first):

FieldTypeDescription
object"list"
dataarray of object
data[].object"platform_organization"
data[].idorg_… ID
data[].slugstring
data[].namestring
data[].countrystring
data[].statusone of active, restricted, suspended, closing, closed
data[].statusReasonstring or null
data[].isPlatformboolean
data[].supportAccessone of off, on_request, always_read
data[].planobject
data[].plan.keystring or nullThe plan (plans.yaml key), read from the platform brand; null when unknown.
data[].plan.namestring or null
data[].plan.sourceone of subscription, internal, none
data[].plan.statusone of trialing, active, past_due, unpaid, canceled, noneThe plan cache's subscription status (spec §37.4).
data[].plan.currentPeriodEnddate-time or null
data[].plan.overridebooleanWhether a plan override is active.
data[].countsobject
data[].counts.entitiesinteger
data[].counts.brandsinteger
data[].counts.liveBrandsinteger
data[].counts.membersinteger
data[].createdAtdate-time
has_moreboolean
next_cursororg_… ID or null

Examples

Find an organization by name

HTTP
GET /api/v1/platform/organizations?query=acme
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "object": "platform_organization",
      "id": "org_01m5wvkry1e6w94sjxgme33fs5",
      "slug": "acme",
      "name": "Acme",
      "country": "HR",
      "status": "active",
      "statusReason": null,
      "isPlatform": false,
      "supportAccess": "on_request",
      "plan": {
        "key": "growth",
        "name": "Growth",
        "source": "subscription",
        "status": "active",
        "currentPeriodEnd": "2026-11-14T10:02:11.000Z",
        "override": false
      },
      "counts": {
        "entities": 1,
        "brands": 2,
        "liveBrands": 1,
        "members": 6
      },
      "createdAt": "2026-09-14T10:02:11.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A filter or pagination value is invalid.Fix the fields listed in details.issues and send the request again.
permission_denied403You aren't platform staff with read access to the platform console.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.