Public HTTPS endpoints for live and historical Zephyr protocol data. Read-only, unauthenticated, rate-limited. Base URL: https://zephyrprotocol.com
Endpoints
Asset codes
| Code | Description |
|---|---|
| ZEPH | Zephyr (base PoW asset) |
| ZSD | Zephyr Stable Dollar (USD-pegged stablecoin) |
| ZRS | Zephyr Reserve Share |
| ZYS | Zephyr Yield Share (yield-bearing ZSD wrapper) |
Legacy internal codes (ZEPHUSD → ZSD, ZEPHRSV → ZRS, ZYIELD → ZYS) are accepted as input aliases on query params for backward compatibility, but the public API always returns canonical codes.
Endpoint reference
/api/v1/livestatscache: 30sCurrent protocol state: prices, circulating supplies, reserve ratio, live APY.
Example
curl -sS "https://zephyrprotocol.com/api/v1/livestats" | jqResponse shape
{
"zeph_price": 0.4004,
"zsd_price": 1,
"zrs_price": 0.5084,
"zys_price": 1.8969,
"zsd_rate": 2.4976,
"zrs_rate": 1.2698,
"zeph_circ": 11449154.09,
"zsd_circ": 384749.08,
"zrs_circ": 2104807.83,
"zys_circ": 165636.71,
"zeph_in_reserve": 3633699.91,
"zeph_in_reserve_value": 1454893.04,
"zeph_in_reserve_percent": 0.3173,
"zsd_in_yield_reserve": 314200.00,
"zsd_in_yield_reserve_percent": 0.8168,
"zsd_accrued_in_yield_reserve_from_yield_reward": 198070.12,
"reserve_ratio": 3.781408,
"reserve_ratio_ma": 3.731212,
"zys_current_variable_apy": 9.77,
"zeph_circ_daily_change": 4906.81,
"zsd_circ_daily_change": 96.11,
"zrs_circ_daily_change": 162.31,
"zys_circ_daily_change": 0
}/api/v1/statscache: 30sHistorical protocol time-series at block / hour / day granularity.
Primary endpoint for all historical protocol data — prices, supplies, reserves, DJED mechanics, and conversion activity across every granularity. Block scale can produce very large payloads; prefer daily for historical analysis, hourly for recent detail, and block only for narrow windows. See the /stats reference section below for the full field catalogue, size/latency guidance, and UNIX timestamp helpers.
Query parameters
- scale*
- 'block' | 'hour' | 'day'
- from
- Lower bound. Block height (block scale) or UNIX seconds (hour/day).
- to
- Upper bound. Block height (block scale) or UNIX seconds (hour/day).
- fields
- Comma-separated subset of fields to return. Accepts canonical or legacy names. See the full field catalogue in the /stats reference section below.
Example
curl -sS "https://zephyrprotocol.com/api/v1/stats?scale=day&from=1774443849&fields=zsd_circ_close,reserve_ratio_close,zeph_in_reserve_close,zeph_price_close" | jqResponse shape
// scale=block → [{ block_height, data: ProtocolStats }]
// scale=hour|day → [{ timestamp, data: AggregatedData }]
[
{
"timestamp": 1776841200,
"data": {
"zsd_circ_close": 384748.03,
"reserve_ratio_close": 3.787,
"zeph_in_reserve_close": 3633697.52,
"zeph_price_close": 0.40098
}
}
]/api/v1/pricingrecordscache: 30sPer-block pricing records (ZEPH price, ZSD/ZRS rates, ZYS price).
Query parameters
- from
- Starting block height.
- to
- Ending block height.
- limit
- Max rows, or 'all'. Default all matching.
- order
- 'asc' | 'desc'. Default asc.
Example
curl -sS "https://zephyrprotocol.com/api/v1/pricingrecords?from=759700&to=759710" | jqResponse shape
{
"total": 11,
"limit": null,
"order": "asc",
"results": [
{
"block_height": 759700,
"timestamp": 1776892420,
"zeph_price": 0.38345812,
"zeph_price_ma": 0.39459499,
"zrs_rate": 1.24962341,
"zrs_rate_ma": 1.2626356,
"zsd_rate": 2.60784671,
"zsd_rate_ma": 2.53473939,
"zys_price": 1.89684808
}
]
}/api/v1/txscache: 30sConversion transactions (mint/redeem ZRS/ZSD/ZYS).
Query parameters
- from / to
- UNIX seconds timestamp range.
- types
- Comma-separated conversion types: mint_zrs, redeem_zrs, mint_zsd, redeem_zsd, mint_zys, redeem_zys. Legacy names (mint_reserve, mint_stable, mint_yield) also accepted.
- limit
- Rows per page, or 'all' for unpaginated.
- offset
- Pagination offset.
- page / pageSize
- Page-based pagination alternative.
- order
- 'asc' | 'desc'. Default desc.
Example
curl -sS "https://zephyrprotocol.com/api/v1/txs?limit=5&order=desc&types=mint_zsd,redeem_zsd" | jqResponse shape
{
"total": 6004,
"limit": 5,
"offset": 0,
"order": "desc",
"next_offset": 5,
"prev_offset": null,
"results": [
{
"hash": "fa781ea6...",
"block_height": 759650,
"block_timestamp": 1776887802,
"conversion_type": "mint_zsd",
"conversion_rate": 1.26422405,
"from_asset": "ZEPH",
"from_amount": 0.5468,
"from_amount_atoms": "546800000000",
"to_asset": "ZSD",
"to_amount": 0.428193087072,
"to_amount_atoms": "428193087072",
"conversion_fee_asset": "ZSD",
"conversion_fee_amount": 0.00432518,
"tx_fee_asset": "ZEPH",
"tx_fee_amount": 0.0012,
"tx_fee_atoms": "1200000000"
}
]
}/api/v1/blockrewardscache: 30sPer-block reward splits: miner / governance / reserve / yield.
Query parameters
- from
- Starting block height.
- to
- Ending block height.
- limit
- Max rows, or 'all'.
- order
- 'asc' | 'desc'.
Example
curl -sS "https://zephyrprotocol.com/api/v1/blockrewards?from=759700&to=759705" | jqResponse shape
{
"total": 6,
"limit": null,
"order": "asc",
"results": [
{
"height": 759700,
"miner_reward": 4.428422583339,
"governance_reward": 0,
"reserve_reward": 2.043887346155,
"yield_reward": 0.340647891025,
"miner_reward_atoms": "4428422583339",
"governance_reward_atoms": "0",
"reserve_reward_atoms": "2043887346155",
"yield_reward_atoms": "340647891025",
"base_reward_atoms": "6812957820519",
"fee_adjustment_atoms": "0"
}
]
}/api/v1/reservesnapshotscache: 30sDaemon reserve snapshots captured at periodic block heights (raw on-chain state).
Query parameters
- height
- Exact previous_height filter.
- from / to
- previous_height range.
- limit
- Max rows.
- order
- 'asc' | 'desc'.
Example
curl -sS "https://zephyrprotocol.com/api/v1/reservesnapshots?limit=1&order=desc" | jqResponse shape
{
"total": 439,
"limit": 1,
"order": "desc",
"results": [
{
"captured_at": "2026-02-20T13:20:14.687Z",
"reserve_height": 715671,
"previous_height": 715670,
"hf_version": 11,
"on_chain": {
"zeph_reserve_atoms": "3182975168345075098",
"zeph_reserve": 3182975.17,
"zsd_circ_atoms": "463194386389393308",
"zsd_circ": 463194.39,
"zrs_circ_atoms": "1697421751995011876",
"zrs_circ": 1697421.75,
"zys_circ_atoms": "211151867349016378",
"zys_circ": 211151.87,
"zsd_yield_reserve_atoms": "392556853563445393",
"zsd_yield_reserve": 392556.85,
"reserve_ratio_atoms": "4.024603",
"reserve_ratio": 4.024603,
"reserve_ratio_ma_atoms": "4.031144",
"reserve_ratio_ma": 4.031144
},
"pricing_record": { /* ... */ }
}
]
}/api/v1/apyhistorycache: 30sDaily effective APY on ZYS, from yield start (Oct 2024) to present.
Example
curl -sS "https://zephyrprotocol.com/api/v1/apyhistory" | jqResponse shape
[
{
"timestamp": 1728864000,
"block_height": 360000,
"return": 80.6219,
"zys_price": 1.814675933782327
}
]/api/v1/zyspricehistorycache: 30sPer-block ZYS price history (price in atomic units, 12 decimals).
Example
curl -sS "https://zephyrprotocol.com/api/v1/zyspricehistory" | jqResponse shape
[
{
"timestamp": 1728819553,
"block_height": 360000,
"zys_price": 1000000000000
}
]/api/v1/historicalreturnscache: 30sRolling ZYS returns over canonical timeframes.
Example
curl -sS "https://zephyrprotocol.com/api/v1/historicalreturns" | jqResponse shape
{
"lastBlock": { "return": 0.0000427, "zsd_accrued": 0.13, "effectiveApy": 11.70 },
"oneDay": { "return": 0.0306, "zsd_accrued": 96.12, "effectiveApy": 11.64 },
"oneWeek": { "return": 0.2116, "zsd_accrued": 659.89, "effectiveApy": 11.48 },
"oneMonth": { "return": 0.9480, "zsd_accrued": 3002.40, "effectiveApy": 11.99 },
"threeMonths": { "return": 3.3929, "zsd_accrued": 11466.39, "effectiveApy": 14.28 },
"oneYear": { "return": 34.1197, "zsd_accrued": 74524.05, "effectiveApy": 34.12 },
"allTime": { "return": 89.6883, "zsd_accrued": 198070.12, "effectiveApy": 51.43 }
}/api/v1/projectedreturnscache: 30sForward-looking ZYS return projections (low / simple / high scenarios).
Example
curl -sS "https://zephyrprotocol.com/api/v1/projectedreturns" | jqResponse shape
{
"oneWeek": { "low": { "zys_price": 1.8972, "return": 0.01 },
"simple": { "zys_price": 1.8975, "return": 0.03 },
"high": { "zys_price": 1.8989, "return": 0.11 } },
"oneMonth": { /* ... */ },
"threeMonths": { /* ... */ },
"sixMonths": { /* ... */ },
"oneYear": { /* ... */ }
}/stats reference
This is the primary endpoint for all historical protocol data — prices, supplies, reserves, DJED mechanics, and conversion activity at block, hour, or day granularity.
UNIX timestamp helpers
The from / to params take UNIX seconds on hour/day scale. Copy a value and paste into your URL.
Response size & latency guidance
Block-scale responses grow linearly with range and dominate payload size. For historical analysis use daily; for recent detail use hourly; use block only for narrow windows.
Measuring against this environment…
Always filter with fields= when you only need specific columns — it roughly halves payload size for a 4-field subset.
Available fields
Fields marked OHLC take _open | _close | _high | _low suffixes on scale=hour|day, e.g. zsd_circ_close. On scale=block they appear as a single value (no suffix).
Identifiers
| block_height | Block height (block scale only). |
| block_timestamp | UNIX timestamp of the block (block scale only). |
| timestamp | UNIX timestamp of the bucket start (aggregated scale only; outer envelope, not inside 'data'). |
| window_start / window_end | Timestamps of the aggregation bucket (aggregated scale only). |
Prices
OHLC on hour/day scale; singular on block scale.
| zeph_priceOHLC | ZEPH price in USD (spot). |
| zeph_price_maOHLC | ZEPH price moving average in USD. |
| zsd_rateOHLC | ZSD price in ZEPH. |
| zsd_rate_maOHLC | ZSD-in-ZEPH MA. |
| zrs_rateOHLC | ZRS price in ZEPH. |
| zrs_rate_maOHLC | ZRS-in-ZEPH MA. |
| zys_priceOHLC | ZYS price in ZSD. |
Supplies
OHLC on hour/day; singular on block.
| zeph_circOHLC | ZEPH circulating supply. |
| zsd_circOHLC | ZSD circulating supply. |
| zrs_circOHLC | ZRS circulating supply. |
| zys_circOHLC | ZYS circulating supply. |
Reserves
OHLC on hour/day; singular on block.
| zeph_in_reserveOHLC | ZEPH locked in the DJED reserve. |
| zeph_in_reserve_atoms | ZEPH in reserve as atomic-units string (block scale only). |
| zsd_in_yield_reserveOHLC | ZSD held in the yield reserve. |
DJED mechanics
OHLC on hour/day; singular on block.
| assetsOHLC | Assets (USD value of reserve). |
| assets_maOHLC | Assets MA. |
| liabilitiesOHLC | Liabilities (ZSD outstanding in USD). |
| equityOHLC | Equity = assets - liabilities. |
| equity_maOHLC | Equity MA. |
| reserve_ratioOHLC | assets / liabilities. |
| reserve_ratio_maOHLC | Reserve ratio MA. |
Yield accounting (block scale only)
| zsd_accrued_in_yield_reserve_from_yield_reward | Lifetime ZSD added to the yield reserve from ZYS yield rewards. |
| zsd_minted_for_yield | Lifetime ZSD minted directly for yield distribution. |
Conversion activity (per-interval totals, same on every scale)
| conversion_transactions_count | Total conversion txs in the interval. |
| yield_conversion_transactions_count | Yield-related conversion txs in the interval. |
| mint_zrs_count / mint_zrs_volume | ZRS mint txs / ZEPH volume burned. |
| redeem_zrs_count / redeem_zrs_volume | ZRS redeem txs / ZRS volume burned. |
| mint_zsd_count / mint_zsd_volume | ZSD mint txs / ZEPH volume burned. |
| redeem_zsd_count / redeem_zsd_volume | ZSD redeem txs / ZSD volume burned. |
| mint_zys_count / mint_zys_volume | ZYS mint txs / ZSD volume burned. |
| redeem_zys_count / redeem_zys_volume | ZYS redeem txs / ZYS volume burned. |
| fees_zeph / fees_zsd / fees_zrs / fees_zys / fees_zsd_yield | Conversion fees paid in each asset, this interval. |
Versioning & stability
All public endpoints live under /api/v1/. Breaking changes will ship under a new version prefix (e.g. /api/v2/) with overlap. Field additions are non-breaking and may appear without notice.
Rate limits apply per IP. Please cache responses client-side where practical — the server-side cache TTL listed per endpoint reflects the minimum useful polling interval.