๐ŸŽ‰ Premium Proxies ยท 24-Hour Free TrialClaim Now
Proxy Basic

City-Targeted Proxies: When You Need Them and What They Cost

City targeted proxies explained for buyers: when city-level IPs change what you see, why they mean residential per-GB pricing, and when country is enough.

S SparkProxy 4 16 min read
Share
City-Targeted Proxies: When You Need Them and What They Cost

City targeted proxies are only worth paying for when the target site changes its answer by city based on the visitor's IP, which is true for local search results, geo-fenced ads and some delivery and classifieds sites, and false for most price, catalog and content scraping, where country-level IPs return the same data for a fraction of the cost.

That is the decision in one sentence. The rest of this guide is about checking which side of it your project sits on, what city targeting actually costs once you count pool depth and retries rather than the headline per-GB rate, and how to keep the city-level spend to the small slice of requests that truly need it.

If you want the fundamentals first (how IP geolocation works, what granularity levels exist), read our explainer on what geo-targeting means in proxies. This post assumes that background and focuses on the buying decision at city level.

The short answer

Buy city targeting when all three of these are true:

  • The page content differs between two cities in the same country when you load it from local connections.
  • The difference comes from the IP address, not from a location the user types in, a store picker, or a cookie.
  • The data you need lives in that difference (the local pack, the local ad, the delivery slot, the store stock).

If any one of them is false, country or state targeting will do, and you can often use datacenter IPs instead of residential ones. That switch is usually the biggest cost lever in the whole project, far bigger than which vendor you pick.

QuestionIf yesIf no
Does content differ between cities from real local connections?Keep checkingCountry targeting is enough
Is the difference driven by IP, not a ZIP field or store cookie?You need city-level IPsSet the location in the request, use country IPs
Does the target block datacenter ASNs on first contact?Residential or mobile, city-targetedDatacenter may work for the non-city share
Do you need the same city IP across a multi-step flow?Sticky sessions with city targetingPer-request rotation is fine

What city targeting actually is

City targeting means the provider picks your exit IP from the subset of its pool that a geolocation database places in the city you asked for. You normally express it in the proxy username or as a request parameter, and the provider filters its pool accordingly.

Two details matter more than the marketing suggests.

The city is the database's opinion. Your provider labels an IP as "Chicago" using the geolocation data it licenses. The site you are scraping may use a different database, or its CDN's own data, and place the same IP in a suburb or in a different city entirely. MaxMind, one of the largest geolocation vendors, publishes an accuracy comparison that reports city accuracy as the share of IPs located within a radius of their true position, broken down by country. The fact that the metric is a radius at all tells you city-level location is an estimate, not a registry fact the way country usually is.

City labels on datacenter IPs describe where the rack is. A datacenter IP geolocates to the metro where the hosting company operates the facility: Ashburn, Dallas, Frankfurt, Amsterdam, Singapore. You can sometimes pick those hub cities, but you cannot get a datacenter IP that looks like a home connection in Tucson, because no data center hosts a proxy fleet there. For most smaller cities, city targeting is a residential or mobile product by construction.

Free trial

Scraping at scale? Skip the blocks.

Fast, unblockable datacentre proxies with unlimited bandwidth.

Does your target localize by IP at all?

This is the check that saves the most money, and almost nobody runs it before buying.

Many sites that look city-aware do not use your IP for the city part. They use:

  • A ZIP or postcode field. Grocery, pharmacy and home improvement sites commonly ask for a delivery postcode or store, then store the choice in a cookie.
  • A store selector cookie. Once set, the cookie decides stock and pricing, whatever IP sends it.
  • An account address. Logged-in pricing follows the saved address.
  • A search parameter. Search engines and SERP APIs accept an explicit location, so local results do not have to depend on the exit IP.
  • Browser geolocation. The JavaScript geolocation API reads the device, not the IP. A proxy cannot change it, although a headless browser can be configured to report coordinates.

In all of those cases the fix is to set the location inside the request, then send it through country-level IPs. You get the city-specific page without paying for city-specific IPs.

A quick way to tell: load the page from two IPs in the same country but different cities, with cookies cleared, and compare. Then set the store or postcode and load it again from both IPs. If the second pair matches, the site localizes by input, not by IP. Our guide on proxies for grocery and delivery prices goes deeper on the store-cookie pattern, which is the most common case.

When country or state targeting is enough

Country-level IPs cover the large majority of geo-sensitive scraping. Typical examples:

  • Ecommerce prices and currency. National retailers usually price per country, sometimes per state for tax or shipping, rarely per city.
  • Content and catalog availability. Streaming catalogs, app stores and licensing restrictions are almost always set per country.
  • Localization QA. Language, currency formatting, cookie banners and legal notices change at country or region level. See proxies for localization testing.
  • Travel fares. Fares often vary by point of sale country and currency. City of origin is part of the search itself, not the IP.
  • National search rankings. If you track rankings for a country rather than a neighborhood, country IPs plus a location parameter are enough.

State targeting sits in between. In the US it is useful when shipping, tax display or licensed services (insurance quotes, sports betting availability) change at state lines. Before paying for city, ask whether state already captures the variation.

Where you genuinely need city-level IPs

These are the cases where the IP city really does change the data and there is no request parameter that replaces it.

Use caseWhy city mattersUsually needs
Local SERP and map-pack checks without a location parameterLocal pack reflects the searcher's detected locationResidential, city-targeted
Geo-fenced ad verificationCampaigns target metros or radius zones, and ad servers read the IPResidential or mobile, city-targeted
Local classifieds and marketplacesDefault listings follow detected cityResidential, city or state
Ride-hailing, delivery ETAs, surge pricing (public pages)Availability and price are hyperlocalMobile or residential, city-targeted, sticky
Regional news and paywall behaviorMetering or content can vary by metroResidential, city or state
Local ISP and broadband availability checksOffers depend on the connection's metroResidential, city or ASN

Ad verification is the clearest case, because the advertiser literally bought a location. If you verify a campaign targeted at Houston from a Dallas IP, you will see nothing and conclude, wrongly, that the ad is not running. See how brands use proxies for ad verification for the full workflow.

Local SEO is less clear-cut. If your tooling can pass a location parameter to the search engine, you may not need city IPs at all. If it cannot, or you want to confirm what a real local searcher sees, city-targeted residential IPs are the honest answer. Our guide to proxies for SERP scraping at scale covers the volume side.

Which proxy types can do city targeting

Proxy typeCity targetingRealism of the locationBilling model (typical)Best fit
ResidentialCommon: country, state, city, often ZIP and ASNHigh: consumer ISP connections in the cityPer GBMost city-level work
MobileOften country and carrier, city on some plansHigh: carrier IPs, but a cell tower can cover a wide areaPer GB or per port, higher ratesAds, apps, carrier-sensitive checks
ISP (static residential)Usually country, sometimes a few major citiesMedium to highPer IP per monthStable identity in a major metro
DatacenterCountry, sometimes hub cities onlyLow for city purposes: IP maps to the data center metroPer IP, per GB or flat per threadCountry-level work at volume

One caveat on mobile: carrier-grade NAT means many users share one public IP, and geolocation databases often place carrier IPs at a regional gateway rather than the user's town. Mobile is excellent for trust, less so for pinpoint city accuracy. Test it rather than assuming.

Where SparkProxy fits. SparkProxy is datacenter-first: 1M+ datacenter IPs across 80+ countries, including 50,000+ US IPs, sold as USA and worldwide rotating plans with country targeting on every plan. It does not sell residential or mobile plans and does not offer city-level targeting. For country-level work it is a flat-rate option (Starter is $75/mo for 100 threads with unlimited bandwidth), and for the city-level share of a project you would pair it with a residential provider, as described below.

What city-targeted proxies cost

Here is the part most "geo proxy" pages skip: on the big residential networks, city targeting itself is usually not a surcharge any more. The cost is that city targeting pushes you onto per-GB residential pricing, and then pool depth pushes your retry rate up.

As of September 2026, these vendors' own residential pages say the following. Prices change often and promotions come and go, so check each vendor's current page before buying.

VendorPublished residential entry rateCity targeting on their page
Decodo$4.00/GB pay as you go, down to $2/GB on a 1 TB planContinent, country, state, city, ZIP and ASN; the page says city, ZIP and ASN targeting is included in all residential plans at no extra charge
Oxylabs$6/GB on the starter plan (5 GB minimum), $4/GB on the Advanced tierCountry, city, state, continent, ZIP, coordinates and ASN
Bright Data$4/GB pay as you go under a 50% promotion (listed regular price $8/GB)"Country, state, city and zip code geo-targeting free"
IPRoyal$7.35/GB pay as you go, $7.00/GB on a 1 GB subscription, custom plans from $1.75/GB at 10 TB+Country, state and city level

So the real pricing question is volume in gigabytes, not a targeting fee.

An illustrative cost model

The numbers below are an illustrative assumption, not a measurement: 1,000,000 page requests a month, about 150 KB per response, which is roughly 150 GB of traffic.

SetupHow it billsRough monthly cost
Residential at $4/GB (Decodo PAYG, Bright Data promo rate)150 GB x $4about $600
Residential at $6/GB (Oxylabs starter)150 GB x $6about $900
Residential at $7.35/GB (IPRoyal PAYG)150 GB x $7.35about $1,100
Same residential setups with a 20% retry rate from thin city poolsfailed requests still transfer bytesadd $120 to $220
SparkProxy Starter, country-level datacenterflat, unlimited bandwidth, 100 threads$75
SparkProxy Scraping API with `country_code`1 credit per plain fetch + 5 for geolocation = 6 credits, 6M creditsScale plan, $599 (8M credits)

Two things fall out of this. First, the jump from country-level datacenter to city-level residential is roughly an order of magnitude at this volume, and none of it is a line item called "city targeting". Second, the per-GB bill is exposed to page weight. If your city-sensitive pages are JavaScript-heavy and you load them in a browser, the GB figure can multiply. Our breakdown of residential proxy pricing per GB covers how to estimate that before you commit.

Pool depth: the number vendors don't put on the pricing page

Headline pool sizes are national or global. Decodo lists 115M+ IPs, Oxylabs 175M+, IPRoyal 64M+ (all from their own pages, September 2026). Oxylabs also publishes per-country counts for its top locations, such as 10.3M for the USA. None of those figures tells you how many IPs are online in Boise at 3 a.m. when your job runs.

City pools are a small slice of the country pool, and residential IPs are online only while the underlying device is. That creates three problems that grow as the city gets smaller:

  1. IP reuse. With fewer addresses available, the same exits come back more often, and per-IP rate limits on the target trip sooner.
  2. Slower or failed allocation. Some requests wait for an available exit, or the provider falls back to a broader area. Check what your provider does when a city is empty: fail, wait, or silently widen.
  3. Sticky sessions break early. A sticky session needs the same residential device to stay online. In a thin city pool, sessions end sooner, which hurts multi-step flows like adding an address and then loading delivery slots.

The practical rule: concurrency in a city should be sized to the city's available pool, not to your thread count. If a mid-size city gives you a few hundred usable exits at a time and the target tolerates a handful of requests per IP per minute, that is your ceiling, and adding threads just adds blocks. The same logic applies to regional pools in general, covered in regional vs global proxy pools.

Ask vendors directly for the live available IP count in your target cities, at the hours you will run. If they cannot or will not give a number, your trial is the only source of truth.

A blended setup that keeps the bill sane

Most projects that "need city targeting" need it for a minority of requests. Split them.

Route by requirement, not by project.

  • Catalog, product detail, national price and availability pages go through country-level datacenter IPs on a flat plan.
  • Only the pages whose content truly depends on the IP city go through city-targeted residential.
  • Pages that localize by postcode or store cookie go through country IPs with the location set in the request.

Illustrative example. Keep the 1,000,000 monthly requests from the model above, and assume 10% are genuinely city-dependent. That is about 15 GB of residential traffic, around $60 to $110 a month at the published rates listed above, plus a flat country-level datacenter plan for the other 900,000 requests. Compared to routing everything through city-targeted residential, the blend is a fraction of the cost, and the datacenter share does not care how heavy the pages are.

For the country-level share on SparkProxy's plans, the gateway is gateway.sparkproxy.io on port 11000 for HTTP/HTTPS with per-request rotation, 11002 for sticky sessions and 13000 for SOCKS5. If you would rather not run the proxy layer yourself, the Scraping API takes a country code per request:

curl -G "https://scrape.sparkproxy.io/api/v1" \
  -H "X-API-Key: YOUR_API_KEY" \
  --data-urlencode "url=https://www.sparkproxy.io/pricing" \
  --data-urlencode "country_code=US"

country_code is an ISO 3166-1 alpha-2 code and adds 5 credits per request. It sets the exit country, not the city.

A simple router makes the split explicit in code:

CITY_SENSITIVE = ("/local/", "/near-me", "/delivery-slots")

def pick_route(url: str) -> str:
    if any(part in url for part in CITY_SENSITIVE):
        return "residential_city"      # per-GB pool, city-targeted
    return "datacenter_country"        # flat plan, country-level

for url in urls:
    route = pick_route(url)
    # send through the matching proxy pool or API

The URL patterns are examples; swap in the paths from your own targets. The point is that the routing decision is written down and reviewable, so city-level spend cannot creep in by default.

How to test a city-targeted pool before you buy

Run this during a trial, on your real targets, at the hours your jobs will run.

  1. Pick three cities: one major metro, one mid-size city, one small city you actually need.
  2. Check geolocation agreement. For a sample of exits per city, look the IP up in two or three geolocation services and note how often they agree with the requested city. Our guide on validating IP geolocation accuracy and fraud scores has the method.
  3. Check what the target thinks. Many sites echo the detected location somewhere on the page, in a header, or in a cookie. That is the only geolocation that matters.
  4. Count unique exits. Send a few hundred requests per city and count distinct IPs. A small city returning the same few dozen addresses tells you your concurrency ceiling.
  5. Measure success rate and bytes. Log status codes, retries and response size. Multiply GB by the per-GB price to get your real cost per successful city-level record.
  6. Test a sticky session. Hold one session through your multi-step flow and time how long it survives in each city.

If the small city fails steps 2 to 4, no amount of vendor switching is likely to fix it, because residential pool depth follows population. Consider state-level targeting plus a location parameter, or accept lower frequency for that city.

Frequently asked questions

FAQ

Only if your tool cannot pass a location to the search engine or you want to confirm what a real local searcher sees. Many rank trackers set location in the query, and those work with country-level IPs.

On the major residential networks, usually not directly. As of September 2026, Decodo, Oxylabs, Bright Data and IPRoyal all list city targeting on their residential pages, and Decodo and Bright Data explicitly state it is included free. The real cost comes from per-GB billing and extra retries in thin city pools.

Only data center hub cities, and only if the provider exposes that option. A datacenter IP geolocates to the metro where its facility sits, so it cannot convincingly appear to be a home connection in a smaller city.

Less accurate than country level, because city location is an estimate built by geolocation databases, and different databases can disagree about the same IP. Always check the location your target site detects, not only the label in your provider's dashboard.

No. SparkProxy sells rotating datacenter proxies with USA and worldwide plans and country targeting across 80+ countries. For city-level work, use a residential provider for that share of traffic and keep country-level requests on a flat datacenter plan.

Geo proxies is a broad term for any proxy you can pin to a location, most often a country. City targeted proxies are the narrowest common tier of geo proxies, usually drawn from residential pools, and they trade pool depth and cost for local precision.

Special Discount ยท 20% off

Get 20% off your first month

Premium datacentre proxies with unlimited bandwidth. Use the code at checkout.

Save up to 15% more on quarterly, half-yearly and yearly plans

Claim Discount

About the author

Written by the SparkProxy Technical Team. SparkProxy runs a datacenter proxy network of 1M+ IPs across 80+ countries, including 50,000+ US addresses, plus a managed Scraping API with JavaScript rendering and per-request country selection. Competitor figures in this post come from each vendor's own published pages as of September 2026, and cost examples are labelled illustrative assumptions, not test results. Corrections: support@sparkproxy.io.

Keep reading

Related articles