x-reseller-key or your dashboard token). They are served from a cache that is refreshed daily from our upstream provider, make no gateway calls, and are safe to call as often as you like.
Everything at once
GET /reseller/targeting
The full tree: every country, with its states, the cities in each state, and its ASNs.cURL
The payload is large (every city in every country), so fetch it once and cache it on your side rather than per request.
Countries only
GET /reseller/targeting/countries
Just the country codes and names — a cheap call for a first-level picker.cURL
One country
GET /reseller/targeting/countries/:code
The states, cities and ASNs for a single country. Use this to lazy-load the next level of a picker.cURL
countries[] above. The code is matched case-insensitively (de and DE are the same country); unknown codes return 404.
Exporting a CSV
If you’d rather have a flat file, onejq line turns the full tree into a row per city:
cURL
Availability is not guaranteed for every city in the list — a very narrow target can have no exit node at that moment. Your customers see that as
PX1002 (see Error Handling); drop the city first, then the state.