# List the caller's organizations

`GET /v1/orgs`

Returns every organization the authenticated caller belongs to, each with the caller's effective membership role. A caller with no memberships gets an empty array, not a 404 — clients read 404 as "this deployment does not serve the endpoint", which is a different state. `name` is the organization handle used in `<org>/<app>` addressing.

## Header parameters

- `Authorization` (string, required): `Bearer <token>`. [Authentication](https://spice.ai/docs/cloud/api/management#authentication) lists the tokens it accepts.
- `X-Org-Name` (string, optional): Optional for every credential, a portal session token included: this listing is how a session finds the organizations it can name elsewhere. When sent, it is authorized as on any other route, so a handle the caller does not belong to is `org_forbidden`. Pattern: `^[A-Za-z0-9._-]{1,255}$`.

## Example request

```bash
curl "https://api.spice.ai/v1/orgs" \
  -H "Authorization: Bearer <token>"
```

```http
GET /v1/orgs HTTP/1.1
Host: api.spice.ai
Authorization: Bearer <token>
```

## Responses

**200 OK**

The organizations the caller is a member of, possibly empty

Content type: `application/json`

- `orgs` (array of object, required)
  - `id` (integer, required)
  - `name` (string, required)
  - `role` (string, required): The caller's highest-privilege role in the organization. Allowed values: `owner`, `admin`, `member`, `viewer`.

**400 Bad Request**

X-Org-Name is not a valid organization handle (`invalid_org_assertion`)

**401 Unauthorized**

Unauthorized

**403 Forbidden**

Insufficient scope (`insufficient_scope`), or X-Org-Name names an organization the caller cannot act for (`org_forbidden`, `org_assertion_mismatch`, `org_deleted`)

**500 Internal Server Error**

Internal server error

OpenAPI: [api.spice.ai/openapi.json](https://api.spice.ai/openapi.json)
