Skip to content
GET /v1/history

Full per-contest rating timeline

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/history" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/atcoder-api/v1/history", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/atcoder-api/v1/history");
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/history",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

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

{
    "data": {
        "count": 71,
        "handle": "tourist",
        "source": "AtCoder",
        "history": [
            {
                "date": "2016-09-04T22:50:00+09:00",
                "delta": 2720,
                "place": 2,
                "contest": "AtCoder Grand Contest 004",
                "is_rated": true,
                "new_rating": 2720,
                "old_rating": 0,
                "performance": 3920
            },
            {
                "date": "2016-09-11T22:40:00+09:00",
                "delta": 131,
                "place": 3,
                "contest": "AtCoder Regular Contest 061",
                "is_rated": true,
                "new_rating": 2851,
                "old_rating": 2720,
                "performance": 3200
            },
            {
                "date": "2016-09-24T23:00:00+09:00",
                "delta": 517,
                "place": 1,
                "contest": "CODE FESTIVAL 2016 qual A",
                "is_rated": true,
                "new_rating": 3368,
                "old_rating": 2851,
                "performance": 4310
            },
            {
                "date": "2016-10-01T22:50:00+09:00",
                "delta": 279,
                "place": 1,
                "contest": "AtCoder Grand Contest 005",
                "is_rated": true,
                "new_rating": 3647,
                "old_rating": 3368,
                "performance": 4391
            },
            {
                "date": "2016-11-26T15:30:00+09:00",
                "delta": 155,
                "place": 1,
                "contest": "CODE FESTIVAL 2016 Final",
                "is_rated": true,
                "new_rating": 3802,
                "old_rating": 3647,
                "performance": 4356
            },
            {
                "date": "2016-11-28T15:00:00+09:00",
                "delta": 32,
                "place": 2,
                "contest": "CODE FESTIVAL 2016 Grand Final",
                "is_rated": true,
                "new_rating": 3834,
                "old_rating": 3802,
                "performance": 4017
            },
            {
                "date": "2017-01-22T23:00:00+09:00",
                "delta": -28,
                "place": 5,
                "contest": "AtCoder Grand Contest 009",
                "is_rated": true,
                "new_rating": 3806,
                "old_rating": 3834,
                "performance": 3687
            },
            {
                "date": "2017-02-04T22:50:00+09:00",
                "delta": 54,
                "place": 2,
                "contest": "AtCoder Grand Contest 010",
                "is_rated": true,
                "new_rating": 3860,
                "old_rating": 3806,
                "performance": 4152
            },
            {
                "date": "2017-02-25T23:00:00+09:00",
                "delta": 89,
                "place": 1,
                "contest": "Mujin Programming Challeng
…