/api/indices/altseason
GETAvailable

Altcoin season index (CoinBoss method)

Altcoin-season index

GET/api/indices/altseason
Share of the tracked large-cap coins that outperformed BTC over the window, computed from our own price history. The coin set and window are CoinBoss choices; values differ from other publishers by construction.

Request

This endpoint takes no parameters.

Example request

curl -s "https://www.coinboss.com/api/indices/altseason"

Response fields

The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.

FieldTypeUnitDescription
successboolean—true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`.
nownumbermsServer time when the response was built.
window_daysnumberdaysLook-back window of the price comparison (90).
currentobject—Current value.
current.valuenumber—Value.
current.seasonstring—`altcoin` when the index is 75 or more, `bitcoin` when 25 or less, otherwise `neutral`.
current.datestring—Calendar date (UTC).
current.outperform_countnumbercountNumber of sample coins whose 90-day price change is higher than BTC's.
current.sample_countnumbercountCoins in the sample: up to 50 top coins by USDT-perpetual 24h volume, excluding stablecoins, pegged and wrapped assets, with 90 days of history.
btc_change_90d_pctnumber%BTC price change over the 90-day window, daily close to daily close.
seriesarray—Time series.
series[]object—Time series.
series[].datestring—Calendar date (UTC).
series[].valuenumber—Value.
series[].samplenumbercountNumber of sample coins with price data on that day; days with fewer than 30 are omitted.
samplesarray—Number of samples.
samples[]object—Number of samples.
samples[].coinstring—Coin symbol, upper case (for example BTC).
samples[].volume_usdnumberUSDVolume in USD notional.
samples[].change_90d_pctnumber%The coin's price change over the 90-day window, daily close to daily close.
samples[].outperformboolean—true when the coin's 90-day change is higher than `btc_change_90d_pct`.

Generated 2026-11-11 23:01 UTC from 1 real responses.

Example response

/api/indices/altseason · Real response captured 2026-11-13 04:03:34 UTC. Long arrays and maps are shortened for display: series had 30 items; samples had 50 items.

  • {
    • "success": true,
    • "now": 1794542587925,
    • "window_days": 90,
    • "current": {
      • "value": 44,
      • "season": "neutral",
      • "date": "2026-11-13",
      • "outperform_count": 22,
      • "sample_count": 50
      },
    • "btc_change_90d_pct": 9.25,
    • "series": [
      • { … 3 },
      • { … 3 }
      ],
    • "samples": [
      • { … 4 },
      • { … 4 }
      ]
    }

Details

Authentication
None. Public endpoint.
Rate limit
1200 requests per minute per IP
Server cache
10m
Edge micro-cache
10s
Update frequency
recomputed on request (10 min cache) from daily klines
Window
current value plus a 30-day daily series; each value uses a 90-day return lookback
Data sources
Computed in-house from exchange perpetual daily klines; not a third-party altseason index.
Exchange coverage
Sample = top 50 perpetual bases by summed 24h volume with at least 90 daily bars; days with fewer than 30 valid samples are skipped.
Sorting
date ascending
Units
percent 0-100 (share of sampled altcoins outperforming BTC)
Method
Share of the 50 highest-volume USDT-perpetual altcoins (stablecoins, wrapped, FX and metal tokens excluded) whose 90-day return beats BTC's; >=75 = altcoin season, <=25 = bitcoin season.
Timestamps
Unix epoch milliseconds (UTC) unless the field description says otherwise
Response format
json
Stability
Stable

Live status

AvailableChecked 2026-11-13 04:03:34 UTCHTTP 2001 msSchema matchesNewest data point 4.1h old

Availability, last 30 days

99.76% of 409 checks passed

Errors

Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →

CodeHTTPMeaningWhat to do
INVALID_PARAM400A required parameter is missing or a value is not accepted. `param` names the parameter when it is known.Do not retry unchanged; fix the request.
UNAUTHORIZED401The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key.Do not retry unchanged.
FORBIDDEN403The route is not part of the public API (internal or account-only).Do not retry.
NOT_FOUND404Unknown route, or the requested coin / exchange / fund does not exist.Do not retry; check the path and identifiers against the catalog.
RATE_LIMITED429More requests than the per-minute limit. `Retry-After` gives the seconds to wait.Wait for `Retry-After`, then retry with backoff.
INTERNAL500Unexpected server error. The message is generic by design; quote `request_id` when reporting it.Retry once after a few seconds; report it with the request id if it persists.
UPSTREAM_FAILED503The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place.Retry with backoff; check the status page.
UNAVAILABLE501 / 503The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet.Retry later; the catalog marks endpoints that are unavailable by design.
REQUEST_FAILED200Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status.Depends on the message; treat as a failed request.

Try it

GET/api/indices/altseasonAvailable
Parameters

No parameters.

Request URLhttps://www.coinboss.com/api/indices/altseason
Choose an endpoint and press “Send request”. The response, headers and timing will appear here.