Geo Source Selection
Every geo-targeting parameter you send — country, region, city, ASN, ISP, zipcode — is resolved by looking the IP up in a geolocation database. Which database that is makes a real difference: providers disagree about where a given IP sits and which network owns it, so the same _city-london filter can select a different set of IPs depending on the source used to answer it.
The _geosource- parameter lets you choose. Evomi resolves geo filters against ipapi unless you say otherwise, and additional sources can be added over time without changing how the parameter works.
Available Geo Sources
| Value | Data source | Default |
|---|---|---|
ipapi |
ip-api.com | Yes |
maxmind |
Alternative geolocation database | No |
More sources may be added to this table in future. Until then, _geosource- accepts only the values above.
A filter that works on one source may match nothing on another
Changing the source changes which IPs satisfy your filter, not just how they are labelled. Sources disagree about individual IPs and cover different numbers of them, so a filter that returns plenty of results on one source can return far fewer — or none — on another.
Evomi will only serve an IP that matches in the source you asked for; it will not substitute one that matches a different source. A filter nothing can satisfy therefore fails rather than returning a mismatched IP. Narrow filters like city, zipcode and ASN are the most exposed to this, so keep a retry in place and be ready to widen the filter.
Implementation
Append _geosource-<value> to your proxy password, alongside the geo filters it should apply to:
http://testuser:[email protected]:1000The parameter only changes how filters are resolved — it never selects a location on its own. Sent without any geo filter present, it has no effect.
Examples
CURL:
curl -x http://testuser:[email protected]:1000 https://ip.evomi.com/s
curl -x http://testuser:[email protected]:1000 https://ip.evomi.com/simport requests
proxies = {
"http": "http://testuser:testpassword_country-US_region-california_geosource-maxmind@rp.evomi.com:1000",
}
response = requests.get("https://ip.evomi.com/s", proxies=proxies)
print(response.text)const fetch = require('node-fetch');
const proxyUrl = 'http://testuser:[email protected]:1000';
const url = 'https://ip.evomi.com/s';
fetch(url, { proxy: proxyUrl })
.then(res => res.text())
.then(body => console.log(body));Affected Parameters
Every geo filter is resolved by the selected source:
| Parameter | Resolved as |
|---|---|
_country- |
The country the selected source reports for the IP |
_region- |
The region the selected source reports |
_city- |
The city the selected source reports |
_zip- |
The postal code the selected source reports |
_asn- |
The ASN the selected source attributes the IP to |
_isp- |
The ISP name the selected source attributes the IP to |
_continent- |
Expanded to its list of countries, then matched as above |
Any other parameter — sessions, _fraudscore-, _device-, _latency-, protocol options — is unaffected and behaves exactly as documented on its own page.
ISP and ASN values are specific to each source
Sources use different ISP names and attribute IPs to different ASNs, so an _isp- or _asn- value taken from one source will often match nothing on another. Always take these values from the list belonging to the source you are requesting — the Proxy Generator and dashboard list them per source.
Country, region, city and zipcode values keep their usual formats across sources; only which IPs they match changes.
Product Availability
Unlike the other expert settings, this parameter is available on all three rotating proxy products. Only the endpoint changes:
| Product | Endpoint | Geo filters available |
|---|---|---|
| Residential | rp.evomi.com:1000 |
country, region, city, ASN, ISP, zipcode, continent |
| Datacenter | dcp.evomi.com:2000 |
country, continent |
| Mobile | mp.evomi.com:3000 |
country, region, ISP, continent |
# Datacenter
curl -x http://testuser:[email protected]:2000 https://ip.evomi.com/s
# Mobile
curl -x http://testuser:[email protected]:3000 https://ip.evomi.com/sUnrecognised Values
An unrecognised source name is ignored rather than rejected: the request succeeds and is served from the default source, exactly as if you had omitted the parameter.
Values are case-sensitive and must be lowercase, so _geosource-MAXMIND is not recognised and silently resolves against ipapi. Writing _geosource-ipapi explicitly is valid and identical to omitting the parameter.
If a request behaves as though the parameter were absent, check the spelling and casing of the value against the table above first.
Common Use Cases
- Matching the geolocation your own verification or analytics stack reports
- Cross-checking a location that two sources disagree on
- Targeting an ISP or ASN as a specific source attributes it
- Compliance checks that name a particular geolocation dataset as the reference
No extra bandwidth cost
Unlike the other expert settings, _geosource- carries no bandwidth multiplier, whichever source you pick — it changes how a filter is matched, not how much work the filter is. Any multiplier you see still comes from the geo filters you pair it with, at their usual rates. Parameters restricted to Core Residential, such as _zip-, keep that restriction when combined with this one.
Start broad and narrow down. Each source matches a different set of IPs, so a filter that works at country level may find nothing once you add a city or ASN:
_country-DE_geosource-maxmind_country-DE_city-berlin_geosource-maxmind_country-US_asn-AS7922_geosource-maxmind