> 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/attributes.md).

# 🏷️ Attributes

### Attributes

Browse attribute categories and their details for integrations that need user or project metadata.

## 🏷️ List Attribute Categories

> List attribute categories using the same source as the main Attribute Management page (\`GET /api/core/attribute-categories\`). Internal users only. Client users → 403.

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🏷️ Attributes","description":"## Attributes\n\nBrowse attribute categories and their details for integrations that need user or project metadata.\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":{"ListAttributesResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"type":"object","additionalProperties":{}}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"limit":{"type":"number"},"total":{"type":"number"},"totalPages":{"type":"number"},"hasNextPage":{"type":"boolean"},"hasPrevPage":{"type":"boolean"}},"required":["page","limit","total","totalPages","hasNextPage","hasPrevPage"]}},"required":["success","data","pagination"]}}},"paths":{"/api/public/v1/attributes":{"get":{"summary":"🏷️ List Attribute Categories","description":"List attribute categories using the same source as the main Attribute Management page (`GET /api/core/attribute-categories`). Internal users only. Client users → 403.","tags":["🏷️ Attributes"],"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","enum":["name","tooltip","createdAt","updatedAt"]},"required":false,"name":"sortBy","in":"query"},{"schema":{"type":"string","enum":["asc","desc"]},"required":false,"name":"sortOrder","in":"query"},{"schema":{"type":"string","enum":["0","1","true","false"]},"required":false,"name":"returnAttributes","in":"query"}],"responses":{"200":{"description":"Attributes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAttributesResponse"}}}},"403":{"description":"Forbidden"}}}}}}
```

## GET /api/public/v1/attributes/{id}

> 🔍 Get Attribute Category Details

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🏷️ Attributes","description":"## Attributes\n\nBrowse attribute categories and their details for integrations that need user or project metadata.\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":{"AttributeCategoryDetailsResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":{}}},"required":["success","data"]}}},"paths":{"/api/public/v1/attributes/{id}":{"get":{"summary":"🔍 Get Attribute Category Details","tags":["🏷️ Attributes"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Attribute category","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttributeCategoryDetailsResponse"}}}},"403":{"description":"Forbidden"},"404":{"description":"Not found"}}}}}}
```

## 🏷️ List Attributes by Category

> Mirrors \`GET /api/core/attribute-categories/{categoryId}/attributes\`.

```json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"🏷️ Attributes","description":"## Attributes\n\nBrowse attribute categories and their details for integrations that need user or project metadata.\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":{"ListAttributesResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"type":"object","additionalProperties":{}}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"limit":{"type":"number"},"total":{"type":"number"},"totalPages":{"type":"number"},"hasNextPage":{"type":"boolean"},"hasPrevPage":{"type":"boolean"}},"required":["page","limit","total","totalPages","hasNextPage","hasPrevPage"]}},"required":["success","data","pagination"]}}},"paths":{"/api/public/v1/attributes/{categoryId}/attributes":{"get":{"summary":"🏷️ List Attributes by Category","description":"Mirrors `GET /api/core/attribute-categories/{categoryId}/attributes`.","tags":["🏷️ Attributes"],"parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"categoryId","in":"path"}],"responses":{"200":{"description":"Attributes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAttributesResponse"}}}},"403":{"description":"Forbidden"},"404":{"description":"Category not found"}}}}}}
```
