Zum Inhalt springen
GET /v1/meta

Service metadata

Live testen

10 freie Calls pro Tag — keine Anmeldung, kein API-Key. Geht durchs oanor-Gateway.

Eigene Header (optional)
api.oanor.com/atcoder-api

Funktioniert. Hol dir einen API-Key und nutze sie in deinem Projekt.

API-Key holen

Code-Snippets

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

Beispiel-Response

Echte Antwort dieses Endpoints, erfasst beim letzten Health-Check.

{
    "data": {
        "note": "handle is an AtCoder username (try handle=tourist, the legendary top-rated coder). Unknown handles return 404. Colour tiers: gray (<400), brown, green, cyan, blue, yellow, orange (<2800), red (2800+).",
        "source": "AtCoder public rating history (atcoder.jp/users/{handle}/history/json, live)",
        "service": "atcoder-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/user": "Profile snapshot — current/peak rating, tier, best placing (handle=tourist).",
            "GET /v1/stats": "Aggregated record — averages, wins, podiums, per-year activity (handle=tourist).",
            "GET /v1/history": "Full per-contest rating timeline (handle=tourist, limit=100, rated_only=true optional)."
        },
        "description": "Live competitive-programming rating data from AtCoder, the largest Japanese competitive-programming platform. The contest-rating social view for a coder — rating, colour tier, contest record and performance over time. user = profile snapshot (current and peak rating, AtCoder colour tier gray→red, rated-contest count, best placing, best performance, latest contest); history = the full per-contest rating timeline (date, old/new rating, delta, placing, performance, rated flag); stats = aggregated record (rated vs unrated contests, average and best performance, wins, podiums, rating range, per-year activity). Live, no key, nothing stored. Lookup is by handle.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-12T01:42:38.943Z",
        "request_id": "b3cfa0ed-af7f-4c7f-9d2f-6e5817e63978"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}