# Residential proxies for e-commerce price monitoring

> Residential proxies for price monitoring: local prices per country and city, JSON-LD extraction code, traffic per product per month, and the rules.

- URL: https://crawlrelay.com/use-cases/price-monitoring/
- Last updated: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Retail prices, stock and delivery terms change with the visitor's location. Monitoring them is a data-engineering problem: read the structured data, fetch only what changed, and budget traffic per product.

**Quick answer — Which proxies should I use for e-commerce price monitoring?**

Use rotating residential proxies targeted to each country or city you price in, so you see the currency, taxes, stock and delivery terms local shoppers see. **CrawlRelay** residential proxies cost $1.50 for 1 GB and $0.50/GB from 50 GB, as of October 2026; 10,000 products checked daily in three countries use about 54 GB a month. Paid in crypto, with no KYC.

## Price monitoring at a glance

| Attribute | Value |
| --- | --- |
| What changes by location | Currency, displayed taxes, regional prices, stock, sellers, delivery fees and dates |
| Targeting | Country and city targeting on every plan; in the United States also state and ZIP code; ASN targeting at no extra cost. City availability varies |
| Session pattern | Rotate for product pages; sticky for multi-page flows such as a delivery estimate |
| Cheapest extraction | schema.org Product data (JSON-LD) in the page HTML |
| Typical cost | ≈60 KB per HTML product page; ≈1.8 MB per product per month at one check a day |
| Price | $0.50/GB from 50 GB; traffic never expires |

## Why does a proxy change the price I see?

Because shops tailor what they show to where the visitor appears to be. The IP address decides the country edition, the currency, whether prices include VAT, which marketplace sellers appear, and the delivery options and fees. Some retailers also run regional promotions or stock levels per warehouse.

A price monitor that runs from one server in one country sees one version of the market. Residential exits in each market show what local customers see, which is the number that matters for pricing decisions and for checking that resellers respect minimum advertised prices.

## How do I extract prices reliably?

Read structured data before you write CSS selectors. Many product pages embed schema.org `Product` data with an `Offer` in JSON-LD, which carries the price, currency and availability in a stable format; selectors break with every redesign. Fall back to selectors only where the page has no structured data.

*Python: price, currency and availability per country from JSON-LD*

```python
import json
import re

import requests

GATEWAY = "gw.crawlrelay.com:7777"
LD_JSON = re.compile(r'<script[^>]+type="application/ld\+json"[^>]*>(.*?)</script>', re.S | re.I)


def offers(html):
    """Yield (price, currency, availability) from schema.org Product data in a page."""
    for block in LD_JSON.findall(html):
        try:
            data = json.loads(block)
        except ValueError:
            continue
        for item in data if isinstance(data, list) else [data]:
            if not isinstance(item, dict) or item.get("@type") != "Product":
                continue
            offer = item.get("offers") or {}
            for o in offer if isinstance(offer, list) else [offer]:
                if isinstance(o, dict):
                    yield o.get("price") or o.get("lowPrice"), o.get("priceCurrency"), o.get("availability")


def check(url, country):
    proxy = "http://USERNAME-country-%s:PASSWORD@%s" % (country, GATEWAY)
    r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
    return r.status_code, list(offers(r.text))


for cc in ("us", "gb", "de"):
    print(cc, check("https://www.example.com/product/123", cc))
```

## How much traffic does price monitoring use?

Count product pages, markets and checks, then multiply by page weight. With about 60 KB per compressed HTML product page:

| Products × markets | Checks | Pages per month | Traffic per month |
| --- | --- | --- | --- |
| 1,000 × 1 | Daily | 30,000 | ≈1.8 GB |
| 10,000 × 3 | Daily | 900,000 | ≈54 GB |
| 10,000 × 3 | Hourly on 500 key products | 900,000 + 1,080,000 | ≈119 GB |
| 100,000 × 5 | Weekly | ≈2.1 million | ≈130 GB |

At CrawlRelay, traffic never expires, so a 100 GB plan ($50) can cover a 54 GB month and most of the next. Rendering pages in a browser costs about forty times more traffic: render only the shops that need JavaScript.

## Rotating or sticky sessions for price checks?

Rotate between products and stay sticky inside a flow. Product pages are independent, so each can leave through a new exit in the target country. A delivery estimate that needs a postcode, a cart total or a paginated search listing spans several requests, and the shop expects them from one visitor: give that flow one session ID with a TTL of a few minutes, then drop it.

## How often should I check prices?

As often as prices really change, and no more. Daily checks suit most catalogues; hourly checks suit marketplaces, travel fares and flash sales on a short list of key products. Three habits cut cost and load:

- **Re-check what moves.** Track the change rate per product and slow down the stable ones.
- **Ask before you download.** Send `If-None-Match` or `If-Modified-Since`; a `304 Not Modified` costs a few hundred bytes.
- **Spread the work.** Run checks across the day per site instead of in one burst at midnight.

## What are the rules for monitoring competitors' prices?

Public prices are generally facts that anyone can read, but how you collect them still matters. Respect each site's robots.txt and terms, keep a polite request rate, do not log in to accounts, and do not place orders or reserve stock to read a price. Never use monitoring to buy up limited stock or tickets. CrawlRelay's [Acceptable Use Policy](https://crawlrelay.com/acceptable-use/) applies, and our [overview of web scraping law](https://crawlrelay.com/guides/is-web-scraping-legal/) covers the wider picture. This is not legal advice.

## Price monitoring proxies: questions

### Can I monitor prices in specific cities?

Yes. Add `-city-<name>` to the username, and in the United States `-state-` or `-zip-`; `-asn-` picks an internet provider. City-level targeting matters for delivery fees, local stock and same-day offers, and city availability varies. Use the narrowest level only where the data changes with it, because narrower targeting draws on fewer exits.

### What is MAP monitoring and do proxies help?

Minimum advertised price (MAP) monitoring checks whether resellers advertise a brand's products below an agreed price. Resellers may show different prices per country or region, so brands check from residential exits in each market and keep dated evidence of each offer they record.

### How many products can I monitor with 1 GB?

About 16,000 HTML product page checks at 60 KB each, for example 500 products checked daily for a month. Pages with large inline scripts weigh more; measure 100 of your real pages and divide 1 GB by their average compressed size.

### Should I use mobile proxies for price monitoring?

Only for shops that show different prices or stock in their mobile apps or mobile sites. At CrawlRelay, mobile traffic costs $3.18 for 1 GB and $1.50/GB from 5 GB, against $1.50 for 1 GB and $0.50/GB from 50 GB for residential, so test first on the 1 GB mobile plan.

**Monitor prices market by market** $0.50/GB from 50 GB, traffic that never expires. [Choose 100 GB](https://crawlrelay.com/app/checkout/?plan=res-100&product=residential&lang=en) · [See pricing](https://crawlrelay.com/pricing/)

---

CrawlRelay: CrawlRelay is a developer-first rotating residential and 4G/5G mobile proxy service for scrapers and AI data pipelines: non-expiring pay-as-you-go traffic from $0.50/GB, paid in crypto, with no ID upload. No KYC — no ID, no selfie, no documents. Pay in crypto.
