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/teamsEvery 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".isRecent—truefor the team the user most recently selected in the app. Typically the right default forx-team-idif you only operate on one team.- Pending invitations are not returned. Only teams where membership status is
activeappear here, since only those work asx-team-idvalues.
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.