# GET /v4/analytics/beneficial-owners/allocations

_Merkl Analytics API_

> Layered beneficial-owners report for a token

The full report behind the `holders` mapping, as a nested `tree`: the asset itself, and every vault/market/gauge holding it, each with its own positions and its own nested `children`. A position whose holder is itself a node is `decomposed` and linked via `childIndexingId`; a node reachable from more than one parent appears once under EACH parent, same `indexingId`, each copy holding only the share that flows through its own route. Same `at`/`409` semantics as `holders`; `403` when any node in the graph holds confidential balances the caller may not read. `diagnostics.unresolved` names any position that could not be denominated in the asset — `total` excludes its value.

### Query parameters

- `chainId` (string | number) _(required)_
- `token` (string) _(required)_
- `at` (string | number) _(required)_

## Responses

- **200** Response for status 200

## Example request

```bash
curl -X GET "https://analytics.merkl.xyz/v4/analytics/beneficial-owners/allocations?chainId=<chainId>&token=<token>&at=<at>" \
  -H "x-api-key: YOUR_API_KEY"
```