# Path of Exile API
> Path of Exile game reference data as an API, straight from Grinding Gear Games' public endpoints. List the current leagues (Standard, Hardcore, the temporary challenge league and their Solo-Self-Found and Ruthless variants) with their rules and dates. Browse the full item catalogue — every base type and unique item across Accessories, Armour, Weapons, Gems, Currency, Divination Cards, Flasks, Jewels and Maps — search it by name and filter to uniques only or to a category, or look up a single item. List the item categories with counts, and search the trade modifier-stat dictionary (the affixes you can search for in trade) by text. Real game data, no key needed upstream. Ideal for trade and crafting tools, loot filters, build planners and Path of Exile fan sites.

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

## Pricing
- **Free** (Free) — 10,600 calls/Mo, 2 req/s
- **Starter** ($3/Mo) — 144,000 calls/Mo, 8 req/s
- **Pro** ($16/Mo) — 745,000 calls/Mo, 25 req/s
- **Mega** ($58/Mo) — 3,440,000 calls/Mo, 50 req/s

## Endpoints

### Path of Exile

#### `GET /v1/categories` — Item categories with counts

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

**Response:**
```json
{
    "data": {
        "count": 20,
        "categories": [
            {
                "name": "Accessories",
                "items": 382
            },
            {
                "name": "Armour",
                "items": 1036
            },
            {
                "name": "Cards",
                "items": 464
            },
            {
                "name": "Currency",
                "items": 666
            },
            {
                "name": "Flasks",
                "items": 86
            },
            {
                "name": "Gems",
                "items": 860
            },
            {
                "name": "Jewels",
                "items": 201
            },
            {
                "name": "Maps",
                "items": 615
            },
            {
                "name": "Weapons",
                "items": 711
            },
            {
                "name": "Leaguestones",
                "items": 16
            },
            {
                "name": "Itemised Monsters",
                "items": 358
            },
            {
                "name": "Heist Equipment",
                "items": 56
            },
            {
                "name": "Heist Mission",
                "items": 28
            },
            {
                "name": "Expedition Logbooks",
                "items": 1
            },
            {
                "name": "Sanctum",
                "items": 22
            },
            {
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/item` — A single item by name

**Parameters:**
- `name` (query, required, string) — Item name, e.g. Headhunter Example: `Headhunter`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/poe-api/v1/item?name=Headhunter"
```

**Response:**
```json
{
    "data": {
        "item": {
            "name": "Headhunter",
            "type": "Leather Belt",
            "unique": true,
            "category": "Accessories",
            "prophecy": false
        }
    },
    "meta": {
        "timestamp": "2026-06-08T01:18:24.874Z",
        "request_id": "740befac-d163-46a4-ab2c-1314d39c2dd9"
    },
    "status": "ok",
    "message": "Item retrieved successfully",
    "success": true
}
```

#### `GET /v1/items` — Search & filter the item catalogue

**Parameters:**
- `q` (query, optional, string) — Name contains, e.g. tabula Example: `tabula`
- `category` (query, optional, string) — Category, e.g. Armour
- `unique` (query, optional, string) — Set 1 for unique items only
- `limit` (query, optional, string) — Max results (default 50, max 300) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/poe-api/v1/items?q=tabula&limit=50"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "items": [
            {
                "name": "Tabula Rasa",
                "type": "Simple Robe",
                "unique": true,
                "category": "Armour",
                "prophecy": false
            }
        ],
        "total": 1
    },
    "meta": {
        "timestamp": "2026-06-08T01:18:24.968Z",
        "request_id": "7d3a9d46-22fb-4de0-b016-050c745f52b9"
    },
    "status": "ok",
    "message": "Items retrieved successfully",
    "success": true
}
```

#### `GET /v1/leagues` — Current leagues

**Parameters:**
- `realm` (query, optional, string) — pc | xbox | sony Example: `pc`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/poe-api/v1/leagues?realm=pc"
```

**Response:**
```json
{
    "data": {
        "count": 16,
        "realm": "pc",
        "leagues": [
            {
                "id": "Standard",
                "realm": "pc",
                "rules": [],
                "ends_at": null,
                "starts_at": "2013-01-23T21:00:00Z",
                "description": "The default game mode."
            },
            {
                "id": "Hardcore",
                "realm": "pc",
                "rules": [
                    "Hardcore"
                ],
                "ends_at": null,
                "starts_at": "2013-01-23T21:00:00Z",
                "description": "A character killed in the Hardcore league is moved to the Standard league."
            },
            {
                "id": "Solo Self-Found",
                "realm": "pc",
                "rules": [
                    "Solo"
                ],
                "ends_at": null,
                "starts_at": "2013-01-23T21:00:00Z",
                "description": "SSF Standard"
            },
            {
                "id": "Hardcore SSF",
                "realm": "pc",
                "rules": [
                    "Hardcore",
                    "Solo"
                ],
                "ends_at": null,
                "starts_at": "2013-01-23T21:00:00Z",
                "description": "SSF Hardcore"
            },
            {
                "id": "Ruthless",
                "realm": "pc",
                "rules": [
                    "Ruthless"
           
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/stats` — Search modifier stats

**Parameters:**
- `q` (query, optional, string) — Stat text, e.g. maximum life Example: `maximum life`
- `type` (query, optional, string) — Pseudo | Explicit | Implicit | …
- `limit` (query, optional, string) — Max results (default 50) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/poe-api/v1/stats?q=maximum+life&limit=50"
```

**Response:**
```json
{
    "data": {
        "count": 50,
        "stats": [
            {
                "id": "pseudo.pseudo_total_life",
                "text": "+# total maximum Life",
                "type": "Pseudo"
            },
            {
                "id": "explicit.stat_3299347043",
                "text": "+# to maximum Life",
                "type": "Explicit"
            },
            {
                "id": "explicit.stat_983749596",
                "text": "#% increased maximum Life",
                "type": "Explicit"
            },
            {
                "id": "explicit.stat_770672621",
                "text": "Minions have #% increased maximum Life",
                "type": "Explicit"
            },
            {
                "id": "explicit.stat_3819827377",
                "text": "Added Small Passive Skills also grant: +# to Maximum Life",
                "type": "Explicit"
            },
            {
                "id": "explicit.stat_2887760183",
                "text": "Monsters gain #% of Maximum Life as Extra Maximum Energy Shield",
                "type": "Explicit"
            },
            {
                "id": "explicit.stat_1776945532",
                "text": "Enemies you Kill have a #% chance to Explode, dealing a quarter of their maximum Life as Chaos Damage",
                "type": "Explicit"
            },
            {
                "id": "explicit.stat_2301696196",
                "text": "You take #% of your maximum Life as Chaos 
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service description & endpoints

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

**Response:**
```json
{
    "data": {
        "service": "poe-api",
        "endpoints": {
            "GET /v1/item": "A single item by name (name=).",
            "GET /v1/meta": "This document.",
            "GET /v1/items": "Search/filter the item catalogue (q=, category=, unique=1, limit=).",
            "GET /v1/stats": "Search modifier stats (q=, type=, limit=).",
            "GET /v1/leagues": "Current leagues (realm=pc|xbox|sony).",
            "GET /v1/categories": "Item categories with counts."
        },
        "description": "Path of Exile game reference data via Grinding Gear Games' public APIs: the current leagues; the full item catalogue (base types and unique items across Accessories, Armour, Weapons, Gems, Currency, Divination Cards, Maps and more); the item categories; and the trade modifier-stat dictionary. Real data, no key."
    },
    "meta": {
        "timestamp": "2026-06-08T01:18:25.487Z",
        "request_id": "02e3e994-e8eb-484a-9058-ad86c08ad3a7"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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