RT Developer

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 fieldProvided by
data.profileRT player registry
data.recent_stats[]RT seasonal stats
data.dnaRT DNA index
summaryRT intelligence engine
meta.entity_idRT 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=narrative for 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 fieldProvided by
data.profileRT player registry
data.dnaRT DNA index
data.statsRT seasonal stats
data.per90_statsRT seasonal + DNA engine
data.percentilesRT 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 position
curl -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.

TierEUR 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

styleStatusPhotoModeCredits
player_cardLiveNot usedSync · ~2s15
stat_ribbonLiveNot usedSync · ~2s15
editorial_coverv0.1.1OptionalAsync · poll40
fifa_viralv0.1.1OptionalAsync · poll40
collagev0.1.1OptionalAsync · poll40

With photo vs without photo

With photo (img2img)

photo_url

HTTPS 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 / dataProvided byOn output
player_idRT entity resolverStable player ID
display_nameRT player registryResolved display name
positionRT player registryCoarse position label
team_nameRT player registryCurrent club name

player_card · data mapped to PNG

Field / dataProvided byOn output
name / club / position / ageRT player registryHeader identity block
goals_per90 · assists_per90 · shots_per90 (ATT)RT seasonal stats3-stat triplet by position
key_passes_per90 · tackles_per90 (MID/DEF)RT seasonal statsPosition-mapped triplet
percentile labelsRT cohort engineP99 / P85 labels on stats
style_tags · narrativeRT DNA indexRT Verdict line + confidence score
appearancesRT seasonal statsSeason sample size (N=)
caption (optional request)Your requestOverrides default user_take (max 60 chars)
verdict_code (optional)Your requestfraud · merchant · cooked

Specifying player data via API

stat_ribbon · live v0.1
You specify
  • 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
RT resolves
  • Stat values + season totals from RT seasonal stats engine
  • Cohort percentiles (same league / position cohort)
  • Position-group default metrics when stats[] omitted
Not allowed
  • Pass fabricated stat values (server validates against RT data)
  • Raw third-party JSON passthrough
Intelligence JSON · live v0.1
You specify
  • 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
RT resolves
  • 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)
Not allowed
  • Row-level raw match feed export
  • Third-party image URLs
  • Raw social post verbatim (Social Pulse returns RT aggregates)
player_card · live v0.1
You specify
  • caption — overrides default user_take (max 60 chars)
  • verdict_code — fraud | merchant | cooked
  • player_name / player_id / team_hint
RT resolves
  • 3-stat triplet by position (ATT/MID/DEF mapping)
  • RT Verdict + confidence from DNA index
  • Identity fields from RT player registry
Not allowed
  • Pick arbitrary stat columns (fixed triplet)
  • Pass custom percentile values
LLM posters · v0.1.1 planned
You specify
  • 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
RT resolves
  • All numeric stat values from RT stats engine
  • RT Decision angle when caption omitted
  • Season context (appearances, league, rating)
Not allowed
  • Pass fabricated stat values
  • Raw third-party data passthrough

stat_ribbon · stats[] columns

Field / dataProvided byOn output
season_name · league_nameRT seasonal statsSeason context header
appearances · minutes · ratingRT seasonal statsMeta row when available
goals · assists totalsRT seasonal totalsFan-facing season totals
highlight lineRT card engineAuto highlight from top percentile
hero_statYour requestHighlights one stats[] column
All valid stats[] keys by position group (24 unique columns)
GK
saves_per90cleansheets_per90goals_conceded_per90punches_per90long_balls_per90ratingpass_accuracy_pctaerials_won_per90
CB
tackles_per90interceptions_per90clearances_per90aerials_won_per90passes_per90shots_blocked_per90duels_won_per90pass_accuracy_pct
FB
tackles_per90crosses_per90key_passes_per90dribbles_per90interceptions_per90ball_recovery_per90aerials_won_per90cross_accuracy_pct
DM
tackles_per90interceptions_per90passes_per90pass_accuracy_pctduels_won_per90ball_recovery_per90long_balls_per90aerials_won_per90
CM
assists_per90goals_per90passes_per90key_passes_per90tackles_per90dribbles_per90pass_accuracy_pctbig_chances_per90
AM
goals_per90assists_per90key_passes_per90big_chances_per90shots_per90dribbles_per90crosses_per90pass_accuracy_pct
W
goals_per90assists_per90dribbles_per90key_passes_per90shots_per90crosses_per90big_chances_per90shots_on_target_per90
CF
goals_per90assists_per90shots_per90shots_on_target_per90big_chances_per90aerials_won_per90dribbles_per90key_passes_per90

LLM posters · extra data fields (v0.1.1)

Field / dataProvided byOn output
RT Decision angleRT Decision engineHeadline + hero metric selection
stats[] ribbon linesRT seasonal statsGoals · assists · key passes · big chances table
take / captionYour request or autoHeadline copy ("He made history!")
event_type (optional)RT topical engineInfluences 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.

FieldNotes
prompt.data_and_styleFeed to your model · stats + layout · no safety guards embedded
safety.instructionsAppend verbatim · face guard + no third-party logos · cannot be stripped
include_attributionOptional · adds suggested "Powered by Rising Transfers" copy in prompt
styleeditorial_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

SurfaceCredits~USD
player / scouting JSON1$0.01
cards/prompt3$0.03
player_card · stat_ribbon15$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"}'

Top up API Wallet →

Player Cards API | Developers | Rising Transfers