GET /api/assets List Assets
The directory of everything ByteTree tracks. Search it by name, or narrow it by asset type, sector, universe or group. Each entry carries the asset’s basics — name, sector, country, market value — along with its current headline trend score and regime (Weekly CAPR, taken from the latest computed metrics).
Request
curl https://api.bytetree.io/api/assets
# Filter by type
curl "https://api.bytetree.io/api/assets?type=stock"
# FX pairs (synthesised from rate data — see Polymorphic FX rows below)
curl "https://api.bytetree.io/api/assets?type=fx"
# Members of a universe
curl "https://api.bytetree.io/api/assets?universe=bytetrend"
# Members of a universe within one dimension group
curl "https://api.bytetree.io/api/assets?universe=bytetrend&dimension=region&group=Europe"
# Text search
curl "https://api.bytetree.io/api/assets?q=apple"
# Paginate (advance offset until offset + count >= total)
curl "https://api.bytetree.io/api/assets?limit=100&offset=200"
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
type | string | No | Asset type: stock, crypto, etf, index, commodity, or fx (synthesised — see Polymorphic FX rows) |
status | string | No | Asset status: active, pending, or inactive |
sector | string | No | Sector name (e.g. Technology, Financial Services) |
universe | string | No | Universe slug (e.g. bytetrend, bytefolio) — see Universes. Membership filter: returns only that universe’s members. Unknown slugs return 400 listing the valid ones; macro returns 400 — see Universe and group filters |
dimension | string | No | One of the five global dimensions: region, sector, industry, type, or country. Must be paired with group; works with or without universe |
group | string | No | Group label within dimension, exact match (e.g. Europe, Technology). Must be paired with dimension |
q | string | No | Case-insensitive text search on symbol and name |
limit | number | No | Maximum number of assets to return per page. Default 500, capped at 1000. |
offset | number | No | Number of records to skip before returning results. Default 0. Pair with limit to paginate. |
Universe and group filters
universe is a membership filter. ?universe=bytetrend returns the assets whose universes[] includes bytetrend — the same set memberCount on GET /api/universes counts. Without universe, the population is the whole registry.
dimension + group are a global filter, independent of universe. They narrow by the asset’s resolved value in one of the five dimensions, and compose with universe when both are given:
# Every tracked Technology asset
curl "https://api.bytetree.io/api/assets?dimension=sector&group=Technology"
# Technology members of the ByteTrend universe
curl "https://api.bytetree.io/api/assets?universe=bytetrend&dimension=sector&group=Technology"
The pair is both-or-neither: dimension without group, or group without dimension, is a 400 ('dimension' requires 'group' — pass both together.). An unknown dimension is a 400 listing the five. The plain type, status, sector and q filters compose with all of the above.
| Request | Status | Body |
|---|---|---|
?universe=<unknown> | 400 | unknown universe 'zzz'. Valid: bold, bytefolio, bytetrend, … |
?universe=macro | 400 | 'macro' is not a universe — the macro dataset is served at /api/macro. |
?dimension=sector (no group) | 400 | 'dimension' requires 'group' — pass both together. |
?dimension=zzz&group=x | 400 | unknown dimension 'zzz'. Valid: country, industry, region, sector, type. |
Available universes can be discovered via GET /api/universes.
Polymorphic FX rows
?type=fx returns FX pairs synthesised from rate data alongside the registered asset universe. FX rows expose the same shape as standard assets so polymorphic consumers can iterate without branching, but several asset-only fields (isin, sector, industry, country, region, mktCap, mktCapUsd) are null because FX pairs aren’t issuer-domiciled instruments. name spells out the two currencies (e.g. "Euro / US Dollar"), falling back to slash form (e.g. "AED/USD") where a currency’s name isn’t known. FX rows also carry base and quote currency codes, with baseName / quoteName where known.
/api/fx is the dedicated endpoint for currency-pair scores and metrics — prefer it when you only need currencies. ?type=fx here suits callers looping over mixed asset types.
Response
This endpoint uses the paginated list envelope:
| Field | Type | Description |
|---|---|---|
count | number | Length of the returned data array (records on this page) |
total | number | Full match count for the same filter, ignoring limit and offset |
limit | number | Echoed input limit |
offset | number | Echoed input offset |
data | array | Array of asset objects |
Each asset object:
| Field | Type | Description |
|---|---|---|
_id | string | MongoDB document ID |
symbol | string | Ticker symbol (e.g. AAPL, BTCUSD) |
name | string | Display name |
isin | string | null | ISIN code (e.g. US0378331005) |
type | string | Asset type: stock, crypto, etf, index, or commodity |
status | string | active, pending, or inactive |
sector | string | null | Sector name (e.g. Technology) |
industry | string | null | Industry name (e.g. Consumer Electronics) |
country | string | null | ISO 3166-1 alpha-2 country code (e.g. US, GB) |
region | string | null | Geographic region derived from country (e.g. North America, Europe) |
universes | string[] | Universes this asset belongs to (e.g. ["bytetrend"]), always present — empty for an asset in no universe. Slugs as listed on Universes |
dimensions | object | Raw and override layers behind the resolved sector / industry / country / region above — see Dimensions on Get Asset |
currency | string | Trading currency (e.g. USD, GBP) |
mktCap | number | null | Market cap in local currency (provider-reported) |
mktCapUsd | number | null | Market cap in USD (from computed metrics) |
byteTrendCapr200w | number | null | Latest Weekly CAPR ByteTrend score (0–5), denormalised from latest metrics |
trendRegimeCapr200w | string | null | Latest Weekly CAPR trend regime: Leading Trend, Emerging Trend, Weakening Trend, Bear Trend, or Neutral |
changeCapr200w | number | null | Day-over-day change in the Weekly CAPR score (−5 to +5) |
{
"count": 3,
"total": 317,
"limit": 500,
"offset": 0,
"data": [
{
"_id": "66f1a2b3c4d5e6f7a8b9c0d1",
"symbol": "AAPL",
"name": "Apple Inc.",
"isin": "US0378331005",
"type": "stock",
"status": "active",
"sector": "Technology",
"industry": "Consumer Electronics",
"country": "US",
"region": "North America",
"universes": ["bytetrend"],
"dimensions": {
"raw": { "sector": "Technology", "industry": "Consumer Electronics", "country": "US" },
"override": { "sector": null, "industry": null, "country": null, "region": null }
},
"currency": "USD",
"mktCap": 3900000000000,
"mktCapUsd": 3900000000000,
"byteTrendCapr200w": 4,
"trendRegimeCapr200w": "Emerging Trend",
"changeCapr200w": 1
},
{
"_id": "66f1a2b3c4d5e6f7a8b9c0d2",
"symbol": "BTCUSD",
"name": "Bitcoin USD",
"isin": null,
"type": "crypto",
"status": "active",
"sector": "Cryptocurrency",
"industry": null,
"country": null,
"region": null,
"currency": "USD",
"mktCap": null,
"mktCapUsd": 1300000000000,
"byteTrendCapr200w": 2,
"trendRegimeCapr200w": "Weakening Trend",
"changeCapr200w": -1
},
{
"_id": "66f1a2b3c4d5e6f7a8b9c0d3",
"symbol": "GCUSD",
"name": "Gold",
"isin": null,
"type": "commodity",
"status": "active",
"sector": null,
"industry": null,
"country": null,
"region": null,
"currency": "USD",
"mktCap": null,
"mktCapUsd": null,
"byteTrendCapr200w": 5,
"trendRegimeCapr200w": "Leading Trend",
"changeCapr200w": 0
}
]
}
Notes
- Results are sorted alphabetically by symbol
mktCapUsd,byteTrendCapr200w,trendRegimeCapr200w, andchangeCapr200ware derived from computed price metrics and may benullif computations have not yet run for an assetmktCapis provider-reported in the asset’s local trading currency; for USD-denominated assets this equalsmktCapUsd- The
total,limit, andoffsetenvelope fields are additive — pre-2026-05-01 callers that only readcountanddataare unaffected. See the Changelog for the cutover note.