Skip to content
GET /v1/stats

Aggregated record — averages, wins, podiums

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/atcoder-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/atcoder-api/v1/stats" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/atcoder-api/v1/stats", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/atcoder-api/v1/stats");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/atcoder-api/v1/stats",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "wins": 23,
        "handle": "tourist",
        "source": "AtCoder",
        "podiums": 41,
        "platform": "AtCoder",
        "best_delta": 2720,
        "color_tier": "red (legend)",
        "peak_rating": 4229,
        "worst_delta": -82,
        "lowest_rating": 2720,
        "current_rating": 3797,
        "rated_contests": 71,
        "total_contests": 140,
        "avg_performance": 3945.2,
        "best_performance": 4495,
        "contests_by_year": {
            "2016": 6,
            "2017": 10,
            "2018": 10,
            "2019": 11,
            "2020": 8,
            "2021": 5,
            "2022": 4,
            "2023": 5,
            "2024": 5,
            "2025": 6,
            "2026": 1
        }
    },
    "meta": {
        "timestamp": "2026-06-12T01:42:38.147Z",
        "request_id": "f3b7ab96-e959-4245-8a69-9e6d69571f3b"
    },
    "status": "ok",
    "message": "Stats retrieved successfully",
    "success": true
}