# Get organization limits

## `GET /v1/limits`

Returns the current plan limits for the authenticated organization, including resource limits when private compute is enabled.

### 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): The organization to act on, by handle. Omit it to act on the organization the credential is bound to; sending it blank is a 400, not the same as omitting it. A user credential may name any organization its owner belongs to; a machine credential is pinned to its own. A portal session token is bound to none, so it must send this header on every route but `GET /v1/orgs` (400 `org_assertion_required` otherwise). Pattern: `^[A-Za-z0-9._-]{1,255}$`.

### Example request

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

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

### Responses

**200 OK**

Organization limits

Content type: `application/json`

- `apps` (integer): Maximum number of apps (-1 means unlimited)
- `replicas` (integer): Maximum replicas per app (-1 means unlimited)
- `spicepods` (integer): Maximum spicepods per app (-1 means unlimited)
- `users` (integer): Maximum organization members (-1 means unlimited)
- `api_rps` (integer): API requests per second limit (-1 means unlimited)
- `request_timeout_secs` (integer): Request timeout in seconds
- `sql_query_timeout_secs` (integer): SQL query timeout in seconds
- `sql_concurrent_queries` (integer): Maximum concurrent SQL queries (-1 means unlimited)
- `resources` (object | null): Resource limits for private compute; `null` when private compute is not enabled
  - `max_cpu` (integer): Maximum vCPUs per container
  - `max_memory_gi` (integer): Maximum memory in Gi per container

**401 Unauthorized**

Unauthorized

**403 Forbidden**

Insufficient scope

**404 Not Found**

Organization not found

## `GET /v1/orgs/{orgId}/limits`

The org is `orgId` in the path. Returns the current plan limits for the authenticated organization, including resource limits when private compute is enabled.

### Path parameters

- `orgId` (integer, required): The org id from GET /v1/orgs. Minimum: `1`.

### 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): When present, X-Org-Name must name the same org as orgId. Otherwise the request returns org\_path\_mismatch (400). Pattern: `^[A-Za-z0-9._-]{1,255}$`.

### Example request

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

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

### Responses

**200 OK**

Organization limits

Content type: `application/json`

- `apps` (integer): Maximum number of apps (-1 means unlimited)
- `replicas` (integer): Maximum replicas per app (-1 means unlimited)
- `spicepods` (integer): Maximum spicepods per app (-1 means unlimited)
- `users` (integer): Maximum organization members (-1 means unlimited)
- `api_rps` (integer): API requests per second limit (-1 means unlimited)
- `request_timeout_secs` (integer): Request timeout in seconds
- `sql_query_timeout_secs` (integer): SQL query timeout in seconds
- `sql_concurrent_queries` (integer): Maximum concurrent SQL queries (-1 means unlimited)
- `resources` (object | null): Resource limits for private compute; `null` when private compute is not enabled
  - `max_cpu` (integer): Maximum vCPUs per container
  - `max_memory_gi` (integer): Maximum memory in Gi per container

**400 Bad Request**

orgId is not a valid org id (`invalid_org_id`), or X-Org-Name does not name that org (`org_path_mismatch`).

**401 Unauthorized**

Unauthorized

**403 Forbidden**

Insufficient scope. The caller is not a member of the org (`org_forbidden`). A machine credential named a different org (`org_assertion_mismatch`). The org is deleted (`org_deleted`).

**404 Not Found**

Organization not found

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