Skip to main content
GET
Latest scores

Authorizations

x-api-key
string
header
required

Optional. Not needed for any endpoint in this spec. Unlocks the partner-only endpoints and a 100 requests per minute bucket (public limit is 60 per IP).

Query Parameters

chainId
integer

Filter to one EVM chain id.

protocolId
string

Filter to one protocol slug.

address
string

One vault by on-chain address (last segment of vaultId, case-insensitive). Returns at most one row per chain.

asset
string

Underlying asset symbol, case-insensitive exact match. Accepts a comma list of up to 10 (USDC,USDT0). Exact means exact: USDC does not match syrupUSDC. Use explain=true to see near-miss symbols.

minScore
number

Keep vaults with composite >= this value.

Required range: 0 <= x <= 100
minTvl
number

Keep vaults whose LIVE TVL (USD) is >= this value.

Required range: x >= 0
minApy
number

Keep vaults whose LIVE APY (percentage points) is >= this value. A vault with no APY never clears it.

Required range: x >= 0
routable
enum<string>

Only vaults a deposit can reach. Excludes vaults flagged unroutable and, failing closed, vaults missing from the live catalog. Only the value true is accepted.

Available options:
true
excludeFallback
enum<string>

Exclude rows scored on fallback data (dataQuality = fallback).

Available options:
true
explain
enum<string>

Adds an explain block saying what the filters removed: counts per filter, the dropped vaults and why (best-ranked first, with up to 2 slots held for vaults dropped as unreachable or low-confidence), and near-miss asset symbols. Counts are per filter, so a vault failing two filters is counted under both.

Available options:
true
sort
enum<string>

Sort descending by this field (apy and tvl are the live values). Omit to keep the default order.

Available options:
composite,
apy,
tvl
limit
integer

Return at most this many rows, applied after filtering and sorting.

Required range: 1 <= x <= 200
fields
enum<string>

compact returns the small CompactScore row instead of the full Score.

Available options:
compact

Response

200 - application/json

Latest scores for the tracked vaults that match.

success
boolean
Example:

true

scorerVersion
string
Example:

"2.2.0"

count
integer

Rows returned.

Example:

570

total
integer

Rows matching the filters before limit is applied.

Example:

570

applied
object

Every filter this server honoured, echoed back. If you sent a parameter and it is missing here, the API predates it and the rows are not filtered by it.

ignoredParams
string[]

Query keys this endpoint does not recognise, sorted, at most 20 of at most 64 characters. Present only when there is at least one. An unknown key is not an error: it is ignored, so a typo such as minAPY returns 200 with the rows NOT filtered by it. If you expected a filter to apply, check that its name is not listed here.

explain
object

Only with explain=true.

disclaimer
string
Example:

"Research and information, not investment advice."

data
object[]