# Warsaw Stock Exchange (GPW) API
> Live data for the Warsaw Stock Exchange (GPW, the Polish market) with no key: the live quote for one or more stocks by ticker (price, change, open/high/low, volume, market cap, P/E, sector, in zloty, with the company name), a ranked market screener (top gainers, losers, most active, or largest by market cap; primary Polish listings only), and the live value of the Warsaw indices (WIG, WIG20, WIG30).

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

## Pricing
- **Free** (Free) — 16,500 calls/Mo, 2 req/s
- **Basic** ($26/Mo) — 335,000 calls/Mo, 10 req/s
- **Pro** ($67/Mo) — 1,730,000 calls/Mo, 20 req/s
- **Scale** ($128/Mo) — 8,700,000 calls/Mo, 50 req/s

## Endpoints

### Quotes

#### `GET /v1/quote` — Live quote for one or more GPW stocks

**Parameters:**
- `codes` (query, required, string) — GPW ticker(s), comma-separated up to 20 Example: `PKN,PKO`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gpw-api/v1/quote?codes=PKN%2CPKO"
```

**Response:**
```json
{
    "data": {
        "note": "The live quote for one or more Warsaw (GPW) stocks — price, change, open/high/low, volume, market cap, P/E and sector (in zloty), with the company name. Pass codes (the GPW ticker, comma-separate up to 20, e.g. PKN,PKO).",
        "count": 2,
        "quotes": [
            {
                "low": 143.8,
                "high": 148.48,
                "open": 148.34,
                "price": 146.84,
                "change": -1.8400000000000034,
                "sector": "Energy Minerals",
                "ticker": "PKN",
                "volume": 2197406,
                "company": "ORLEN Spolka Akcyjna",
                "currency": "PLN",
                "pe_ratio": 11.43,
                "market_cap": 170472721466,
                "change_percent": -1.24
            },
            {
                "low": 101,
                "high": 105.08,
                "open": 101.2,
                "price": 104.6,
                "change": 4.799999999999997,
                "sector": "Finance",
                "ticker": "PKO",
                "volume": 2366656,
                "company": "PKO Bank Polski SA",
                "currency": "PLN",
                "pe_ratio": 12.18,
                "market_cap": 130749998093,
                "change_percent": 4.81
            }
        ],
        "source": "Warsaw Stock Exchange / GPW (TradingView)"
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:28.789Z",
        "request_id": "4cbc2a47-d13
…(truncated, see openapi.json for full schema)
```

### Screener

#### `GET /v1/screener` — Ranked market screener (primary Polish listings)

**Parameters:**
- `by` (query, optional, string) — Ranking: gainers, losers, active, marketcap Example: `marketcap`
- `limit` (query, optional, string) — Results 1-100 Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gpw-api/v1/screener?by=marketcap&limit=20"
```

**Response:**
```json
{
    "data": {
        "by": "marketcap",
        "note": "A ranked screener of the Polish (GPW) market — the top stocks by your chosen ranking, limited to primary Polish listings (not foreign depositary receipts). Pass by (gainers, losers, active, or marketcap; default marketcap) and limit (1-100, default 20).",
        "count": 20,
        "source": "Warsaw Stock Exchange / GPW (TradingView)",
        "results": [
            {
                "price": 146.84,
                "change": -1.8400000000000034,
                "sector": "Energy Minerals",
                "ticker": "PKN",
                "volume": 2197406,
                "company": "ORLEN Spolka Akcyjna",
                "currency": "PLN",
                "market_cap": 170472721466,
                "change_percent": -1.24
            },
            {
                "price": 104.6,
                "change": 4.799999999999997,
                "sector": "Finance",
                "ticker": "PKO",
                "volume": 2366656,
                "company": "PKO Bank Polski SA",
                "currency": "PLN",
                "market_cap": 130749998093,
                "change_percent": 4.81
            },
            {
                "price": 360.85,
                "change": 27.05000000000001,
                "sector": "Non-Energy Minerals",
                "ticker": "KGH",
                "volume": 1032921,
                "company": "KGHM Polska Miedz S.A.",
                "currency": "PLN",
          
…(truncated, see openapi.json for full schema)
```

### Indices

#### `GET /v1/index` — Live value of a Warsaw index

**Parameters:**
- `name` (query, optional, string) — WIG, WIG20 or WIG30 Example: `WIG20`

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

**Response:**
```json
{
    "data": {
        "low": 3663.93,
        "high": 3725.98,
        "name": "WIG20 Index",
        "note": "The live value of a Warsaw Stock Exchange index — current level, change, and the day's open/high/low. Pass name (WIG for the broad index, WIG20 for the blue-chip index, or WIG30; default WIG20).",
        "open": 3669.66,
        "index": "WIG20",
        "value": 3713.88,
        "change": 61.86000000000013,
        "source": "Warsaw Stock Exchange / GPW (TradingView)",
        "change_percent": 1.69
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:29.244Z",
        "request_id": "b5667392-831a-49e8-9ac4-a3f883a4ac59"
    },
    "status": "ok",
    "message": "Index retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata & endpoint catalog

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

**Response:**
```json
{
    "data": {
        "sample": {
            "wig20": 3713.88
        },
        "source": "TradingView public screener (scanner.tradingview.com/poland/scan), keyless",
        "indexes": [
            "WIG",
            "WIG20",
            "WIG30"
        ],
        "screens": [
            "gainers",
            "losers",
            "active",
            "marketcap"
        ],
        "service": "gpw-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/index": "Live value of a Warsaw index (name).",
            "GET /v1/quote": "Live quote for one or more stocks (codes).",
            "GET /v1/screener": "Ranked market screener (by, limit)."
        },
        "description": "Live data for the Warsaw Stock Exchange (GPW, the Polish market) with no key: the live quote for one or more stocks by ticker (price, change, open/high/low, volume, market cap, P/E, sector, in zloty, with the company name), a ranked market screener (top gainers, losers, most active, or largest by market cap; primary Polish listings only), and the live value of the Warsaw indices (WIG, WIG20, WIG30). The Poland-equities / WIG-index / screener layer for trading dashboards and research. Distinct from other exchange readers — the Warsaw Stock Exchange market with a built-in screener. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-15T02:10:29.292Z",
        "request_id": "392cc5e3-8b5a-42ad-857d-c
…(truncated, see openapi.json for full schema)
```


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