Costco Scraper: Public Costco Product and Price Pages
ProxyField's Costco scraper needs no Costco membership for public product, search and category pages: Costco says nonmembers may order from costco.com, and only Member Only Items hide their price until you sign in, which a scraper should not do. Stock and delivery options follow the delivery ZIP code or warehouse you set, so fix one and record it with every check. The Web Scraping API is designed to fetch those pages for $2.00 per 1,000 successful results with JS rendering, $1.00 from 10,000 results in one purchase, or $0.50 per 1,000 over plain HTTP; it is in development, so access is through Contact sales. To run your own Costco scraper today, use US residential proxies with the Easy Trial: 1 GB for $2.95.
Through the sales team on our 24/7 live chat
| Fetch | Entry | Volume, from |
|---|---|---|
| HTTP | $0.50 | $0.20 |
| JS rendering | $2.00 | $1.00 |
Billed on successful results only.
Do you need a Costco membership or a ZIP code?
No membership for public pages; a delivery location for stock, delivery options and warehouse data. What each piece of Costco data needs, from Costco's own help pages:
| Costco data | Membership or sign-in | Location | Costco's source |
|---|---|---|---|
| Product, search and category pages with online prices | No: "Nonmembers may order products from our website as well as members." | Not for the page itself; set one anyway so every check is comparable | Costco customer service: buying online |
| Member Only Items | Yes: "You must be logged in to Costco.com and have a valid Costco Membership number saved in your online account"; the product page prompts you to log in to display pricing. Out of scope for a scraper | Costco customer service: member-only items | |
| Delivery options and online stock | No | The delivery location you set (the "Set Delivery Location" button: city, state or ZIP) | Costco grocery FAQ |
| Warehouse inventory and price | No | A ZIP code or city and state, then a preferred warehouse; "Inventory availability and pricing are delayed by up to 30 minutes" | Costco customer service: warehouse inventory |
Read moreShow less
Neither a membership nor a ZIP code gives permission to scrape. Costco's Terms of Use, section 9 "Your Conduct", bar "data mining, robots, agents or similar data gathering or extraction methods" and tools "designed to scrape or extract data from our Services" (see the law and Costco's terms below).
How to keep one delivery location across a run
Costco takes the delivery location from what you choose on the site (Set Delivery Location), and your browser keeps it with the session's cookies; an IP address does not set a ZIP code. ProxyField targets by country, region and city, not by ZIP code, so the ZIP code comes from the site setting:
-
Set the location once in a browser: open costco.com, use Set Delivery Location or pick a warehouse, and keep that browser context's cookies.
-
Keep IP and cookies together run the whole check in one sticky session in the same area, such as
<login>-country-us-city-new_york-session-cost01-ttl-1800(30 minutes; up to 129,600 s, 36 h), so the site sees one visitor in one place. -
Record the location (ZIP or warehouse) with every price you store, next to the item number and the time.
-
With the Web Scraping API (its design, API documentation): pass the same
cookieson every request, or set the location with browseractions(click,fill) at the start, and use onesession_idto keep the exit IP for up to 10 minutes.
What a Costco scraper collects
A Costco scraper reads the pages any visitor to costco.com sees without signing in. The Web Scraping API is designed to fetch a Costco URL and return the page; your code takes the fields out of it. ProxyField sells no separate Costco API with pre-parsed fields.
| Costco page | Example URL | What the public page shows |
|---|---|---|
| Product page | costco.com/<name>.product.<item-number>.html | Name, brand, price, online savings and their end date, item number, rating, review count, features, specifications, delivery options |
| Search results | costco.com/s?keyword=<query> | Products in result order, prices, ratings, filters by brand and price |
| Category pages | costco.com/<category>.html | Products in a department, prices, savings badges |
| Reviews | on the product page | Star rating, review text, date |
Member Only Items and anything behind a Costco sign-in are out of scope: ProxyField's acceptable use policy forbids accessing data behind logins you are not entitled to. 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.
Item numbers and country sites
Every Costco product carries an item number, the last number in its product URL. Store it as the product's ID: it lets you match the same item across days and join price history without relying on names, which can change.
Costco also runs separate sites in other countries, among them Canada (costco.ca), the United Kingdom (costco.co.uk), Mexico (costco.com.mx), Japan (costco.co.jp) and South Korea (costco.co.kr). Each has its own catalog and prices in local currency; fetch it from that country. ProxyField has 61.2M+ residential IPs in the United States, 5.5M+ in Canada and 16.6M+ in the United Kingdom. In the Web Scraping API, country sets the country the request comes from, as a two-letter code such as ca for costco.ca; it accepts the proxy pool's 195+ countries.
Costco's own APIs or a scraper?
As far as Costco's public pages show, it offers no public product or price API for developers. Its suppliers exchange orders and inventory with Costco through supplier systems, which cover their own items only. To follow prices, savings and ratings across the catalog, a scraper reads the public pages.
| Item | Costco supplier systems | Web Scraping API |
|---|---|---|
| Who can use it | Costco's suppliers | ProxyField customers, through Contact sales |
| Data | Your own items and orders | Any public product, search or category page |
| Competitors' prices and savings | No | Yes, as shown on the page |
| Billing | Set by Costco | Per 1,000 successful results |
What you send
In the API's design, you send a Costco URL and get the page back: 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, cookies, session_id and output (html, markdown, text or json). With rendering, wait_for takes a CSS selector to wait for, such as the price element. Parameter reference: API documentation.
A product URL looks like https://www.costco.com/example-product.product.100123456.html, and a search like https://www.costco.com/s?keyword=olive+oil.
# The request as designed (the API is in development: access through Contact sales)
curl https://api.proxyfield.io/v1/scrape \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.costco.com/s?keyword=olive+oil", "render": true, "country": "us", "cookies": "<the location cookies from your browser>", "session_id": "costco-ny-01", "output": "json"}'Example response (shortened; content is the rendered page's HTML):
{
"metadata": {"id": "req_43a223d24108a229", "api": "web_scrape", "status": "success", "billed": true},
"status_code": 200,
"final_url": "https://www.costco.com/s?keyword=olive+oil",
"content_type": "text/html; charset=utf-8",
"content": "<!DOCTYPE html><html lang=\"en-US\">…</html>"
}Pricing: $2.00 per 1,000 rendered Costco pages, $1.00 from 10,000
Costco's pages are built for a browser, so check one URL over plain HTTP first: if the price is in the returned HTML, plain HTTP at $0.50 per 1,000 ($0.20 from 10,000) is enough; if it is not, use JS rendering at $2.00 per 1,000 successful results, $1.00 from 10,000 results in one purchase.
Every response says whether it was billed.
| What | Billed |
|---|---|
| A page Costco answered | Yes |
| A target's 404 or 410, and a sign-in page served with a 200 status | Yes (the market norm) |
| Error responses, blocked and timed-out requests | No |
| Our internal retries | No |
| Workload (30-day month) | Pages a month | JS rendering at $2.00 | At $1.00 (from 10,000) |
|---|---|---|---|
| 2,000 products, price and savings daily | 60,000 | $120 | $60 |
| 100 search terms, first 2 result pages, daily | 6,000 | $12 | $6 (in a purchase of 10,000+) |
| A one-off crawl of 20,000 products | 20,000 | $40 | $20 |
The API is paid from the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. For availability and access, contact sales through the sales team on our 24/7 live chat. All prices: pricing.
Through the sales team on our 24/7 live chat
When Costco blocks a scraper
Large retail sites like Costco run bot protection that can answer fast, repetitive or datacenter traffic with a block page or an empty response instead of the product. A real browser, a low rate per IP, US residential IPs and one sticky session per browser, so cookies and IP stay together, reduce blocks. With the Web Scraping API, blocked requests are not billed.
Scrape Costco with Python and Playwright
For a few hundred products, a browser script through US residential IPs works. This one opens a product page in Chromium through ProxyField in one sticky session and prints the title and the prices it finds once the page has run its scripts.
import re
from playwright.sync_api import sync_playwright
PROXY = {"server": "http://gate.proxyfield.io:7000",
"username": "<login>-country-us-city-new_york-session-cost01-ttl-1800",
"password": "<password>"}
URL = "https://www.costco.com/example-product.product.100123456.html"
with sync_playwright() as p:
browser = p.chromium.launch(proxy=PROXY)
context = browser.new_context(locale="en-US") # set the delivery location once in this context
page = context.new_page()
page.goto(URL, wait_until="networkidle", timeout=90000)
# Costco changes its markup: check the selectors on a live page first
print(page.title())
print(re.findall(r"\$\d[\d,]*\.\d{2}", page.inner_text("body"))[:5])
context.storage_state(path="costco-ny.json") # reuse the cookies, and the location, next run
browser.close()Access opens once the payment is confirmed; the gateway, credentials or allowlist are in your account. With username and password, the line format is gate.proxyfield.io:7000:<login>-country-us-region-<region>-city-<city>-session-<id>-ttl-<seconds>:<password>; every part after the login is optional, and without ttl a sticky session lasts 20 minutes. An IP idle for 120 seconds is replaced, so keep requests coming within a run. With the IP allowlist, you connect to the port you set up in the dashboard instead of 7000.
ProxyField residential proxies cost $2.95/GB for 1 GB and from $1.95/GB at volume, with no subscription; the traffic never expires, and all purchases are final. In the United States you get 61.2M+ residential IPs in all 50 states and 2,800+ cities, a new IP on every request or a sticky session from 30 s to 36 h. More on US proxies and Playwright.
What teams use Costco data for
- Price monitoring daily prices and online savings on your own or competing products.
- Promotion tracking which items go on savings, by how much and until when.
- Assortment research which brands and pack sizes Costco carries in a category.
- Retail price comparison the same item at Costco, Walmart and Target, matched by brand and size.
- Review analysis ratings and complaints by product.
For prices across many stores, see price scraping and the ecommerce scraper.
Costco's terms and the law
Costco's Terms of Use, section 9 "Your Conduct", bar "data mining, robots, agents or similar data gathering or extraction methods" and tools "designed to scrape or extract data from our Services". Breaking site terms is a contract question, separate from whether scraping breaks a law. Prices and ratings are facts; product photos, descriptions and review texts can be protected by copyright, so keep facts and short excerpts rather than republishing content. The wider answer is in Is It Legal to Scrape eBay, Walmart, Zillow and Other Marketplaces? and Is Web Scraping Legal? US, EU and UK Rules (2026).
ProxyField's rule for every site: public pages only, and follow the site's terms. Our acceptable use policy allows price monitoring and collecting public web data, and forbids fraud, including fake accounts or engagement, and accessing data behind logins you are not entitled to. This is not legal advice.
More scrapers
- Walmart scraper and Target scraping: the other big US retailers on the same Web Scraping API.
- Amazon scraper API: Amazon product and search pages, $0.60 per 1,000 successful results, $0.30 from 10,000.
- Google SERP API: the Google results page as JSON, $1.20 per 1,000 successful results, $0.80 from 10,000.
- All scrapers: scrapers.
Costco Scraper FAQ
24/7 support by live chat, including help with setup and integration.
What is a Costco scraper API?
ProxyField's Costco scraper is its Web Scraping API on Costco pages, designed to fetch public product, search and category pages for $2.00 per 1,000 successful results with JS rendering, $1.00 from 10,000 results; it is in development, through Contact sales. In general, a Costco scraper API is a service that takes a Costco URL and returns the page, so you get prices without running browsers and proxies yourself.
Do I need a Costco membership or a delivery ZIP code to scrape Costco product prices and stock?
No membership for public product, search and category pages: Costco says nonmembers may order from its website, and only Member Only Items need a signed-in membership to show their price. For stock and delivery options you need a location: set a delivery ZIP code or a warehouse, keep it the same on every fetch and record it with each price. Neither gives permission to scrape; Costco's Terms of Use bar automated extraction.
Do Costco prices and stock change with the ZIP code or warehouse?
Stock and delivery options do: they follow the delivery location you set, and warehouse inventory and pricing need a chosen warehouse, delayed by up to 30 minutes, per Costco. Keep one location per run so your prices are comparable.
Can I target a Costco ZIP code with a proxy?
Not through the IP: ProxyField targets country, region and city, not ZIP codes, and Costco takes the ZIP from the location you set on the site. Use a US city in the proxy username, such as <login>-country-us-city-new_york, and set the ZIP on costco.com in the same sticky session.
How is Costco scraping priced?
On ProxyField's Web Scraping API you pay per 1,000 successful results: $2.00 with JS rendering, $1.00 from 10,000 results in one purchase, or $0.50 over plain HTTP, $0.20 from 10,000. A daily price check of 2,000 products is 60,000 rendered pages a month, $120, or $60 at the volume price.
How do I scrape Costco data?
Collect product URLs from search or category pages, set one delivery location, open each product page in a browser through US residential IPs, wait for the price to load and read it with the item number from the URL. Keep the rate low, or send the URLs to a scraping API with JS rendering.
How does a Costco scraper API work?
You send a Costco URL, the API fetches it through its own IPs, runs the page's scripts when you ask for rendering and returns the page. You parse the price, savings and rating from it and pay only for successful results.
What data can you extract from Costco?
From public pages: product name, brand, price, online savings and their end date, item number, rating, review count, features, specifications and delivery options, plus the order of products in search and category pages. Member Only Items and anything behind a sign-in are out of scope.
Does Costco have a public API?
Not for product data, as far as Costco's public pages show. Suppliers exchange orders and inventory with Costco through supplier systems for their own items; prices across the catalog come only from the public pages.
How do I extract Costco product prices in real time?
Fetch the product pages you track on a schedule, as often as your use needs, with the same delivery location each time, and store the price with a timestamp. Test one URL over plain HTTP first; if the price is missing from the HTML, render the page.
Show 10 more questionsShow fewer questions
How do I extract Costco product identifiers?
Take the item number from the product URL: it is the number before .html in costco.com/<name>.product.<item-number>.html, and the page shows it too. Use it as the key for price history and to match items across runs.
Can I extract data from Costco's search results?
Yes: a search URL such as costco.com/s?keyword=olive+oil returns products in result order with prices and ratings. Page through the results, and filter by brand or price to keep each list short.
Can I scrape Costco sites in other countries?
Yes: Costco runs separate sites, for example costco.ca in Canada and costco.co.uk in the United Kingdom, each with its own catalog and local prices. Fetch each site from its country; ProxyField has 5.5M+ residential IPs in Canada and 16.6M+ in the United Kingdom.
Can Costco detect proxies?
Bot protection on large retail sites looks at request rate, IP type and browser behaviour, and datacenter ranges are the easiest to spot. Residential IPs from home internet providers look like ordinary visitors, but a high request rate gets blocked whatever the IP type.
What is a Costco proxy?
A proxy you route Costco requests through, usually a US residential IP, so your scraper or price checks are not tied to your own address. With ProxyField you can target a state or city and choose a new IP on every request or a sticky session from 30 s to 36 h.
Which proxy type works for Costco?
Rotating US residential proxies for product lists, and a sticky session for each run that sets a delivery location, with a real browser for the price. ProxyField's residential proxies cost $2.95/GB for 1 GB and from $1.95/GB at volume.
How do I export Costco data to a spreadsheet or database?
Write each product as one row, with item number, name, price, savings, rating, delivery location and time of the check, to a CSV file or a database table. A spreadsheet works for a few hundred items; a database keeps daily price history.
What are the use cases for Costco scraping?
Price and savings monitoring, promotion tracking, assortment research, retail price comparison with other stores and review analysis. Brands also check how their own products are listed and priced.
Can I scrape Costco with Python?
Yes: Playwright or Selenium in Python can open the page through a proxy, wait for the price and read it. Plain requests returns the HTML before scripts run, which may lack the price.
Is scraping Costco legal?
Costco's Terms of Use, section 9, bar data mining, robots and other automated extraction, so scraping breaches its terms even for public pages; whether it breaks a law is a separate question. Keep to public prices and facts, and do not republish product photos or descriptions; this is not legal advice.
Related pages
Collect Costco 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.