Site scraper

Price Scraping: Any Store Page via API

HTTP $0.50JS rendering $2.00 per 1,000 results or your own scraper from $1.95/GB

Price scraping is collecting the prices that online stores show, automatically and on a schedule, so a retailer can match, beat or ignore a competitor's change. A shop with 500 SKUs, each sold by 4 competitors and checked once a day, makes 60,000 price checks a month: on ProxyField's Web Scraping API, priced at $0.50 per 1,000 successful results over plain HTTP or $0.20 from 10,000 results in one purchase, that is $12 a month, billed on successful results only, with no subscription. The API is in development: contact sales, or run your own price scraper today on ProxyField residential proxies with the Easy Trial: 1 GB for $2.95.

Web Scraping API per 1,000 successful results
Web Scraping API prices per 1,000 successful results
FetchEntryVolume, from
HTTP$0.50$0.20
JS rendering$2.00$1.00

Billed on successful results only.

Your own scraper on residential proxies
from $1.95/GB Easy Trial: 1 GB for $2.95
gate.proxyfield.io:7000
Data

What is price scraping, and how do retailers use it to track competitors?

Price scraping turns competitors' product pages into a dated price table you can compare every day. A program visits each product page, reads the price, sale price, currency, shipping and stock, and saves them with the date.

Retailers use the table to:

Read moreShow less
  • match, beat or ignore a competitor's price change;
  • spot a competitor's promotion or a product it has run out of;
  • build a price history per product.

Dynamic pricing. Retailers feed the price table into repricing rules that weigh a competitor's price against their own stock and margin: match only above a margin floor, ignore a competitor that is out of stock, and leave most small changes alone. Few retailers copy every change; the scrape tells them which changes are worth a response.

Brands use the same data to check that resellers keep to their advertised prices, and analysts use it to follow inflation and promotions.

Build or buy: three ways retailers get the data.

  1. Build your own scraper on rotating residential proxies: you own the code, the matching and the history; you pay per GB of traffic (ProxyField: $2.95/GB for 1 GB down to $1.95/GB).

  2. Use a scraping API and keep the parsing the API fetches the pages, you pay per successful page, and you write the extraction (ProxyField's Web Scraping API, in development: $0.50 per 1,000, from $0.20).

  3. Buy software or managed data that delivers finished prices, dashboards and alerts, billed per product tracked.

How price scraping works, in 5 steps

  1. Match products with a key

    For each of your SKUs, list the competitor URLs and the key that proves it is the same item: the GTIN (UPC or EAN barcode number) first, then brand plus manufacturer part number (MPN), then the normalized name with size or pack count. Store the key with each URL, and match variants (size, color) one by one.

  2. Fetch the pages on a schedule, from the country whose prices you need.

  3. Extract the price fields price, sale price, currency, shipping, stock.

  4. Validate each result before it reaches your table (the failures below).

  5. Store every run with its date, so you can see changes and build a price history.

The scraping is steps 2 and 3; the match key, the validation and the history are your data.

Validation failures to catch:

FailureHow it showsCheck
Wrong marketCurrency or tax differs from the market you compete inCompare the currency with the country you fetched from
A page that is not the productA sign-in, "access denied" or cookie-banner page with status 200 and no priceRequire the product name, the key and a price in every result
Script-loaded pricePrice field empty in the HTMLFetch that store with JS rendering
Sale and regular price swappedThe struck-through price lands in the price columnRead both fields, from the structured data where the store has it
OutlierA 90% drop or a 10× jump overnightHold for a person to review before repricing
Out of stockAn old price stays on an unavailable productStore the stock status with the price
Wrong variantThe 1 kg price matched to your 500 g SKUMatch variants, not only products
Wrong delivery locationPrice, shipping or stock differ by ZIP code or storeSet the delivery location per session the way a shopper does, and store it with the price

How often to check prices

ProductsTypical check500 SKUs × 4 competitors, plain HTTP
Flash sales, fast-moving marketplace listingsHourly24 runs a day: 1,440,000 checks, $288 a month
Marketplaces, promotion-heavy categoriesSeveral times a day4 runs a day: 240,000 checks, $48 a month
Most retail catalogsOnce a day60,000 checks, $12 a month
Long-tail and slow-moving SKUsOnce a weekabout 8,700 checks, about $4.33 a month at the entry price

Prices assume one purchase per month; below 10,000 results in one purchase, plain HTTP costs $0.50 per 1,000. Match the schedule to how often your competitors change prices, not to the maximum you can afford. Scheduling with cron, cloud functions and workflow tools is covered in How to Schedule Web Scrapers.

What are the best price scraping tools for monitoring competitors?

The best tool depends on how many products you track and whether you have a developer:

  • Under about 50 products, no code Google Sheets IMPORTXML, or a scraper extension such as Data Miner.
  • A handful of pages, alerts only a page-change monitor such as Distill or Visualping.
  • No developer, dashboards and repricing price monitoring software such as Prisync or Price2Spy.
  • A developer, available today a Python scraper (requests and Beautiful Soup, Scrapy, or Playwright for script-loaded prices) on ProxyField rotating residential proxies, from the Easy Trial: 1 GB for $2.95.
  • A developer who would rather not run the fetching a price scraping API. ProxyField's Web Scraping API is in development; access starts through Contact sales.
Read moreShow less

One workload, priced for each kind of tool: 500 SKUs on 4 competitor stores, checked once a day, is 60,000 page checks a month (2,000 a day). Third-party prices are from each vendor's own page.

Kind of toolExampleCost of this workloadWhat you still do
Spreadsheet formulasGoogle Sheets IMPORTXMLNothing, but it suits a few dozen products: requests come from Google's servers and Sheets limits how often formulas refreshEverything, by hand when a store blocks the request
Scraper extensionData MinerAbove its largest listed plan (Business Plus: $200 a month for 9,000 pages); larger volumes are a custom quote (pricing)Run it in an open browser
Price monitoring softwarePrisync, URL-based Premium$199 a month: up to 1,000 products, unlimited competitors; the URL-based plans list price updates 3 times a day (pricing)Add the competitor URLs per product
Your own scraper (today)Python on ProxyField residential proxiesPer GB of traffic; the GB depend on page weight. At 200 KB per page (an example: measure yours), 60,000 pages are about 12 GB: $33.48 at $2.79/GBEverything, including retries and blocks
Price scraping API (in development)ProxyField Web Scraping API$12 over plain HTTP, $60 with JS rendering, at the volume price; no subscription and no monthly fee, a crypto balance that never expires, billed on successful results onlyMatching, parsing, history, alerts
Amazon competitors (in development)ProxyField Amazon scraper API$0.60 per 1,000 successful results, from $0.30; the price comes back as parsed fieldsMatching, history, alerts

This workload, side by side: $12 a month on the API over plain HTTP, about $33.48 with your own scraper on residential proxies, $199 on Prisync URL-based Premium. The API and your own scraper cost less per check but need a developer; the software costs more and needs none. A spreadsheet or an extension suits only a few dozen products.

Whatever you choose, compare tools on 3 things: which stores they reach from the country you need, what one result costs, and what counts as a billable result. The build-or-buy choice has three answers: build your own scraper, use a scraping API and keep the parsing, or buy managed data or software that delivers finished prices.

What's the difference between price monitoring software and a price scraping API?

For the same 180,000 checks a month (500 SKUs on 4 competitors, 3 times a day), a monitoring plan costs $199 (Prisync URL-based Premium) and a price scraping API costs $36 over plain HTTP (ProxyField's Web Scraping API at $0.20 per 1,000), before your developer's time. Price monitoring software is a finished tool billed per product tracked, with the dashboards, alerts and repricing included; a price scraping API returns the pages you choose, billed per successful page, and you build the matching, history and alerts. ProxyField's API is in development (Contact sales); ProxyField sells the API and proxies, not monitoring software.

Read moreShow less

There is a third kind: enterprise pricing platforms add demand modelling and price optimisation on top of the collected data, sold on negotiated contracts with an onboarding project. They suit large retailers with a pricing team; the comparison below is between the first two.

ItemPrice scraping API (ProxyField Web Scraping API)Price monitoring software (such as Prisync)
You getThe product page for every URL you sendDashboards, alerts, repricing rules
FieldsAny field on the page: you write the extractionThe fields the vendor chose
StoresPublic store pages you pick, within each store's terms and our acceptable use policyThe stores and URLs the tool can read
Check frequencyAs often as you schedule and pay forSet by the plan (Prisync's URL-based plans: 3 times a day)
Product matchingYoursIncluded or assisted
MaintenanceSelectors and matching are yours to fix when a store changesThe vendor's
Who runs itA developer or data teamA pricing or category manager
Cost basisPer successful page: $0.50 per 1,000 over plain HTTP ($0.20 from 10,000 in one purchase), $2.00 with JS rendering ($1.00)Per product tracked, monthly: Prisync URL-based tiers for up to 100, 1,000 and 5,000 products, $199 for up to 1,000
BillingNo subscription or monthly fee; one crypto balance that never expires; billed on successful results onlyA monthly plan
Parsed price fieldsWeb Scraping API: the page, you parse it; Amazon scraper API: price, price_strikethrough, currency, discount_percentage, couponIncluded

The same job on both sides. 500 SKUs on 4 competitor stores, checked 3 times a day as Prisync's URL-based plans do, is 180,000 checks a month:

ItemPrisync URL-based PremiumProxyField Web Scraping API
Monthly price$199$36 over plain HTTP, $180 with JS rendering
Per product and competitorabout $0.10$0.018 over plain HTTP

Per pair: one product on one competitor checked once a day is 30 checks a month, $0.006 at the volume price ($0.015 at the entry price). Compare that with a vendor's price per tracked product.

What the $36 does not include:

  • no dashboard and no alert emails;
  • no product matching and no repricing rules;
  • the developer hours to parse, store and report.

When the software costs less in practice: the API is cheaper per check, but if nobody on your team can build the parser, the matching and the alerts, a $199 plan that delivers them is cheaper than the hours it would take. The API wins when a developer already runs your data, or when your volume outgrows the plan's product limit.

Choose the API if:

  • you have a developer or a data warehouse that already holds your prices;
  • your competitors include small or unusual stores;
  • the price data feeds your own product, model or repricing engine;
  • you track thousands of SKUs and want to pay per page, not per product slot.

Choose monitoring software if:

  • nobody on the team writes code;
  • the dashboard and the alert emails are the deliverable;
  • the plan's product limit fits your catalog.

Test both in one week. Take 20 SKUs whose prices you know change often, run them through both options for 7 days, and count the correct prices, the manual fixes and the hours until the data was usable. The cheaper option per correct price wins.

Price data you can collect

A public product page shows most of what a pricing team needs. Many stores also embed it as structured data (schema.org/Offer), which is the most stable place to read it.

FieldWhere it usually isNote
Price and sale priceProduct page, structured dataRead both: the struck-through price shows the discount
CurrencyStructured data, page localeChanges with the country you fetch from
Stock statusProduct page, structured dataIn stock, out of stock, preorder
Shipping costProduct or offer pageOften depends on the delivery location
Seller and offer countMarketplace offer listSeveral prices for one product
Unit priceGrocery and household storesPer kg, per litre or per item

Not in scope: prices behind a customer login, B2B price lists, cart-only coupons. The API returns the page itself as HTML, Markdown or plain text, or a JSON envelope with the status code, the final URL, the headers, the cookies and the content; it has no parsed price fields, so your parser reads them.

Pricing

Pricing: $0.50 per 1,000 price checks, from $0.20

Every price check is one product page, billed at the Web Scraping API's price. The API is in development: this is its design and its price, and access starts through Contact sales. You pay only for successful results. Billed: a page the store answered with a 2xx status. Not billed: blocked requests, timeouts and errors on our side; a blocked request is retried on new IPs, and the retries are not billed. Every response says whether it was billed. A target's 404 or 410, and a sign-in page the site serves with a 200 status, count as billed results, which is why validation checks every result for a price. The volume prices start at 10,000 successful results in one purchase.

Choice
Choice, Price per 1,000 successful results, Use it for
ChoicePrice per 1,000 successful resultsUse it for
Plain HTTP$0.50, from $0.20 at volumeStores that put the price in the HTML or the structured data
JS rendering$2.00, from $1.00 at volumeStores that load the price or stock with scripts
Workload (30-day month, one purchase)Price checksPlain HTTP at $0.20JS rendering at $1.00
500 SKUs on 4 competitors, daily60,000$12$60
500 SKUs on 4 competitors, 3 times a day180,000$36$180
5,000 SKUs on 10 competitors, daily1,500,000$300$1,500
5,000 SKUs on 10 competitors, weeklyabout 217,000about $43about $217

Every workload above is 10,000 results or more, so it takes the volume price when the month's results are bought in one purchase; smaller purchases pay $0.50 (plain HTTP) and $2.00 (JS rendering) per 1,000. You send a product URL and choose plain HTTP or JS rendering; the API returns the page. The API takes a POST to https://api.proxyfield.io/v1/scrape with your API key in an Authorization: Bearer <api_key> header and a JSON body: url, render (false for plain HTTP, true for JS rendering), country and output (html, markdown, text or json). For stores that load the price with scripts, wait_for takes a CSS selector the rendered page must show before it is returned. Parameter reference: API documentation.

Shell
# The request the Web Scraping API takes (access through Contact sales)
curl https://api.proxyfield.io/v1/scrape \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://store.example.com/products/blue-kettle", "render": false, "country": "us", "output": "json"}'

Example response (shortened; content is the page's HTML):

JSON
{
  "metadata": {"id": "req_5d07b3e9c2a1f684", "api": "web_scrape", "status": "success", "billed": true},
  "status_code": 200,
  "final_url": "https://store.example.com/products/blue-kettle",
  "content_type": "text/html; charset=utf-8",
  "content": "<!DOCTYPE html><html lang=\"en\">…</html>"
}

Limits and coverage in the API's design:

ItemWeb Scraping APIAmazon scraper API
Price per 1,000 successful results$0.50 plain HTTP, $2.00 JS rendering; from $0.20 and $1.00 at 10,000+$0.60, from $0.30 at 10,000+
What comes backthe page as HTML, Markdown, text or a JSON envelopeparsed fields, including price, price_strikethrough, currency, discount_percentage, coupon, stock and the Buy Box seller
Countriescountry: any of the proxy pool's 195+ countriesamazon.com, amazon.co.uk, amazon.de, amazon.fr, amazon.it, amazon.es, amazon.ca and amazon.co.jp at launch; zip_code for a US delivery ZIP on amazon.com
Concurrency20 concurrent requests per account; higher limits through salesthe same
Batchesup to 1,000 requests per batch, a signed callback per finished job, results kept 48 hoursthe same

Payment and balance: the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. There is no SDK in v1: you call the API over HTTPS from any language. All prices: pricing.

Through the sales team on our 24/7 live chat

Sales contact: the sales team on our 24/7 live chat.

Prices by country, region and city

Stores change prices, currency, tax and shipping by the shopper's location, so fetch each store from the market you compete in. With your own scraper, ProxyField residential proxies offer country, region (state) and city targeting, with 412M+ residential IPs in 195+ countries and 21,000+ cities; there is no ZIP code targeting. Stores that price by ZIP code usually take the delivery location from a setting on the site, which your scraper sets per session.

Example: to read a Dutch store such as Bol.com as a shopper in the Netherlands sees it, fetch it through Dutch residential IPs; ProxyField has 3.2M+ residential IPs in the Netherlands and 110+ cities. On the Web Scraping API itself, country sets the country the request comes from (the exit IP), as a two-letter code such as de; there is no city setting. The countries it accepts: the proxy pool's 195+ countries.

Price scraping in Google Sheets

For a few dozen products, Google Sheets can read a price with IMPORTXML, which takes a URL and an XPath:

=IMPORTXML("https://store.example.com/products/blue-kettle", "//meta[@property='product:price:amount']/@content")

It costs nothing and needs no code, but the request comes from Google's servers, not through your proxies, so stores that block bots often return nothing, and Sheets limits how often the formulas refresh. Past that point, call an API from Apps Script or move the list to a script. More in Web Scraping With Google Sheets.

Do it yourself

Scrape prices with Python and ProxyField proxies

A Python price scraper fetches each URL through rotating residential IPs, reads the offer from the page's structured data and appends it to a file with the time, so every run adds to your price history.

Python
import csv, json, datetime
import requests
from bs4 import BeautifulSoup

proxy = "http://<login>-country-us:<password>@gate.proxyfield.io:7000"
urls = ["https://store.example.com/products/blue-kettle"]   # your competitor URLs

with open("prices.csv", "a", newline="") as f:
    out = csv.writer(f)
    for url in urls:
        resp = requests.get(url, proxies={"http": proxy, "https": proxy},
                            headers={"User-Agent": "Mozilla/5.0"}, timeout=30)
        if resp.status_code != 200:
            continue                      # blocked or gone: try again later
        soup = BeautifulSoup(resp.text, "html.parser")
        for tag in soup.select('script[type="application/ld+json"]'):
            data = json.loads(tag.string or "{}")
            if isinstance(data, dict) and data.get("@type") == "Product":
                offer = data.get("offers") or {}
                offer = offer[0] if isinstance(offer, list) else offer
                out.writerow([datetime.datetime.now(datetime.timezone.utc).isoformat(), url,
                              offer.get("price"), offer.get("priceCurrency"),
                              offer.get("availability")])

ProxyField residential proxies cost $2.95/GB for 1 GB, $2.79 from 10 GB, $2.65 from 50 GB, $2.49 from 100 GB and down to $1.95/GB from 1,000 GB, with no subscription; the traffic never expires, and all purchases are final. You get a new IP on every request or a sticky session from 30 s to 36 h, over HTTP, HTTPS or SOCKS5. For stores that need a browser, the same settings work in Playwright. The proxy side of price monitoring, with more examples, is on price monitoring proxies.

FAQ

Price Scraping FAQ

24/7 support by live chat, including help with setup and integration.

What are the best price scraping tools for monitoring competitors?

ProxyField residential proxies run your own price scraper today, from 1 GB for $2.95, if you have a developer (500 SKUs on 4 stores daily is about 12 GB, $33.48, at 200 KB a page); ProxyField's Web Scraping API, in development through Contact sales, is priced at $0.50 per 1,000 successful results over plain HTTP, or $0.20 from 10,000, with no subscription. Without a developer, price monitoring software such as Prisync or Price2Spy gives you dashboards and alerts (Prisync: $199 a month for up to 1,000 products); for a handful of pages, Distill or Visualping send change alerts, and for under about 50 products Google Sheets IMPORTXML or the Data Miner extension is enough. Compare any of them on which stores they reach, what one result costs and what counts as billable.

What is price scraping, and how do online retailers use it to track competitors?

Price scraping is collecting the prices that online stores show, automatically and on a schedule. Retailers fetch their competitors' product pages, usually daily, match them to their own SKUs by GTIN or brand plus part number, and use the price table to reprice, react to promotions or spot stock gaps. 500 SKUs on 4 competitors checked daily is 60,000 checks, $12 a month on ProxyField's Web Scraping API at the volume price.

What's the difference between price monitoring software and a price scraping API?

Price monitoring software bills per product tracked and includes the dashboards, alerts and repricing; a price scraping API bills per successful page and returns the pages, so you build the matching, history and reports. For 500 SKUs on 4 competitors checked 3 times a day, Prisync's URL-based Premium plan is $199 a month (prisync.com), and ProxyField's Web Scraping API (in development) is priced at $36 over plain HTTP for the same 180,000 checks, before your developer's time. Enterprise pricing platforms are a third kind: they add demand modelling and price optimisation on negotiated contracts.

How do I match the same product across competitor stores?

Use a match key: the GTIN (UPC or EAN barcode number) where both stores show it, then brand plus manufacturer part number, then the normalized name with size or pack count. Store the key with each competitor URL and match variants one by one, so a 1 kg price never lands on your 500 g SKU.

How often should I scrape competitor prices?

Once a day suits most retail catalogs; marketplaces and promotion-heavy categories need several checks a day, and slow-moving SKUs once a week. For 500 SKUs on 4 competitors, daily checks are 60,000 a month ($12 over plain HTTP on ProxyField's Web Scraping API at the volume price) and 4 checks a day are 240,000 ($48).

How do I scrape Bol.com prices from outside the Netherlands without getting blocked?

Fetch Bol.com through Dutch residential IPs, so the store shows Dutch prices and treats you as a local shopper, and keep the rate low with a new IP on every request. ProxyField has 3.2M+ residential IPs in the Netherlands, from $1.95/GB; the Web Scraping API, in development, is priced at $0.50 per 1,000 successful results with country set to nl.

Who uses price scraping?

Online retailers and marketplace sellers repricing against competitors, brands checking that resellers keep to advertised prices, travel and comparison sites, and analysts tracking inflation or promotions. Small shops use it too, often for a few hundred products.

What are the challenges of price scraping?

Stores block fast, repetitive requests, show different prices by country and by delivery ZIP code or store, load some prices with scripts and change their page layouts. Matching the same product across stores is the other hard part, and no scraper does it for you.

Why does my scraper return different prices than what I see in the browser?

Usually because the store priced the request for a different location, currency or customer type, or because the price is loaded by a script the scraper did not run. Fetch from the shopper's country, set the store's location the way a shopper would, and render the page if the price is missing from the HTML.

Can I scrape prices by region, currency or ZIP code?

By country, region and city, yes: ProxyField residential proxies offer country, region (state) and city targeting, with IPs in 195+ countries, and the currency follows the country. ZIP code targeting is not offered; stores that price by ZIP code usually take it from a delivery-location setting on the site.

Show 11 more questionsShow fewer questions

How do I scrape prices at scale?

Send the product URLs to an API or a scraper on rotating IPs in parallel, spread the load per store, read prices from the structured data and store every run with its date. 1.5 million price checks a month are $300 on ProxyField's Web Scraping API over plain HTTP at the volume price of $0.20 per 1,000.

How much does price scraper software cost?

Price monitoring software charges a monthly plan by the number of products: Prisync's URL-based plans are tiered for up to 100, 1,000 and 5,000 products, $199 a month for up to 1,000 (prisync.com). An API charges per page: on ProxyField's Web Scraping API, 60,000 price checks a month (500 products on 4 stores, daily) are $12 over plain HTTP, about $0.024 per product.

Can I scrape prices into Google Sheets?

Yes, for a few dozen products: IMPORTXML reads a price from a URL with an XPath, with no code. The request comes from Google's servers, so stores that block bots often return nothing; for more products, call an API from Apps Script or use a script.

Can I scrape prices with Python?

Yes: requests through a rotating residential proxy, Beautiful Soup to read the offer from the page's structured data, and a CSV or database row per check, as in the code on this page. Add Playwright for stores that load prices with scripts.

Do price scraping tools need proxies?

Beyond a few hundred pages a day per store, yes: stores limit requests per IP and show local prices only to local IPs. A scraping API includes the fetching, so you need no proxies of your own; for your own scraper, ProxyField residential proxies cost from $1.95/GB.

Is Scrapy or Playwright better for price scraping?

Scrapy is faster and lighter for stores that put prices in the HTML; Playwright runs a real browser for stores that load prices with scripts. Many teams use Scrapy for most stores and Playwright only where it is needed.

How do I schedule and automate regular price scraping?

Run the scraper from a scheduler such as cron, a cloud function or a workflow tool at the hours that match the stores' price changes, and write each run with its timestamp. Alert on failed runs, so a layout change does not leave a gap in your history.

How do I make sure scraped prices are accurate?

Read prices from the structured data where a store has it, check the currency and location of every fetch, keep the sale and the regular price apart, and flag outliers such as a 90% drop for review. Reject results with no price, such as a sign-in page served with status 200, and spot-check a sample in a normal browser from the same country.

Can I get price history by scraping?

A store's page shows only today's price, so price history comes from storing every scrape with its date. Start the schedule now; after a month of daily checks you have 30 data points per product.

Can AI help with price scraping?

Yes, mostly for extraction and matching: a language model can read a price from messy HTML or decide whether two listings are the same product. It does not fetch pages for you, so you still need a scraper or an API, and you should check its output on a sample.

Can I scrape prices without coding?

For a small list, yes: Google Sheets with IMPORTXML, a browser extension or a no-code scraping tool. For daily checks on many stores, a developer with an API or a script costs less per product and breaks less often.

Start collecting public pages with the Web Scraping API

Billed on successful results only. Contact sales for the Web Scraping API and the volume you need, or run your own scraper on residential proxies. 24/7 live chat helps with setup and integration.