Skip to main content
GET
List stablecoins with depeg data and the v3 composite grade
The v3 depeg list with segment pinned to stablecoin server-side — this route cannot return an RWA, and a caller-supplied segment is ignored. Use it when your integration only ever wants stablecoins. If you need both segments from one call, use GET /rwa and pass segment yourself — note those rows do not carry the v3 composite grade this route adds.
Two polarities in one payload. Each row carries the v3 composite grade (risk polarity: A+ ≈ 0 risk, F ≈ 100) and the v2 depeg score. Do not compare them directly. See Score Polarity.

Which tokens are listed

Same default and includeUnenrolled as GET /rwa — see Which tokens are listed. Only tokens Webacy has selected for monitoring are served unless you pass includeUnenrolled=true; pagination.total and aggregates follow the served set.

What counts as a stablecoin

A segment is a category derived from the asset classification fields (asset_class, is_rwa, subclass); it is not one of their values: asset_class = fiat means the token is denominated in a government currency — it is not a statement about what backs the peg. USDC, DAI and USDe are all fiat-denominated and all stablecoins, whether the reserves are cash, over-collateralised crypto or a hedged derivative book.
Do not pass an asset_class value such as fiat or fixed-income to segment. They are different vocabularies: segment is stablecoin or rwa, while each returned row’s asset_class reads fiat, fixed-income, commodity and so on. Every row carries both, so you can see why it matched.
segment = stablecoin is not the same as asset_class = "fiat".A token joins the pegged universe through any one of three signals: asset_class = "fiat", is_rwa = true, or a stable peg behaviour. The third admits tokens that assert a stable peg whose backing is not confirmed, and those deliberately carry no asset_class. They resolve to the stablecoin segment.Read each row’s asset_class to tell a confirmed fiat token ("fiat") from one carrying none (null). A non-trivial minority of stablecoin rows are null, so do not filter client-side on asset_class === "fiat" expecting the full set.

Narrowing by peg mechanism

pegType filters by how the peg is held, which is a separate axis from the segment:
yield-bearing is not a fifth peer of the other four. The first four partition how the peg is defended; yield-bearing answers whether the holder receives yield, so it cuts across them. Treat the five as one selector rather than a clean taxonomy, and do not assume pegType=direct returns every cash-backed token.
A classification outage does not fail closed here. The grades and detail aliases answer 503 when the classification cannot be loaded; this list is served from a cached set of tracked tokens instead, so the same outage yields the last-known list, or an empty one, with 200. The stale flag reflects the pricing snapshot, not the token set, so it will not signal it either. Treat an unexpectedly empty result as unknown rather than as “no stablecoins match”.The 503 in the response list below is the payment path (x402), not a classification failure.
A token with no denomination record falls back to a currency lookup, where the listed fiat codes read direct. Treat direct as “cash-backed or not yet classified” rather than a confirmed reserve model.

Authorizations

x-api-key
string
header
required

Query Parameters

chain
string

Filter by short chain code (e.g. eth, arb, pol, opt, base, bsc, sol).

denomination
string

Filter by denomination code (e.g. USD, EUR, XAU).

tier
enum<string>

Filter by display tier.

Available options:
critical,
warning,
watch,
ok,
premium
pegType
enum<string>

Filter by peg mechanism (denomination.pegType): direct = fiat-backed, collateralized = crypto-backed. A token with no recorded denomination falls back to Webacy's currency mapping, where the listed fiat codes read as direct; one with no denomination at all (a token pending classification, or a currency outside that mapping) is excluded by this filter. Unknown values are ignored.

Available options:
direct,
collateralized,
algorithmic,
derivative-hedged,
yield-bearing
tags
string

Comma-separated token labels: standard, yield, rwa, gold, bridged, vault.

minScore
number

Minimum risk score (0-100).

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

Maximum risk score (0-100).

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

Minimum market cap in USD.

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

Filter by liquidity tier.

Available options:
high,
medium,
low,
very_low
q
string

Substring match on symbol, name, or address.

Maximum string length: 100
sort
enum<string>
default:score
Available options:
score,
symbol,
chain,
tier,
abs_dev_clean,
market_cap_usd,
ts
order
enum<string>
default:desc
Available options:
asc,
desc
showAll
boolean
default:false

When true, also include collapsed/dead tokens, which are hidden by default (the rows collapsedOnly selects on their own). Not the monitoring gate: a token not selected for monitoring is listed only with includeUnenrolled=true.

collapsedOnly
boolean
default:false

When true, return only collapsed/dead tokens (graveyard view).

includeUnenrolled
boolean
default:false

By default the list serves only tokens Webacy has selected for monitoring: those the depeg monitor has ingested (has_monitor_data: true) and selected tokens awaiting their first snapshot (has_monitor_data: false). A classified token that is not selected, or that was taken out of monitoring, is not listed, and showAll does not restore it. When true, every classified token is returned; rows the monitor has not ingested carry has_monitor_data: false and null metrics, a token taken out of monitoring keeps its last data. Only the literal string true enables it.

page
integer
default:1
Required range: x >= 1
pageSize
integer
default:50
Required range: 1 <= x <= 500
grading_scheme
enum<string>
default:v2

Grading scheme to pin — selects the per-category weights and letter-grade band table. Default v2 (alias of v1's weights, standard 11-band grade scale). peg is the peg-loss-focused weighting. v3/v4/peg-liquidity are registered but withheld behind the v3-grading-scheme feature flag. Unknown values return 400 with the supported list.

Available options:
v1,
v2,
peg

Response

Paginated list of pegged tokens with depeg risk data and ecosystem aggregates

items
object[]
required
pagination
object
required
aggregates
object
required

Ecosystem-wide aggregates computed before the view filters. When segment is supplied they describe that segment only (stablecoins or RWAs), since the segment filter is applied before aggregation.

tier_counts
object
required

Post-filter tier counts (after query filters, before pagination).

stale
boolean
required

true when the snapshot is served from the fallback cache during an upstream data outage.

schema_version
string
required
Example:

"3.3"

grades_available
boolean
required

false when the grading pipeline was unavailable for this request (grades are null for that reason).

source
enum<string>

Which cache tier served the snapshot: upstream = read synchronously from the data pipeline, primary = the 1-minute cache, fallback = the 24-hour last-good copy served because the primary path failed, none = no copy was available and the response is empty. fallback and none are always paired with stale: true.

Available options:
upstream,
primary,
fallback,
none
cache_age_seconds
integer | null

Seconds since the served snapshot was written to the cache, computed at response time (about 0 on a fresh upstream read). null when no cached copy was served (source: none) or its write time is unknown. Distinguishes a 6-minute-old fallback from a 23-hour-old one, which stale alone cannot. Not the same signal as the X-Data-Age-Seconds header, which is the age of the data pipeline's snapshot.

Required range: x >= 0