---
title: "Altcoin Screener Backtest-Lite validation"
method: GET
path: "/api/v1/gem/validation"
tags: ["Altcoin Screener"]
---

# Altcoin Screener Backtest-Lite validation

`GET /api/v1/gem/validation`

## Request

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

Equal-weight basket of the top-N screener picks, rebalanced every 14 days (`rebalance` block declares anchor and cadence, `phase_spread` the CAGR and vs_btc range across all 14 grid phases plus whether the vs_btc sign holds in every phase — the headline is ONE phase), NET of 10 bps per side on the traded fraction at every rebalance (entry included, BTC benchmark pays the entry fee once, slippage 0 — `cost_model` declares it) vs BTC-Hold and the equal-weight average of all priced candidates. Headline `cagr`/`vs_btc`/`vs_market`/`max_dd`/`win_rate` are net; `cagr_gross`, `vs_btc_gross`, `vs_market_gross`, `cost_drag_pp` sit beside them. `is_anecdote=true` when the curve spans fewer than 84 calendar days. `basis_note` also declares a rung above the priced universe (the `universe` block carries the measured sizes). Free: top-10. Pro+: precomputed N ladder (10/25/50/100/200, same weekly input snapshot and engine per rung); a requested N snaps to the nearest rung — `top_n` names the rung actually used, `basis_note` declares any snap. [Free tier]

## Query parameters

- `top_n` integer

## Response `200`

Net equity curve (basket_gross beside it) + net metrics with gross counterparts and cost_drag_pp + cost_model, rebalance, universe, phase_spread blocks + is_anecdote flag.

- object

## 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)
