Skip to main content

Overview

Polymarket restricts order placement from certain geographic locations due to regulatory requirements and compliance with international sanctions. Before placing orders, builders should verify the location.
Orders submitted from blocked regions will be rejected. Implement geoblock checks in your application to provide users with appropriate feedback before they attempt to trade.

Server Infrastructure

  • Primary Servers: eu-west-2
  • Closest Non-Georestricted Region: eu-west-1

Geoblock Endpoint

Check the geographic eligibility of the requesting IP address:
GET https://polymarket.com/api/geoblock

Response

{
  "blocked": boolean;
  "ip": string;
  "country": string;
  "region": string;
}
FieldTypeDescription
blockedbooleanWhether the user is blocked from placing orders
ipstringDetected IP address
countrystringISO 3166-1 alpha-2 country code
regionstringRegion/state code

Blocked Countries

The following 33 countries are completely restricted from placing orders on Polymarket:
Country CodeCountry Name
AUAustralia
BEBelgium
BYBelarus
BIBurundi
CFCentral African Republic
CDCongo (Kinshasa)
CUCuba
DEGermany
ETEthiopia
FRFrance
GBUnited Kingdom
IRIran
IQIraq
ITItaly
KPNorth Korea
LBLebanon
LYLibya
MMMyanmar
NINicaragua
PLPoland
RURussia
SGSingapore
SOSomalia
SSSouth Sudan
SDSudan
SYSyria
THThailand
TWTaiwan
UMUnited States Minor Outlying Islands
USUnited States
VEVenezuela
YEYemen
ZWZimbabwe

Blocked Regions

In addition to fully blocked countries, the following specific regions within otherwise accessible countries are also restricted:
CountryRegionRegion Code
Canada (CA)OntarioON
Ukraine (UA)Crimea43
Ukraine (UA)Donetsk14
Ukraine (UA)Luhansk09

Usage Examples

interface GeoblockResponse {
  blocked: boolean;
  ip: string;
  country: string;
  region: string;
}

async function checkGeoblock(): Promise<GeoblockResponse> {
  const response = await fetch("https://polymarket.com/api/geoblock");
  return response.json();
}

// Usage
const geo = await checkGeoblock();

if (geo.blocked) {
  console.log(`Trading not available in ${geo.country}`);
} else {
  console.log("Trading available");
}