Visualize your customers around the world! Fetches orders directly from your Polar organization and highlights every country where you've ever had paying customers.
- Ranks countries by revenue
- Exports to PNG, JPEG, or WebP
- Excludes trials and $0 orders
- 🔒 100% private — your auth token is never stored
Currently supports Polar. Additional platforms coming soon.
Generate map images programmatically. Perfect for embedding in dashboards, reports, or automations.
GET /api/v1/map
GET https://customers-map.vercel.app/api/v1/map
Required:
polar_access_token— Your Polar API access tokenorganization_id— Your Polar organization ID
Optional:
format—png|jpeg|webp(default:png)scale—1|2|3(default:2) — Higher values = sharper imagesdisplayCountryRevenue—true|false(default:false)colorScheme—light|dark(default:light)
curl -X GET 'https://customers-map.vercel.app/api/v1/map?polar_access_token=YOUR_TOKEN&organization_id=YOUR_ORG_ID' \
-o map.pngHigh-resolution dark mode with revenue labels:
curl -X GET \
'https://customers-map.vercel.app/api/v1/map?polar_access_token=YOUR_TOKEN&organization_id=YOUR_ORG_ID&format=webp&scale=3&colorScheme=dark&displayCountryRevenue=true' \
-o customers-map.webpUse in JavaScript:
const mapUrl = new URL('https://customers-map.vercel.app/api/v1/map');
mapUrl.searchParams.set('polar_access_token', token);
mapUrl.searchParams.set('organization_id', orgId);
mapUrl.searchParams.set('format', 'webp');
mapUrl.searchParams.set('scale', '3');
const response = await fetch(mapUrl);
const imageBlob = await response.blob();