Best XI API
Vibe-constrained player pool + lineup aggregate stats · mirrors /best-xi/build interactive surface.
6 credits (pool) · 6 credits (lineup)
Examples captured 2026-06-09 · vibe premier_league_xi · 11-player lineup aggregates verified live.
Pool · 6 credits
POST /api/v1/best-xi/pool
Modes: pool (default) · full (single player_id) · byIds. Supports vibe_id (same presets as /best-xi/build). image_url stripped from responses.
| Response field | Provided by |
|---|---|
| players[] | RT Best XI pool engine |
| vibe_meta | RT vibe catalog |
| mode | Request |
{
"vibe_id": "premier_league_xi",
"accepts": ["GK", "CB", "ST"],
"limit": 30,
"wc2026_only": false,
"min_fee_tier": "T2",
"max_league_tier": 1
}UI exposes vibe + accepts + swap-by-slot; route also supports fee-tier / league-tier filters but build UI does not pass them yet (audit §1.3).
Lineup stats · 6 credits
POST /api/v1/best-xi/lineup
Pass 1–11 player_ids from your pool (or search). Returns aggregate per-90 + lineup_fee_tier — same math as build-page debounced stats.
| Response field | Provided by |
|---|---|
| primary.lineup_fee_tier | RT fee_tier on summed MV |
| primary.avg_rating | RT seasonal stats engine |
| primary.ga_per90 / def_per90 | RT seasonal per-90 |
| secondary | RT aggregates |
| data_coverage | RT QA |
curl -X POST https://api.risingtransfers.com/api/v1/best-xi/lineup \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{"player_ids":[900401,900402,900403,900404,900405,900406,900407,900408,900409,900410,900411],"vibe_id":"premier_league_xi"}'- Not in API: Best XI build-page "AI Verdict" hot take — client mock only (
mock-ai-takes.ts, audit §1.3). - WC26 squad primitives: use
wc2026_onlyon pool · squad data fromvw_wc26_squad_pool(pending full squad ETL).
Entity resolution
RT resolves names to players using its entity index. team_hint helps disambiguate common names.
name (string)player_id (number)team_hint (string, optional)name2 (string, optional · compare flows)
Authentication
- Header:
Authorization: Bearer rt_sk_... - Positive API Wallet balance before each call · charged on successful 2xx responses only
- Response headers:
X-RT-Credits-Charged · X-RT-Wallet-Balance
Create keys at Console → API Keys · Top up at Wallet
Example
curl -X POST https://api.risingtransfers.com/api/v1/best-xi/pool \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{"vibe_id":"premier_league_xi","accepts":["GK","CB","ST"],"limit":5}'