# 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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/imo-official/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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/credits/imo-official/extract-names-from-page \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/imo-official/get-hall-of-fame \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/imo-official/get-results-by-year \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/imo-official/get-shortlists-and-problems \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.