> For the complete documentation index, see [llms.txt](https://docs.nected.ai/nected-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nected.ai/nected-docs/management-api/dynamic-lookup-table-api/get-attribute-library-group-by-id.md).

# Get attribute library group by id

Retrieve a single attribute library group and its attributes by entity ID. Use this response as the starting point for an update.

## Get attribute library group by id

> Retrieve a single attribute library group by entity ID. Copy \`data.checksum\` — you need it to update the group.

```json
{"openapi":"3.0.3","info":{"title":"Nected Dynamic Lookup Table API (Attribute Library, Dev V1)","version":"1.0"},"tags":[{"name":"Dynamic Lookup Table API (Attribute Library)","description":"The Dynamic Lookup Table API lets you list, create, read and update **attribute library groups** (lookup tables) in your workspace. Each group holds one or more **attributes**, and each attribute has a name, a data type, a list of predefined values and a usage.\n\nUse it to update lookup values in bulk, sync them from your systems of record, or promote them between environments in CI/CD. For a no-code walkthrough, see Dynamic Lookup Tables (Attribute Library).\n\n**Entity type:** all paths use the entity type `module`.\n\n**Supported operations:** list, create, get and update only. Publish, test, schedule and version listing are not available for attribute libraries.\n\n**Update rules:** after an attribute is created, you can change its predefined values and usage. You can't change its name or data type, the same as in the UI.\n\n**Data types:** `String`, `Numeric`, `Date`, `DateTime`, `Boolean`, `List`, `JSON`.\n\n## Why use the API?\n\nUse the API when you need:\n\n* **Bulk updates** (large value lists in one or a few calls)\n* **Automated sync** from your systems of record\n* **CI/CD / environment promotion** of lookup values\n* **Programmatic governance** with controlled access and auditability\n\n## How it works\n\nAttribute libraries are created in two steps:\n\n1. **Create the group** with `POST /dev/v1/module`. The response returns the group's `id`.\n2. **Create the entries inside the group** with `POST /dev/v1/module_schema`, passing the group's `id` as `moduleId`.\n\nTo change things later, use `PATCH /dev/v1/module/{entity-id}` to rename the group or change its description, and `PATCH /dev/v1/module_schema/{entity-id}` to change the values or usage of an entry. Both need the current `checksum`."}],"servers":[{"url":"https://api.nected.ai","description":"Production"}],"security":[{"DevAuth":[]}],"components":{"securitySchemes":{"DevAuth":{"type":"apiKey","in":"header","name":"Nected-API-Key","description":"Your Nected API key. Obtain from your workspace settings."}},"schemas":{"GetAttributeGroupResponse":{"type":"object","description":"Success response for GET /dev/v1/module/{entity-id}","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"checksum":{"type":"string"}}}}},"ErrorResponse":{"type":"object","description":"Error response wrapper","properties":{"code":{"type":"string"},"message":{"type":"string","description":"Human-readable error message"},"data":{"nullable":true}}}},"responses":{"BadRequest":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"ServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/dev/v1/module/{entity-id}":{"get":{"operationId":"getAttributeGroupById","tags":["Dynamic Lookup Table API (Attribute Library)"],"summary":"Get attribute library group by id","description":"Retrieve a single attribute library group by entity ID. Copy `data.checksum` — you need it to update the group.","parameters":[{"name":"Nected-Branch","in":"header","required":false,"description":"Branch name (optional)","schema":{"type":"string"}},{"name":"entity-id","in":"path","required":true,"description":"The group's entity ID (from create group response `data.id`)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK — the group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAttributeGroupResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"description":"Not Found — no group with this entity ID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```

### Response shape

The API returns the standard wrapper: `code`, `message` and `data`.

* **`data`** is the group: its `id`, `name` and `attributes`. Each attribute has a `name`, `dataType`, `predefinedValues` and `usage`.
