Player Cards
One product · four surfaces: lightweight JSON profile, full scouting stats, RT-rendered PNG cards, or composable image prompts for your own model.
JSON 1 cr · Card prompt 3 cr · Generate standard 15 cr · Generate hd 40 cr (v0.1.1)
Player profile · JSON
POST /api/v1/intelligence/player · 1 credit
Cheapest JSON entry: identity, latest seasonal row, DNA style_tags, and a one-line RT summary. Use before generating cards or writing copy — you send player identity; RT resolves all stat values server-side.
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)
Response fields
| Response field | Provided by |
|---|---|
| data.profile | RT player registry |
| data.recent_stats[] | RT seasonal stats |
| data.dna | RT DNA index |
| summary | RT intelligence engine |
| meta.entity_id | RT entity resolver |
curl -X POST https://api.risingtransfers.com/api/v1/intelligence/player \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{"name":"Erling Haaland","team_hint":"Manchester City"}'- Add
?enhance=narrativefor an optional narrative paragraph (same 1 credit). - Need the full per-90 grid? Jump to Scouting report below (also 1 cr).
Scouting report · JSON
POST /api/v1/intelligence/scouting · 1 credit
Widest JSON stat payload in v0.1: profile + DNA narrative + flat per90_stats map + percentile labels. Same column keys as stats[] on stat_ribbon cards.
Response fields
| Response field | Provided by |
|---|---|
| data.profile | RT player registry |
| data.dna | RT DNA index |
| data.stats | RT seasonal stats |
| data.per90_stats | RT seasonal + DNA engine |
| data.percentiles | RT cohort engine |
Per-90 column keys (sample)
aerials_won_per90assists_per90ball_recovery_per90big_chances_per90cleansheets_per90clearances_per90cross_accuracy_pctcrosses_per90dribbles_per90duels_won_per90goals_conceded_per90goals_per90+ more by positioncurl -X POST https://api.risingtransfers.com/api/v1/intelligence/scouting \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{"name":"Declan Rice","team_hint":"Arsenal"}'fee_tier in your UI
Prefer fee_tier (T1–T5) over any legacy market-value fields. DNA Search and Alternatives apply fee_tier masking server-side.
| Tier | EUR band |
|---|---|
| T1 | < €10M |
| T2 | €10M–€30M |
| T3 | €30M–€60M |
| T4 | €60M–€100M |
| T5 | > €100M |
Match context
Recent fixtures, predicted lineups, and pre-match signals are not a standalone intelligence/lineups endpoint in v2. They fold into Match Intelligence (POST /api/v1/match-intelligence · 6 credits) — RT-wrapped fixture skeleton plus derby_kind, competition_tier, and headline signals. Use player/scouting JSON above for per-player match stats on cards.
Card generate · PNG
POST /api/v1/cards · RT renders PNG · watermark on sync output
Programmatic cards from RT seasonal stats and DNA verdicts. Sync styles return in ~2s; hd LLM posters (v0.1.1) are async poll.
Styles you can request
| style | Status | Photo | Mode | Credits |
|---|---|---|---|---|
| player_card | Live | Not used | Sync · ~2s | 15 |
| stat_ribbon | Live | Not used | Sync · ~2s | 15 |
| editorial_cover | v0.1.1 | Optional | Async · poll | 40 |
| fifa_viral | v0.1.1 | Optional | Async · poll | 40 |
| collage | v0.1.1 | Optional | Async · poll | 40 |
With photo vs without photo
With photo (img2img)
photo_urlHTTPS URL or multipart upload (v0.1.1). User action photo composited with RT stats + LLM layout — same as /make upload.
"photo_url": "https://your-cdn.com/action-shot.jpg"
Without photo (silhouette / data-only)
omit photo_url · photo_mode: "silhouette"No user image. RT renders stats + headline on silhouette / abstract layout (face-guard). Sync player_card / stat_ribbon never need a photo.
"photo_mode": "silhouette"
Response · player block (all styles)
| Field / data | Provided by | On output |
|---|---|---|
| player_id | RT entity resolver | Stable player ID |
| display_name | RT player registry | Resolved display name |
| position | RT player registry | Coarse position label |
| team_name | RT player registry | Current club name |
player_card · data mapped to PNG

| Field / data | Provided by | On output |
|---|---|---|
| name / club / position / age | RT player registry | Header identity block |
| goals_per90 · assists_per90 · shots_per90 (ATT) | RT seasonal stats | 3-stat triplet by position |
| key_passes_per90 · tackles_per90 (MID/DEF) | RT seasonal stats | Position-mapped triplet |
| percentile labels | RT cohort engine | P99 / P85 labels on stats |
| style_tags · narrative | RT DNA index | RT Verdict line + confidence score |
| appearances | RT seasonal stats | Season sample size (N=) |
| caption (optional request) | Your request | Overrides default user_take (max 60 chars) |
| verdict_code (optional) | Your request | fraud · merchant · cooked |
Specifying player data via API
- stats[] — 1–6 metric column keys (e.g. goals_per90, key_passes_per90)
- hero_stat — which stats[] column to highlight
- caption — overlay text, max 60 chars
- player_name / player_id / team_hint — entity resolve
- Stat values + season totals from RT seasonal stats engine
- Cohort percentiles (same league / position cohort)
- Position-group default metrics when stats[] omitted
- Pass fabricated stat values (server validates against RT data)
- Raw third-party JSON passthrough
- name / player_id / team_hint — entity resolve
- filters on dna-search — max_fee_tier · max_age · league_tier_max · position_group
- ?enhance=narrative — optional narrative paragraph
- All per-90 values from RT seasonal + DNA engines
- Cohort percentiles and match ratings in scouting payload
- fee_tier masking on DNA Search (T1–T5 replaces exact EUR)
- Row-level raw match feed export
- Third-party image URLs
- Raw social post verbatim (Social Pulse returns RT aggregates)
- caption — overrides default user_take (max 60 chars)
- verdict_code — fraud | merchant | cooked
- player_name / player_id / team_hint
- 3-stat triplet by position (ATT/MID/DEF mapping)
- RT Verdict + confidence from DNA index
- Identity fields from RT player registry
- Pick arbitrary stat columns (fixed triplet)
- Pass custom percentile values
- style — editorial_cover | fifa_viral | collage
- stats[] — which metrics appear on ribbon / table
- hero_stat — headline stat
- caption / take — headline copy (max 60 chars)
- photo_url — optional photo input
- photo_mode — silhouette when no photo
- All numeric stat values from RT stats engine
- RT Decision angle when caption omitted
- Season context (appearances, league, rating)
- Pass fabricated stat values
- Raw third-party data passthrough
stat_ribbon · stats[] columns
| Field / data | Provided by | On output |
|---|---|---|
| season_name · league_name | RT seasonal stats | Season context header |
| appearances · minutes · rating | RT seasonal stats | Meta row when available |
| goals · assists totals | RT seasonal totals | Fan-facing season totals |
| highlight line | RT card engine | Auto highlight from top percentile |
| hero_stat | Your request | Highlights one stats[] column |
All valid stats[] keys by position group (24 unique columns)
saves_per90cleansheets_per90goals_conceded_per90punches_per90long_balls_per90ratingpass_accuracy_pctaerials_won_per90tackles_per90interceptions_per90clearances_per90aerials_won_per90passes_per90shots_blocked_per90duels_won_per90pass_accuracy_pcttackles_per90crosses_per90key_passes_per90dribbles_per90interceptions_per90ball_recovery_per90aerials_won_per90cross_accuracy_pcttackles_per90interceptions_per90passes_per90pass_accuracy_pctduels_won_per90ball_recovery_per90long_balls_per90aerials_won_per90assists_per90goals_per90passes_per90key_passes_per90tackles_per90dribbles_per90pass_accuracy_pctbig_chances_per90goals_per90assists_per90key_passes_per90big_chances_per90shots_per90dribbles_per90crosses_per90pass_accuracy_pctgoals_per90assists_per90dribbles_per90key_passes_per90shots_per90crosses_per90big_chances_per90shots_on_target_per90goals_per90assists_per90shots_per90shots_on_target_per90big_chances_per90aerials_won_per90dribbles_per90key_passes_per90LLM posters · extra data fields (v0.1.1)
| Field / data | Provided by | On output |
|---|---|---|
| RT Decision angle | RT Decision engine | Headline + hero metric selection |
| stats[] ribbon lines | RT seasonal stats | Goals · assists · key passes · big chances table |
| take / caption | Your request or auto | Headline copy ("He made history!") |
| event_type (optional) | RT topical engine | Influences tone + style auto-pick on /make |
Generate examples
curl -X POST https://api.risingtransfers.com/api/v1/cards \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{"player_name":"Erling Haaland","style":"player_card"}'Watermark
RT-rendered sync responses include watermark: true and a risingtransfers.com/api corner mark on the PNG. Paid tiers may remove watermark (see Wallet tiers).
Card prompt · Composable
POST /api/v1/cards/prompt · 3 credits · no PNG returned
AI-native Composable layer: RT returns a structured image prompt (player data + style instructions) plus a mandatory safety.instructions block. You run your own Nano Banana / GPT-Image pipeline — RT does not render or watermark your output.
| Field | Notes |
|---|---|
| prompt.data_and_style | Feed to your model · stats + layout · no safety guards embedded |
| safety.instructions | Append verbatim · face guard + no third-party logos · cannot be stripped |
| include_attribution | Optional · adds suggested "Powered by Rising Transfers" copy in prompt |
| style | editorial_cover · fifa_viral · collage |
curl -X POST https://api.risingtransfers.com/api/v1/cards/prompt \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{
"player_name": "Bruno Fernandes",
"style": "editorial_cover",
"user_take": "He made history!",
"include_attribution": true
}'Anonymous demo: same as other endpoints · X-RT-Demo-Channel: mcp | openclaw | custom-gpt · 15 calls/day/IP.
Credits & billing
| Surface | Credits | ~USD |
|---|---|---|
| player / scouting JSON | 1 | $0.01 |
| cards/prompt | 3 | $0.03 |
| player_card · stat_ribbon | 15 | $0.15 |
| editorial_cover (generate hd) | 40 | $0.40 |
| fifa_viral (generate hd) | 40 | $0.40 |
| collage (generate hd) | 40 | $0.40 |
Billing
- Sync calls charge only on HTTP 200 with a valid image URL (Cards) or success payload (JSON).
- 4xx client errors are never charged · 5xx server errors are never charged.
- Async card jobs (v0.1.1) reserve credits at queue time · failed jobs refund reserved credits.
Data & usage policy
RT Developer API returns processed football intelligence — seasonal per-90 metrics, cohort percentiles, DNA similarity, verdicts, and shareable PNG cards. You send player identity and options; RT resolves all stat values server-side.
Underlying match and seasonal statistics are licensed from third-party sports data providers and transformed by RT. Display RT as the data source in your integration; follow your agreement if provider attribution is required.
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/intelligence/player \
-H "Authorization: Bearer rt_sk_..." \
-H "Content-Type: application/json" \
-d '{"name":"Erling Haaland","team_hint":"Manchester City"}'