Need to manage API keys, view logs, or check usage?Open the Developer portal →

List my teams

Lists the teams the API-key owner is an active member of. The id of any returned team is a valid value for the required x-team-id header.

GET/public/teams

Every request must include an x-team-id header naming which team to operate against. This endpoint returns every valid choice for that header. Use items[].isRecent === trueas your default — that's the team the user most recently switched to in app.circa.ai.

Response

200OK
{
  "items": [
    {
      "id": "4b6f9c28-6f4e-4e7f-a36d-2ff989045d10",
      "label": "Acme Corp",
      "description": "Primary production tenant",
      "role": "owner",
      "isRecent": true
    },
    {
      "id": "8a2c6e90-9f1e-4d5e-b3c1-1ae0c92b5d77",
      "label": "Sandbox",
      "description": null,
      "role": "member",
      "isRecent": false
    }
  ],
  "total": 2
}

Notable fields

  • role — your membership on this team: "owner" or "member".
  • isRecenttrue for the team the user most recently selected in the app. Typically the right default for x-team-id if you only operate on one team.
  • Pending invitations are not returned. Only teams where membership status is active appear here, since only those work as x-team-id values.

Example

curl -s 'https://api.circa.ai/public/teams' \
  -H 'x-api-key: circa_live_xxx' \
  -H 'x-team-id: TEAM_ID_FROM_OVERVIEW' \
  -H 'Circa-Version: 2026-05-11.arrakis'

See Authentication for how the x-team-id header interacts with team scope.