Supra Core API — Public Client Documentation
Chapter 08 — Market Current Endpoint
1. Purpose
GET /api/v1/market/current returns a bounded list of current token/quote market snapshots.
Typical uses:
- market overview tables;
- token discovery;
- activity and volume rankings;
- price-change dashboards;
- selecting a pair for a focused lookup.
It is a derived snapshot endpoint, not a streaming feed.
2. Request
GET /api/v1/market/current
X-API-Key: <api-key>
2.1 Query parameters
| Parameter | Required? | Default or bound | Description |
|---|---|---|---|
network |
No | mainnet |
Public network |
token |
No | None | Exact token metadata |
quote |
No | None | Exact quote-token metadata |
symbol |
No | None | Exact token symbol, case-insensitive |
quote_symbol |
No | None | Exact quote symbol, case-insensitive |
sort |
No | volume_24h_desc |
Allowlisted ordering |
limit |
No | Default 50, maximum 500 |
Maximum rows |
offset |
No | Default 0, maximum 10000 |
Rows skipped |
Values above the documented limit and offset caps are clamped. Invalid integer values return 400.
2.2 Allowed sort values
| Value | Ordering |
|---|---|
volume_24h_desc |
Quote volume descending, then newer activity |
latest_desc |
Newer activity first |
change_24h_desc |
Largest 24-hour change first |
change_24h_asc |
Smallest 24-hour change first |
swaps_24h_desc |
Largest 24-hour swap count first |
Unsupported sort values return 400.
3. Curl Examples
Latest rows:
curl -sS \
-H 'Accept: application/json' \
-H 'X-API-Key: <api-key>' \
'<api-base>/api/v1/market/current?limit=<limit>&offset=<offset>&sort=latest_desc'
Exact token and quote:
curl -sS \
-H 'Accept: application/json' \
-H 'X-API-Key: <api-key>' \
'<api-base>/api/v1/market/current?token=<token-address>"e=<quote-token-address>'
4. Response Shape
The data value is an array. It can be empty.
Illustrative shortened response:
{
"ok": true,
"data": [
{
"network": "mainnet",
"token_metadata": "<token-address>",
"token_symbol": "<token-symbol>",
"quote_token_metadata": "<quote-token-address>",
"quote_token_symbol": "<quote-token-symbol>",
"latest_price": "<decimal-string>",
"change_24h_pct": "<decimal-string-or-null>",
"latest_price_usd": "<decimal-string-or-null>",
"change_24h_usd_pct": "<decimal-string-or-null>",
"change_24h_usd_available": true,
"change_24h_usd_reason": "available",
"price_usd_confidence": "external_derived",
"price_usd_reason": "available",
"usd_valuation_as_of_unix": 0,
"usd_valuation_as_of_utc": "<utc-timestamp-or-null>",
"supra_usd_pair_key": "SUPRA_USDT",
"supra_usd_quote_symbol": "USDT",
"current_supply_onchain": "<decimal-string-or-null>",
"market_cap_usd": "<decimal-string-or-null>",
"fdv_usd": "<decimal-string-or-null>",
"swaps_24h": 0,
"volume_quote_24h": "<decimal-string-or-null>",
"latest_event_time_utc": "<utc-timestamp-or-null>",
"price_time_unix": "<integer-or-null>",
"price_time_utc": "<utc-timestamp-or-null>",
"age_seconds": "<integer-or-null>",
"stale": "<boolean-or-null>",
"stats_as_of_utc": "<utc-timestamp>"
}
],
"meta": {
"api_version": "v1",
"endpoint": "market/current",
"network": "mainnet",
"limit": 50,
"offset": 0,
"sort": "volume_24h_desc",
"count": 1
}
}
5. Public Row Fields
Rows can include:
network;token_metadata,token_symbol,token_decimals;quote_token_metadata,quote_token_symbol,quote_token_decimals;source_scope,dex_scope;latest_price;latest_price_usd,reference_price_usd_24h,change_24h_usd_pct;change_24h_usd_available,change_24h_usd_reason;price_usd_confidence,price_usd_reason,price_usd_pair_stale;usd_valuation_as_of_unix,usd_valuation_as_of_utc,usd_valuation_age_seconds;- current SUPRA USD-target evidence:
supra_usd_price,supra_usd_pair_key,supra_usd_quote_symbol,supra_usd_source,supra_usd_source_confidence,supra_usd_provider_time_unix,supra_usd_observed_at_unix,supra_usd_stale; - 24-hour reference evidence:
reference_pair_stale_24h,reference_supra_usd_pair_key_24h,reference_supra_usd_quote_symbol_24h,reference_supra_usd_stale_24h,reference_price_usd_confidence_24h; change_15m_pct,change_1h_pct,change_4h_pct,change_24h_pct,change_7d_pct;swaps_24h,buys_24h,sells_24h;volume_token_24h,volume_quote_24h;latest_event_time_utc,price_time_unix,price_time_utc,age_seconds,stale;latest_block_height,latest_tx_hash;stats_as_of_utc;- supply evidence:
current_supply_onchain,current_supply_onchain_as_of_unix,current_supply_onchain_as_of_utc,current_supply_onchain_age_seconds,current_supply_onchain_stale,current_supply_onchain_confidence,current_supply_onchain_reason,maximum_supply,maximum_supply_available,maximum_supply_reason; - valuation results:
market_cap_usd,market_cap_available,market_cap_reason,market_cap_supply_basis,fdv_usd,fdv_available,fdv_reason,fdv_supply_basis.
Decimal values can be strings. Fields can be nullable.
6. Interpretation
6.1 Price orientation
latest_price is a pair-derived value that expresses the token in units of the quote token for the represented scopes.
It is not a universal token price and is not automatically a fiat or true USD price.
It is the newest positive, structurally valid exact token/quote price. Volume thresholds and stale age do not replace it
silently with an older candle. If no structurally valid candidate exists, latest_price and price-time fields can be
null. Internal volume thresholds remain quality diagnostics rather than public price-selection rules.
A quote symbol containing USD, USDC, USDT, or similar text identifies an on-chain quote asset. The symbol alone
does not establish that the value equals off-chain USD.
6.2 Freshness
latest_event_time_utcdescribes the newest represented source event.price_time_unixandprice_time_utcidentify the effective timestamp used for the public price.age_secondsis calculated when the API response is produced.staleis true when that age exceeds the documented 72-hour quality threshold.stats_as_of_utcis the network-wide rolling-market calculation clock; it is not the pair's last-trade time.usd_valuation_as_of_*is the separate USD-target valuation clock.current_supply_onchain_as_of_*is the separate on-chain supply observation clock.
Handle a stale price as real but old evidence and a missing structurally valid price as unavailable rather than zero.
The USD-target value combines the persisted pair price with persisted external SUPRA anchor evidence. The current
logical anchor identity can be SUPRA_USDT; this does not declare USD and USDT universally equivalent. Use the
pair/quote provenance fields and confidence/reason fields exactly as returned.
6.3 Scope
Rows can include source_scope and dex_scope. This endpoint does not currently filter by those parameters. Use
market/pair for an exact scoped lookup.
6.4 Percentage changes and external displays
change_24h_pct is pair-denominated. change_24h_usd_pct is the USD-target change and is the appropriate field for a
USD-denominated page. The API never substitutes the pair change when the USD-target change is unavailable. The two
values can legitimately differ because the external SUPRA anchor can change.
market_cap_usd uses current_supply_onchain; market_cap_supply_basis states that basis explicitly. fdv_usd uses
maximum_supply. It does not fall back to current or total supply. Missing price or supply leaves the result null with
its availability and reason fields.
7. Pagination
Use limit and offset. Do not use page_token.
Stop when:
datais empty; or- the returned row count is less than
limit.
Changing activity can affect offset-based pagination. Avoid treating it as an immutable historical snapshot.
8. Empty and Error Results
data=[] with HTTP 200 is a valid result.
| Status | Meaning |
|---|---|
400 |
Invalid parameter or sort |
401 |
Authentication failure |
429 |
Rate limit exceeded |
500 |
Temporary internal error |
9. Client Recommendations
- Cache common pages briefly.
- Keep the key on a trusted backend.
- Preserve decimal strings.
- Show quote symbol and freshness context.
- Do not treat a USD-like quote symbol as proof of true USD valuation.
- Treat nullable market cap and FDV as unavailable, never as zero.
- Do not infer current liquidity or TVL; reserve-backed liquidity is not part of this endpoint.
- Do not poll every row independently.
10. Scope and Data Exposure
The endpoint returns documented current-market rows together with availability, confidence, and freshness fields.
Unavailable values remain null or explicitly flagged according to the field contract.
11. Chapter Summary
Use /api/v1/market/current for bounded current-market listings. Apply exact filters, choose an allowlisted sort,
paginate with limit and offset, preserve decimal precision, and interpret event time separately from snapshot as-of
time.