# AtCoder Rating & Contest API
> Live competitive-programming rating data from AtCoder, the largest Japanese competitive-programming platform, over its public rating-history feed — no key, nothing stored. This is the contest-rating social view for a coder: their AtCoder rating, colour tier, contest record and performance over time, distinct from the other competitive-programming and developer platforms in the catalogue — AtCoder runs its own AGC/ABC contests, its own rating system and its own community. The user endpoint returns a profile snapshot: current rating, peak rating, the AtCoder colour tier (gray, brown, green, cyan, blue, yellow, orange, red), the number of rated contests, the best placing, the best performance and the latest contest. The history endpoint returns the full per-contest rating timeline — each contest with its date, old and new rating, the rating delta, placing, performance and whether it counted as rated. The stats endpoint aggregates a coder's record: rated versus unrated contests, average and best performance, contest wins, podium finishes, the rating range and per-year activity. Build coder leaderboards, rating cards, contest-tracking bots and recruiting signals on top of real AtCoder data. Lookup is by handle; the legendary handle "tourist" is always available.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/atcoder-api/..."
```

## Pricing
- **Free** (Free) — 16,000 calls/Mo, 3 req/s
- **Starter** ($6/Mo) — 240,000 calls/Mo, 10 req/s
- **Pro** ($17/Mo) — 1,150,000 calls/Mo, 25 req/s
- **Scale** ($40/Mo) — 4,100,000 calls/Mo, 55 req/s

## Endpoints

### User

#### `GET /v1/user` — Profile snapshot — rating, tier, record

**Parameters:**
- `handle` (query, required, string) — AtCoder handle Example: `tourist`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/atcoder-api/v1/user?handle=tourist"
```

### History

#### `GET /v1/history` — Full per-contest rating timeline

**Parameters:**
- `handle` (query, required, string) — AtCoder handle Example: `tourist`
- `limit` (query, optional, string) — Max contests (default 100, max 500) Example: `100`
- `rated_only` (query, optional, string) — Only rated contests (true) Example: `true`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/atcoder-api/v1/history?handle=tourist&limit=100&rated_only=true"
```

### Stats

#### `GET /v1/stats` — Aggregated record — averages, wins, podiums

**Parameters:**
- `handle` (query, required, string) — AtCoder handle Example: `tourist`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/atcoder-api/v1/stats?handle=tourist"
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/atcoder-api/v1/meta"
```


---
Marketplace page: https://www.oanor.com/api/atcoder-api
OpenAPI spec: https://www.oanor.com/api/atcoder-api/openapi.json
