{"openapi":"3.1.0","info":{"title":"Warsaw Stock Exchange (GPW) API","version":"1.0.0","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).","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/gpw-api","description":"oanor gateway"}],"tags":[{"name":"Quotes"},{"name":"Screener"},{"name":"Indices"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/quote":{"get":{"operationId":"get_v1_quote","tags":["Quotes"],"summary":"Live quote for one or more GPW stocks","description":"","parameters":[{"name":"codes","in":"query","required":true,"description":"GPW ticker(s), comma-separated up to 20","schema":{"type":"string"},"example":"PKN,PKO"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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-d133-49ab-b7ce-6f3086080684"},"status":"ok","message":"Quote retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/screener":{"get":{"operationId":"get_v1_screener","tags":["Screener"],"summary":"Ranked market screener (primary Polish listings)","description":"","parameters":[{"name":"by","in":"query","required":false,"description":"Ranking: gainers, losers, active, marketcap","schema":{"type":"string"},"example":"marketcap"},{"name":"limit","in":"query","required":false,"description":"Results 1-100","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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","market_cap":72170001221,"change_percent":8.1},{"price":638.8,"change":25,"sector":"Finance","ticker":"EBP","volume":122073,"company":"Erste Bank Polska S.A.","currency":"PLN","market_cap":65278533683,"change_percent":4.07},{"price":471,"change":35,"sector":"Finance","ticker":"ING","volume":77417,"company":"ING Bank Slaski S.A.","currency":"PLN","market_cap":61277102875,"change_percent":8.03},{"price":1414.5,"change":83,"sector":"Finance","ticker":"MBK","volume":39976,"company":"mBank SA","currency":"PLN","market_cap":60183952223,"change_percent":6.23},{"price":228,"change":-7.5,"sector":"Finance","ticker":"PEO","volume":729914,"company":"Bank Polska Kasa Opieki S.A.","currency":"PLN","market_cap":59843167236,"change_percent":-3.18},{"price":66.28,"change":1.4200000000000017,"sector":"Finance","ticker":"PZU","volume":1809413,"company":"Powszechny Zaklad Ubezpieczen Spolka Akcyjna","currency":"PLN","market_cap":57222653284,"change_percent":2.19},{"price":20600,"change":-1320,"sector":"Retail Trade","ticker":"LPP","volume":10880,"company":"LPP S.A.","currency":"PLN","market_cap":38289385295,"change_percent":-6.02},{"price":34.415,"change":-0.25,"sector":"Retail Trade","ticker":"ALE","volume":3199903,"company":"Allegro.eu S.A.","currency":"PLN","market_cap":36325205709,"change_percent":-0.72},{"price":29.54,"change":-0.08999999999999986,"sector":"Retail Trade","ticker":"DNP","volume":1758745,"company":"Dino Polska SA","currency":"PLN","market_cap":28961017619,"change_percent":-0.3},{"price":25.6,"change":0.20000000000000284,"sector":"Retail Trade","ticker":"ZAB","volume":1363276,"company":"Zabka Group","currency":"PLN","market_cap":25596622256,"change_percent":0.79},{"price":20.04,"change":0.8699999999999974,"sector":"Finance","ticker":"MIL","volume":1274369,"company":"Bank Millennium SA","currency":"PLN","market_cap":24310859763,"change_percent":4.54},{"price":153,"change":6.599999999999994,"sector":"Finance","ticker":"BNP","volume":15350,"company":"BNP Paribas Bank Polska Spolka Akcyjna","currency":"PLN","market_cap":22636242142,"change_percent":4.51},{"price":9.988,"change":0.1999999999999993,"sector":"Utilities","ticker":"PGE","volume":2177525,"company":"PGE Polska Grupa Energetyczna S.A.","currency":"PLN","market_cap":22410204163,"change_percent":2.04},{"price":220.9,"change":0.30000000000001137,"sector":"Technology Services","ticker":"CDR","volume":352588,"company":"CD Projekt S.A.","currency":"PLN","market_cap":22070230431,"change_percent":0.14},{"price":15.955,"change":-0.0649999999999995,"sector":"Communications","ticker":"OPL","volume":3505111,"company":"Orange Polska S.A.","currency":"PLN","market_cap":20938664514,"change_percent":-0.41},{"price":35,"change":0.6700000000000017,"sector":"Retail Trade","ticker":"PCO","volume":1075442,"company":"Pepco Group BV","currency":"PLN","market_cap":20210818787,"change_percent":1.95},{"price":135,"change":6.050000000000011,"sector":"Finance","ticker":"ALR","volume":447934,"company":"Alior Bank SA","currency":"PLN","market_cap":17624788055,"change_percent":4.69},{"price":674.4,"change":29,"sector":"Industrial Services","ticker":"BDX","volume":30033,"company":"Budimex SA","currency":"PLN","market_cap":17217498688,"change_percent":4.49}],"description":"largest (by market cap)"},"meta":{"timestamp":"2026-06-15T02:10:29.017Z","request_id":"e1a1c924-7b46-47a1-9751-2ec92ec6f5a3"},"status":"ok","message":"Screener retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/index":{"get":{"operationId":"get_v1_index","tags":["Indices"],"summary":"Live value of a Warsaw index","description":"","parameters":[{"name":"name","in":"query","required":false,"description":"WIG, WIG20 or WIG30","schema":{"type":"string"},"example":"WIG20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata & endpoint catalog","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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-c98d647c68d3"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":16500,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":2630,"monthly_call_quota":335000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":6740,"monthly_call_quota":1730000,"rps_limit":20,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":12790,"monthly_call_quota":8700000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/gpw-api"}