List vault allocations

List where vaults' assets sit, with utilization and drawdowns.

GEThttps://api-v2.syncrone.fi/api/catalog/allocation

Each vault's allocation on its newest daily bar, its utilization and its trailing max drawdowns. Takes the same filters and sort as List advanced vaults (allowedNetworks, allowedAssets, allowedProtocols, minTvl, minApy, tags, curators, sortBy…); sections are read for the requested page only.

← Vaults API overview

Try it#

GET/allocation?perPage=2&allowedNetworks=mainnet&sortBy=tvl&sortOrder=desc

Kept in this browser tab only, and sent to Syncrone with each request. No key yet? Create one ↗

Parameters
Response
Paste an API key, then press Send. The parameters are pre-filled with a real example.
curl
curl "https://api-v2.syncrone.fi/api/catalog/allocation?perPage=2&allowedNetworks=mainnet&sortBy=tvl&sortOrder=desc" \
  -H "x-api-key: $SYNCRONE_API_KEY"

Parameters#

NameTypeDescription
pagequeryinteger

Page number, starting from 0.

default: 0
perPagequeryinteger

Items per page, 1 to 100.

default: 50
selectquerystring[]composition | utilizationRate | maxDrawdown | withdrawalPauseRatio | detailedVault

Sections to return. Repeat the parameter or separate with commas. Default: every section but detailedVault.

allowedNetworksquerystring[]

Networks to include. Repeat the parameter or separate with commas.

allowedProtocolsquerystring[]

Protocols to include, by protocolId or display name.

sortByquerystringtvl | apy1day | apy7day | apy30day

Field to sort by.

sortOrderquerystringasc | desc

Sort direction.

default: asc

Response#

200 returns JSON with these fields. APY values are fractions (0.04 = 4%); timestamps are Unix seconds.

FieldTypeDescription
itemsOnPageinteger

Number of items in data.

nextPageinteger

Next page number. Absent on the last page.

data[].vaultIdstring

The vault's id, as in the path.

data[].networkstring

Network name.

data[].composition[]object | null

Where the vault's assets sit on its newest daily bar, read from its own contracts at that bar's block. Null when there is no row (see compositionStatus).

data[].composition[].namestring

The market, child vault, strategy, wallet or idle balance.

data[].composition[].allocationnumber

Share of NAV as a fraction (0.25 = 25%). Debts and amounts owed back are negative, so the shares sum to 1.

data[].composition[].kindstring

market, vault, idle, loans, custody, debt, fee or other.

data[].composition[].vaultIdstring | null

The child vault address, or the market id, when the position is one.

data[].composition[].asset.positionValueInAssetstring

Value in the vault's asset, base units.

data[].composition[].asset.positionValueInUsdstring | null

Value in USD at the bar's asset price.

data[].composition[].legs[]object

For a leveraged position netted in one protocol market: each side, with role collateral, supply or debt.

data[].compositionStatusstring

available; pending (read daily, no row yet); not_applicable (fixed-term, staking and yield tokens hold nothing to allocate); no_reader.

data[].compositionAsOfobject | null

timestamp (the bar, unix seconds), blockNumber, blockTimestamp, source (reader: the vault's contracts; rates: a single lending market split into lent and idle from its rate bar) and reader.

data[].utilizationRatenumber | null

Invested share of the composition (not idle); for a lending market without one, its own utilization.

data[].utilizationRateSourcestring | null

composition or rates (the market's own reported utilization); null with no value.

data[].maxDrawdownobject

mdd30days, mdd90days, mdd365days: worst peak-to-trough drop of the daily share price, as a positive fraction.

data[].withdrawalPauseRationull

Not tracked yet; always null.

Errors#

StatusMeaning
400Invalid query or path parameter, or unknown network.
401Missing or rejected API key.
429Too many requests from the docs playground. Wait a minute.
500The service failed.

Error bodies carry error and, for invalid parameters, details.