Quickstart
Treat this like a set. Tick each point as you land it — we keep score in this browser.
Rally tracker · 0/5 points
Sign up as a partner, complete billing, then open API keys and create a live key. Copy it once — we only store a hash.
export PADELRANK_API_KEY="pr_live_..."
curl -s "https://api.padelrank.me/v1/players/maria_s" \
-H "Authorization: Bearer $PADELRANK_API_KEY"New players start with a provisional PadelRank score. The score updates as they play verified matches.
Starter can only read public profiles. Creating a private amateur needs write:players on Pro or Enterprise.
curl -s -X POST "https://api.padelrank.me/v1/players" \
-H "Authorization: Bearer $PADELRANK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "maria_s",
"display_name": "Maria Silva",
"country_code": "PT",
"profile_is_public": false,
"roster_slug": "weeknight-amateurs"
}'Response includes id (UUID) and username.
After four players exist, post a result your platform witnessed:
curl -s -X POST "https://api.padelrank.me/v1/matches" \
-H "Authorization: Bearer $PADELRANK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"external_ref": "your-app-match-9821",
"played_at": "2026-06-16T18:30:00Z",
"winning_team": "A",
"trust_tier": "partner_attested",
"participants": [
{ "username": "maria_s", "team": "A", "court_position": "left" },
{ "username": "joao_p", "team": "A", "court_position": "right" },
{ "username": "ana_r", "team": "B", "court_position": "left" },
{ "username": "pedro_l", "team": "B", "court_position": "right" }
],
"set_scores": [
{
"set_number": 1,
"team_a_games": 6,
"team_b_games": 4,
"game_winners": ["A","A","A","A","B","B","B","B","A","A"]
},
{
"set_number": 2,
"team_a_games": 6,
"team_b_games": 2
}
]
}'Use a unique external_ref per match in your system — retries with the same ref return 409 duplicate_external_ref.