# Duolingo Profile & Streak API
> Live public profile and language-learning stats from Duolingo, the world's largest language-learning platform — no key, nothing stored. This is the gamified-learning social view: a learner's XP, daily streak, courses and progress, distinct from every other social platform in the catalogue. The user endpoint returns a profile summary — display name, bio, location, join date, total XP, the current daily streak, the language being learned and the from-language, the current course, Super/Plus status and a course count. The courses endpoint returns the per-language breakdown: every course the learner studies with its title, learning and from languages, XP earned and crown count. The streak endpoint returns the streak detail — the current streak length and, when the learner makes it public, the streak start date and longest streak. Lookup is by username; the official mascot account "duo" is always available. Build streak widgets, learning-accountability bots, language-club leaderboards and profile cards on top of real Duolingo data. Private or non-existent usernames return a clean 404.

## 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/duolingo-api/..."
```

## Pricing
- **Free** (Free) — 18,000 calls/Mo, 3 req/s
- **Starter** ($7/Mo) — 260,000 calls/Mo, 10 req/s
- **Pro** ($19/Mo) — 1,050,000 calls/Mo, 25 req/s
- **Scale** ($42/Mo) — 3,800,000 calls/Mo, 55 req/s

## Endpoints

### User

#### `GET /v1/user` — Profile summary — XP, streak, languages

**Parameters:**
- `username` (query, required, string) — Duolingo username Example: `duo`

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

### Courses

#### `GET /v1/courses` — Per-language course breakdown

**Parameters:**
- `username` (query, required, string) — Duolingo username Example: `duo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/duolingo-api/v1/courses?username=duo"
```

### Streak

#### `GET /v1/streak` — Streak detail — length, longest

**Parameters:**
- `username` (query, required, string) — Duolingo username Example: `duo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/duolingo-api/v1/streak?username=duo"
```

### Meta

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

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


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