> For the complete documentation index, see [llms.txt](https://docs.adaptria.locaria.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.adaptria.locaria.com/internal-api/reference/budgets.md).

# 💼 Budgets

### Budgets

Browse budgets and their projects. Internal-only — client API keys receive `403`.

## 💼 List budgets for a client

> Mirrors \`GET /api/v1/clients/{clientId}/budgets\`.

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetsListResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["success","data"]}}},"paths":{"/api/public/v1/clients/{clientId}/budgets":{"get":{"summary":"💼 List budgets for a client","description":"Mirrors `GET /api/v1/clients/{clientId}/budgets`.","tags":["💼 Budgets"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"clientId","in":"path"},{"schema":{"type":"string","pattern":"^\\d+$"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","pattern":"^\\d+$"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortOrder","in":"query"}],"responses":{"200":{"description":"Budgets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetsListResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/budgets

> 💼 Filter budgets across all clients

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetsListResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["success","data"]}}},"paths":{"/api/public/v1/budgets":{"get":{"summary":"💼 Filter budgets across all clients","tags":["💼 Budgets"],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","pattern":"^\\d+$"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortOrder","in":"query"}],"responses":{"200":{"description":"Budgets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetsListResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/budgets/filters

> 💼 Get budget filters

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetFiltersResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":{}}},"required":["success","data"]}}},"paths":{"/api/public/v1/budgets/filters":{"get":{"summary":"💼 Get budget filters","tags":["💼 Budgets"],"responses":{"200":{"description":"Filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetFiltersResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/budgets/{budgetId}

> 💼 Get budget by ID

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetDetailResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":{}}},"required":["success","data"]}}},"paths":{"/api/public/v1/budgets/{budgetId}":{"get":{"summary":"💼 Get budget by ID","tags":["💼 Budgets"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"budgetId","in":"path"}],"responses":{"200":{"description":"Budget","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetDetailResponse"}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"}}}}}}
```

## GET /api/public/v1/budgets/{budgetId}/details

> 💼 Get budget details

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetDetailResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":{}}},"required":["success","data"]}}},"paths":{"/api/public/v1/budgets/{budgetId}/details":{"get":{"summary":"💼 Get budget details","tags":["💼 Budgets"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"budgetId","in":"path"}],"responses":{"200":{"description":"Budget details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetDetailResponse"}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"}}}}}}
```

## GET /api/public/v1/budgets/{budgetId}/projects

> 💼 List projects for a specific budget

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetsListResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"type":"object","additionalProperties":{}}}},"required":["success","data"]}}},"paths":{"/api/public/v1/budgets/{budgetId}/projects":{"get":{"summary":"💼 List projects for a specific budget","tags":["💼 Budgets"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"budgetId","in":"path"},{"schema":{"type":"string","pattern":"^\\d+$"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","pattern":"^\\d+$"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortOrder","in":"query"}],"responses":{"200":{"description":"Projects","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetsListResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/budgets/{budgetId}/projects/filters

> 💼 Get project filters for a budget

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"💼 Budgets","description":"## Budgets\n\nBrowse budgets and their projects. Internal-only — client API keys receive `403`.\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"PublicBudgetFiltersResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":{}}},"required":["success","data"]}}},"paths":{"/api/public/v1/budgets/{budgetId}/projects/filters":{"get":{"summary":"💼 Get project filters for a budget","tags":["💼 Budgets"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"budgetId","in":"path"}],"responses":{"200":{"description":"Filters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBudgetFiltersResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```
