---
title: "Altcoin Screener rankings (today)"
method: GET
path: "/api/v1/gem/scores"
tags: ["Altcoin Screener"]
---

# Altcoin Screener rankings (today)

`GET /api/v1/gem/scores`

## Request

- Base URL: `https://tradingstrategies.work`
- URL: `https://tradingstrategies.work/api/v1/gem/scores`
- Auth: HTTP bearer

Returns today's ranked list from CoinGecko Top-200, scored by 3 factor groups: A=Mean-Reversion (RSI Z-Score, SMA200 deviation, ATH drawdown), B=Tokenomics (FDV/MC, circulating ratio, volume/MC), C=Market-Structure (BTC correlation, decoupling delta, volume trend). Composite = 33/33/33 equal-weight. Limit tier-capped: Free ≤10, Pro ≤50, Power ≤200. 1h cache. [Free tier]

## Query parameters

- `limit` integer
- `from_rank` integer

## Response `200`

Ranked scores + snapshot date.

- object
  - `scores` object[]
    - `coingecko_id` string
    - `symbol` string
    - `name` string
    - `rank` integer
    - `composite_score` number, nullable
    - `score_a` number, nullable: Mean-Reversion group score 0-100
    - `score_b` number, nullable: Tokenomics group score 0-100
    - `score_c` number, nullable: Market-Structure group score 0-100
    - `has_factor_data` boolean: False if the coin has no price history on Binance or KuCoin (Factors A+C unavailable, score from B alone)
    - `snapshot_date` string, date
    - `plain` string: One-sentence reading: rank with its base (scored_total), composite, factor groups — or which groups are unscored and why. Translation, not assessment.
  - `snapshot_date` string, date, nullable
  - `scored_total` integer: Coins scored on this snapshot date — the base the rank counts against (Top-200 minus stablecoins/tokenized fiat, ~160).
  - `tier` string

## Other responses

- `400`: Invalid input — fehlt Pflichtfeld oder Wert außerhalb des erlaubten Bereichs.
- `401`: Unauthenticated — kein gültiger Bearer-Token im Authorization-Header.
- `403`: Tier-Insufficient — Endpoint braucht höheren API-Tier. Response enthält upgrade_url.
- `404`: Not-Found — Resource existiert nicht oder gehört nicht dem aktuellen User.
- `429`: Rate-Limit überschritten — Tier-Quota (hourly/daily) oder Per-Endpoint-Quota erreicht. Retry-After-Header gesetzt.
- `500`: Internal Error.
- `503`: Upstream-Failure — Datenquelle nicht erreichbar (Binance, EODHD, etc.).

---

[API](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api.md) · [All operations](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tradingstrategies/apis/backtesting-arena-public-api/revisions/f82e8d6eecd7?raw)
