# Imo Official — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Access comprehensive International Mathematical Olympiad data including competition problems, shortlists, results by year, and participant information from the official IMO records. Retrieve hall of fame listings, search for specific competitors, and download problem sets and related materials from past competitions.

**Category:** Education | **Website:** [imo-official.org/](https://imo-official.org/) | **Docs:** [parse.bot/marketplace/d19509f3-c72f-4347-922f-5fb7ceba7125/imo-official-org-api](https://parse.bot/marketplace/d19509f3-c72f-4347-922f-5fb7ceba7125/imo-official-org-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-imo-official-org-api-d19509f3/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### extract_names_from_page

Extract all names of people mentioned on a specific page of the IMO website. Works on pages including the IMO Board, results by year, and other organizational pages. Extracts names from person cards, contestant links, embedded JSON data, and tables.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `path` | string | Yes | Relative path of the page on the IMO website (e.g. 'board/', 'results/individual/year/2024/') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-imo-official-org-api-d19509f3/extract_names_from_page \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"path":"<string>"}'
```

### get_hall_of_fame

Retrieve names from the IMO Hall of Fame using the JSON API. Returns up to 100 contestants per page, sorted by their overall ranking (gold medals, then silver, etc.). The full Hall of Fame contains over 15000 contestants.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `start` | integer | No | Start index for pagination (0, 100, 200, etc.). Each page returns up to 100 names. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-imo-official-org-api-d19509f3/get_hall_of_fame \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start":"<integer>"}'
```

### get_results_by_year

Extract participant names from the IMO individual results page for a specific year. Uses embedded structured data from the results page. Returns all contestants who participated in that year's competition, sorted alphabetically.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `year` | integer | Yes | The competition year to fetch results for (1959 to present, e.g. 2024) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-imo-official-org-api-d19509f3/get_results_by_year \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year":"<integer>"}'
```

### get_shortlists_and_problems

Fetches all IMO competition years and extracts problem PDF download links (in multiple languages) and shortlist PDF URLs for each year. Iterates through all available years (1959-present) on the IMO problems pages. Shortlist URLs are null for years where shortlists are not yet released or unavailable.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-imo-official-org-api-d19509f3/get_shortlists_and_problems \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```
