warnings on the quote, or the live policy endpoint below.
Detecting ineligibility before the fill
The quote includes awarnings array. Any venue in the route the user cannot fill on appears there, with the venue name and a human-readable reason. The quote does not remove blocked venues. It returns the route and flags the blocked legs, so you can gray them out or route around them before the user commits. Geo is enforced at fill.
Match on the prefix Venue not available in your region to identify geo warnings. The trailing country code is omitted when the country cannot be determined.
If you ignore the warnings, POST /execution/fill returns 403 with Venue polymarket is not available in your region (US).
Geo eligibility is not exposed on the events or markets endpoints. Use quote warnings to check the proposed trade, and the policy endpoint below for country rules.
Reading the lists
GET /app/venue-geo-policy returns each venue’s country policy. Authenticate with x-app-id.
blockedCountries. Some venues also set allowedCountries. When allowedCountries is present, the venue can be traded only from those countries. An empty blockedCountries list is not unrestricted in that case. Ignore the empty block list.
Novig is the example. It is available only in the United States, so it sets allowedCountries and leaves blockedCountries empty. A user outside those allowed countries cannot fill Novig. The United States is blocked on every other venue. That is AGG platform policy, not a copy of each venue’s own terms.
Get the per-venue blocked-country lists (ISO 3166-1 alpha-2).
Country resolution
Country comes from the request’s edge-detected country unless your app is enrolled in Trusted Proxy. Then it is resolved from thex-agg-client-ip you forward.
If the country cannot be determined, no venues are available and every fill is rejected. This is fail-closed. A missing or bad proxy IP looks the same as a fully blocked user.
VPN exits resolve to the VPN’s exit country.