Geonode logo

Stock Monitoring Proxies for Multi-Retailer Availability Tracking

Quick answer

Stock monitoring proxies need to return the inventory state a real shopper sees in a given country, store or postcode. That means residential IPs with country and city targeting, sticky sessions for store-selector flows and rotating sessions for wide catalogue sweeps. Geonode residential proxies cover 195+ countries with 2.5M IPs online; datacenter proxies from $0.14/GB handle your own feeds and open APIs.

Why stock availability monitoring breaks without the right proxies

Availability is the most volatile field on a product page and the most geo-dependent. Retailers compute it per warehouse, per store and per delivery postcode, and they decide which warehouse applies from your IP before you ever pick a store. A crawler on a datacenter IP in another country sees "unavailable" for items that are on the shelf where your customers live.

Rate limiting hits stock monitors harder than price monitors because the check interval is shorter. A restock-alert product that polls a hot SKU every minute from one IP gets HTTP 429 responses within hours, or a shadow-limit where the page loads but the add-to-cart state is cached and wrong.

Then there is the anti-bot layer. Retailers that have suffered from checkout bots serve CAPTCHAs and holding pages to anything that looks automated, and stock data is exactly what those bots fetch first.

Which Geonode proxy type fits

Residential proxies are the recommended choice for stock monitoring. They map to real consumer connections in the country and city you target, so the retailer resolves the correct warehouse and shows the real availability state. Sticky sessions up to 24 hours let you select a store or enter a postcode once and keep that context across the SKUs you check.

Rotating datacenter proxies make sense for the parts of your pipeline that are not sensitive: pulling your own brand feeds, calling retailer affiliate APIs that permit automated access, and running staging checks. At $0.14/GB they keep the bulk of your bandwidth cheap while residential handles the pages that matter.

ISP proxies fit a brand monitoring a small, fixed list of retailers from a few consistent identities.

  • Residential — Best for: Retailer product pages, store-level stock, regional availability; IP source: Real consumer devices, 195+ countries; Session: Rotating or sticky up to 24 h; Price from: $0.27/GB at volume, 10 GB for $7.92
  • ISP (static residential) — Best for: Fixed retailer list, long-lived store context; IP source: Static IPs from real ISPs; Session: Unlimited sessions, unlimited bandwidth per IP; Price from: $1.25/IP
  • Datacenter — Best for: Own feeds, affiliate APIs, staging and QA; IP source: Shared datacenter ranges; Session: Rotating; Price from: $0.14/GB

Recommend residential for anything a shopper would load in a browser, datacenter for anything that is already yours.

How to set it up

  1. Build a SKU list with the retailer URL, target country and, where stock is store-level, the store id or postcode. Give every SKU a check interval proportional to how fast it moves.
  2. Create one sticky session per retailer and region. Use it to set the store or delivery location, then reuse it across SKUs for that retailer until it expires.
  3. Request the product page or its availability JSON endpoint through the proxy. Parse the stock flag, quantity hint and delivery estimate, and keep the raw response.
  4. Compare the new state with the last stored state. Emit a restock or sell-out event only on a change, so your downstream alerts stay quiet between checks.
  5. On HTTP 429 or a CAPTCHA, pause that retailer, rotate the session id and back off. Log the incident with the proxy country so you can see which regions are strict.
import requests

# verify endpoint against docs.geonode.com before publishing
USER = "USERNAME-country-de-city-berlin-session-stock42"
PROXY = f"http://{USER}:PASSWORD@premium-residential.geonode.com:9000"

r = requests.get(
    "https://example-retailer.de/api/availability?sku=ABC123&store=1042",
    proxies={"http": PROXY, "https": PROXY},
    headers={"Accept": "application/json", "Accept-Language": "de-DE"},
    timeout=20,
)
data = r.json()
print(data.get("sku"), data.get("inStock"), data.get("quantity"))

Get the exact snippet for your language from the API Code Generator in the dashboard.

Stock monitoring-specific settings that matter

Sticky for store context, rotating for sweeps

Store selection and postcode entry live in cookies tied to one session. Keep a sticky session alive for the duration of a retailer run. Use rotating sessions for category sweeps where you only need the list-level in-stock badge and no store context.

Country and city targeting

Set the proxy country to match the retailer's storefront and the city to the warehouse region you care about. State and city cannot be combined, so choose whichever the retailer uses to resolve stock. Mismatched IP and Accept-Language headers are an easy tell, so align them.

Check interval by SKU velocity

Not every product needs a one-minute poll. Tier your SKUs: fast movers get short intervals, long-tail items get hourly or daily checks. This keeps you within retailer rate limits and keeps bandwidth, and therefore cost, proportional to the value of the alert.

Change detection, not snapshots

Store the last known state per SKU and region and trigger on transitions. A page that still says out of stock is not an event. This also lets you spot false positives: a sudden "unavailable" across every SKU of one retailer is a block, not a sell-out.

What to log

Log SKU, retailer, country, store id, session id, status code, response size and parsed availability. Response size and a hash of the availability block catch holding pages that return HTTP 200 with no real inventory data.

What Geonode gives you for stock availability monitoring

  • 2.5M residential IPs online across 195+ countries with city and ASN targeting
  • Sticky sessions up to 24 hours to hold store and postcode context
  • Rotating datacenter proxies from $0.14/GB for feeds and open APIs
  • No fixed thread limit, so concurrency scales with your SKU list
  • Pay-as-you-go billing, card or crypto, 24/7 support

Pricing for stock availability monitoring

Residential bandwidth is pay-as-you-go with no contract: from $0.27/GB at volume, 10 GB for $7.92 per month at entry level, 50 GB for $34.65, and a 3-day trial for $5. Availability JSON endpoints are small, so a modest plan covers a large SKU list. Rotating datacenter proxies start at $0.14/GB for your own feeds. ISP proxies start at $1.25 per IP if you want fixed identities per retailer. Compare plans on the pricing page.

FAQ

Why do stock monitoring proxies need city targeting?

Many retailers resolve availability from the nearest warehouse or store, which they infer from your IP before you select anything. City-level residential IPs make the retailer pick the same fulfilment location your customers get, so the stock flag you record is the one they see.

Can I use datacenter proxies for stock monitoring?

For your own product feeds, partner APIs and staging environments, yes, and they cost the least per gigabyte. For public retailer product pages, datacenter ranges are the first to receive CAPTCHAs and stale cached states, so residential is the safer choice.

How do I tell a sell-out from a block?

Look at the pattern. A real sell-out affects one SKU; a block flips every SKU at one retailer to unavailable at the same moment, often with a smaller response size. Log both signals and alert on retailer-wide transitions separately.

Is stock availability monitoring compliant?

Reading publicly displayed availability for analytics or alerts is read-only and widely done. Do not automate purchases or hold inventory in carts. Respect each retailer's terms, robots policy and rate limits. Geonode's AUP prohibits fraud, spam and credential abuse.

How much bandwidth does a stock monitor use?

It depends on whether you fetch the full product page or the availability endpoint. JSON endpoints are usually a few kilobytes; full pages with images are far larger. Hitting the endpoint directly through the proxy keeps bandwidth low.

Do I need the Scraper API for stock monitoring proxies to work?

No. Proxies alone are enough when the stock flag is in the HTML or a JSON endpoint. If availability only appears after client-side rendering, the Scraper API adds JavaScript rendering and returns clean JSON without you managing a browser.

Start

Spin up the 3-day $5 trial and point one retailer job at a city-targeted residential session. Get started or Contact sales for volume plans.

Related: Digital shelf analytics · Supply chain intelligence · Price intelligence