     [Blog](https://scrapfly.io/blog)   /  [api](https://scrapfly.io/blog/tag/api)   /  [7 Best E-commerce Product Data APIs for Developers in 2026](https://scrapfly.io/blog/posts/best-ecommerce-product-data-apis)   # 7 Best E-commerce Product Data APIs for Developers in 2026

 by [Mayada Shaaban](https://scrapfly.io/blog/author/mayada-shaaban-90143e67) Oct 23, 2026 18 min read [\#api](https://scrapfly.io/blog/tag/api) [\#ecommerce](https://scrapfly.io/blog/tag/ecommerce) [\#python](https://scrapfly.io/blog/tag/python) 

 [  ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis "Share on LinkedIn") [  ](https://x.com/intent/tweet?url=https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis&text=7%20Best%20E-commerce%20Product%20Data%20APIs%20for%20Developers%20in%202026 "Share on X") [  ](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis "Share on Facebook")    

 

 

Summarize this article with

 [  ](https://chat.openai.com/?q=Summarize%20this%20article%20and%20explain%20how%20Scrapfly%20helps%20me%20scrape%20any%20website%20at%20scale%20and%20bypass%20anti-bot%20systems%20for%20my%20use%20case%3A%20https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis) [  ](https://claude.ai/new?q=Summarize%20this%20article%20and%20explain%20how%20Scrapfly%20helps%20me%20scrape%20any%20website%20at%20scale%20and%20bypass%20anti-bot%20systems%20for%20my%20use%20case%3A%20https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis) [  ](https://x.com/i/grok?text=Summarize%20this%20article%20and%20explain%20how%20Scrapfly%20helps%20me%20scrape%20any%20website%20at%20scale%20and%20bypass%20anti-bot%20systems%20for%20my%20use%20case%3A%20https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis) [  ](https://www.perplexity.ai/search/new?q=Summarize%20this%20article%20and%20explain%20how%20Scrapfly%20helps%20me%20scrape%20any%20website%20at%20scale%20and%20bypass%20anti-bot%20systems%20for%20my%20use%20case%3A%20https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis) [  ](https://www.google.com/search?udm=50&aep=11&q=Summarize%20this%20article%20and%20explain%20how%20Scrapfly%20helps%20me%20scrape%20any%20website%20at%20scale%20and%20bypass%20anti-bot%20systems%20for%20my%20use%20case%3A%20https%3A%2F%2Fscrapfly.io%2Fblog%2Fposts%2Fbest-ecommerce-product-data-apis) 



         

E-commerce platforms like Shopify, Amazon or eBay hold huge amounts of product data, and most of them offer official APIs for accessing it. However, there's a catch: these APIs are limited to the platform's own data. For example, with Shopify's API we can get all of the products of a store we have access to, though not of our competitor's store.

In this article we'll take a look at and compare seven popular e-commerce product data APIs. We'll start by going over what kind of access each of them requires, and finally we'll see what to do when the data we need isn't available through any API at all.

[11 Best Web Scraping APIs, Libraries, and Crawlers for Developers in 2026Compare the best web scraping tools in 2026. Pipeline-based guide covering Scrapfly, BeautifulSoup, Playwright, Scrapy, and more for production scraping.](https://scrapfly.io/blog/posts/best-web-scraping-apis)



## Key Takeaways

- **Shopify, WooCommerce and BigCommerce** - each one serves a single store at a time.
- **eBay Browse API** - buyer-side search, but only inside eBay's own marketplace.
- **Amazon SP-API and Walmart Marketplace** - access is tied to an authorized seller account.
- **Etsy Open API v3** - seller apps get approved fast, the others need a review.
- **No platform API covers every retailer** - that's where public page scraping comes in.
- **Pick the API by the access you have** - not by how many fields it lists.

**Get web scraping tips in your inbox**Trusted by 100K+ developers and 30K+ enterprises. Unsubscribe anytime.







## Which E-commerce Product Data API Is Best for Developers?

Let's take a look at how the seven APIs compare, from what each one is best for and whose data it holds to the access it needs and its main limit:

| API | Best for | Data relationship | Access | Main limit |
|---|---|---|---|---|
| Shopify Storefront | Storefront apps | Shopify catalog | Token model | Shopify only |
| eBay Browse | Buyer discovery | eBay marketplace | OAuth | eBay only |
| Amazon SP-API | Seller operations | Amazon seller data | Partner auth | Authorized scope |
| Walmart Marketplace | Seller workflows | Walmart seller data | Seller auth | Authorized scope |
| Etsy Open API | Etsy apps | Listings + shops | Key + OAuth | Access review |
| Woo Store API | Public storefronts | Woo products | Public endpoints | Woo stores |
| BigCommerce Catalog | Merchant catalogs | Store resources | Access token | Authorized store |

Here's what the access column comes down to:

| Access model | APIs | Credentials |
|---|---|---|
| Merchant-authorized | Shopify, BigCommerce | An app the store owner installs |
| Seller-authorized | Amazon, Walmart | Credentials tied to a single seller account |
| Buyer-side | eBay | An app token for searching public listings |
| Public | WooCommerce | None |
| In between | Etsy | An API key for public reads, OAuth for private data |
| None of them | Catalogs across retailers | Scraping, covered at the end |

[How to Scrape an Entire Product Catalogue with PythonLearn how to discover, crawl, and extract every product from an e-commerce catalog in Python, then keep that data fresh at scale.](https://scrapfly.io/blog/posts/how-to-scrape-large-product-catalogs)



## Project Setup

In this article we'll be using Python with a few community packages:

- requests - HTTP client library which will let us call each platform's API.
- beautifulsoup4 - HTML parsing library which we'll use to parse product pages in the scraping example.
- scrapfly-sdk - ScrapFly's Python SDK which we'll use to fetch those product pages.

These packages can be installed via `pip` command:

bash

```bash
pip install requests beautifulsoup4 scrapfly-sdk
```



Each of the numbered examples below makes one request based on that platform's current documentation.



## 1. Shopify Storefront API: Best for Shopify Storefront Applications

The [Shopify Storefront API](https://shopify.dev/docs/api/storefront) is what Shopify developers use to build custom storefronts and headless commerce apps for a Shopify store. Compared to REST APIs, a GraphQL client can request specific parts of the data explicitly, so we only get the fields we ask for and nothing else.

Access-wise, there are two options (as of version `2026-07`): we can either query it without a token for basic data like products, collections and cart, or create a Storefront access token through the Admin API or a Headless sales channel to get all of the fields. Though since the token only works for a single shop domain, we're always limited to one store's catalog.

Let's give it a go with `mock.shop` - a public demo store for the Storefront API which doesn't require a token:

python

```python
import requests

url = "https://mock.shop/api"  # public Shopify Storefront API sandbox
query = """
{
  # we want the first 3 products of the store
  products(first: 3) {
    edges {
      node {
        # and only their id and title fields
        id
        title
      }
    }
  }
}
"""

response = requests.post(url, json={"query": query})
data = response.json()

for edge in data["data"]["products"]["edges"]:
    print(edge["node"]["id"], "-", edge["node"]["title"])
print("query cost:", data["extensions"]["cost"])
```



Here, the `query` contains our GraphQL query, where the values in curly brackets indicate which fields we want returned. If we run it, we'll get:

text

```text
gid://shopify/Product/7982853619734 - Slides
gid://shopify/Product/7982856273942 - Sweatpants
gid://shopify/Product/7982902771734 - Men's T-shirt
query cost: {'requestedQueryCost': 6}
```



Take note of the query cost at the end - every query gets a complexity score, and for tokenless access it's limited to 1,000 points per query. For our small query that's only 6 points, so we'd have to request a lot more nested data before getting anywhere near that limit.

As for real stores, the same code works once we replace the URL with the store's own `myshopify.com` domain and add a token.



## 2. eBay Browse API: Best for Buyer-Side Marketplace Discovery

Searching eBay with the [Browse API](https://developer.ebay.com/api-docs/buy/browse/overview.html) is pretty straightforward. All we need is an application token, which we get from eBay's OAuth client credentials grant using our app's client ID and secret:

python

```python
import requests

token_response = requests.post(
    "https://api.ebay.com/identity/v1/oauth2/token",
    auth=("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET"),
    data={
        "grant_type": "client_credentials",
        "scope": "https://api.ebay.com/oauth/api_scope",
    },
)
token = token_response.json()["access_token"]

response = requests.get(
    "https://api.ebay.com/buy/browse/v1/item_summary/search",
    headers={
        "Authorization": f"Bearer {token}",
        # defaults to EBAY_US, required for other countries
        "X-EBAY-C-MARKETPLACE-ID": "EBAY_US",
    },
    # filter and category_ids can narrow the search down further
    params={"q": "wool sneakers", "limit": 3},
)
for item in response.json()["itemSummaries"]:
    print(item["title"], "-", item["price"]["value"], item["price"]["currency"])
```



Each item in `itemSummaries` also has fields like `itemId`, `condition` and `itemLocation`. Inventory and orders aren't part of it though, and for listing data beyond what it returns, see our [how to scrape eBay](https://scrapfly.io/blog/posts/how-to-scrape-ebay) guide. Scrapfly's [eBay Scraper API](https://scrapfly.io/scrapers/ebay) returns listings, variant prices, search results and seller stores as JSON.



## 3. Amazon Selling Partner API: Best for Authorized Amazon Seller Workflows

Amazon offers many APIs for its sellers: Catalog Items, Listings Items, Product Pricing, Orders, Reports, Feeds and FBA fulfillment, all of which are bundled into the [Selling Partner API (SP-API)](https://developer-docs.amazon.com/sp-api/) - the replacement of the older MWS integration. The Catalog Items API is by far the most interesting one for product data, as it's the closest SP-API gets to a general product lookup.

That being said, SP-API is only available to sellers and Amazon-approved partners, and getting access takes a lot more effort than with eBay. Our app has to be registered through Amazon's SP-API developer program and then authorized by a seller:

| Feature | SP-API |
|---|---|
| Who can use it | Sellers and approved partners |
| Authorization | Login with Amazon (LWA) |
| Token | Refresh token exchanged for a short-lived access token |
| Grantless operations | A few, via `client_credentials` |
| Product lookup | Catalog Items API |
| Regional hosts | North America, Europe and the Far East |

Once a seller authorizes our app, here's how a Catalog Items lookup looks for a single ASIN on the US marketplace:

python

```python
import requests

asin = "B0BBBBBBBB"
url = f"https://sellingpartnerapi-na.amazon.com/catalog/2022-04-01/items/{asin}"
headers = {"x-amz-access-token": "YOUR_LWA_ACCESS_TOKEN"}
params = {"marketplaceIds": "ATVPDKIKX0DER", "includedData": "summaries"}

response = requests.get(url, headers=headers, params=params)
summaries = response.json()["summaries"]

for summary in summaries:
    print(summary["itemName"], "-", summary.get("brand"))
```



For Amazon product pages outside of our own seller account, see our [how to scrape Amazon](https://scrapfly.io/blog/posts/how-to-scrape-amazon) guide.



## 4. Walmart Marketplace APIs: Best for Walmart Seller Integrations

Walmart asks for three headers on every call to the [Walmart Marketplace APIs](https://developer.walmart.com/us-marketplace/reference): the access token in `WM_SEC.ACCESS_TOKEN` for authorizing the call, the `WM_QOS.CORRELATION_ID` for request tracing, and `WM_SVC.NAME` for the service we're calling. For product data, the access token is the one we work with, and it comes from our seller account's Client ID and Client Secret.

For a seller account Walmart hasn't approved yet, there's no token, and none of the credentials work. For an item's data, we have to request the token from `POST /v3/token` first:

| Feature | Marketplace APIs |
|---|---|
| Users | Sellers in Walmart's marketplace program |
| Resources | Items, inventory, pricing and orders |
| Token request | `POST /v3/token` with Basic auth, using our Client ID and Client Secret |
| Token lifetime | 900 seconds |
| Item fields | `sku`, `productName`, `publishedStatus`, `wpid` and `price`, for items our account manages |
| Use cases | Listing management and order fulfillment |
| Feeds API | A batch file for bulk updates instead of one call per SKU, for an account with a few thousand listings |

Once we have the token, here's how a lookup looks for a single item:

python

```python
import requests

item_id = "123456789"
url = f"https://marketplace.walmartapis.com/v3/items/{item_id}"
headers = {
    "WM_SEC.ACCESS_TOKEN": "YOUR_WALMART_ACCESS_TOKEN",
    "WM_QOS.CORRELATION_ID": "a-unique-request-id",
    "WM_SVC.NAME": "Walmart Marketplace",
    "Accept": "application/json",
}

response = requests.get(url, headers=headers)
item = response.json()
print(item["sku"], "-", item["productName"], "-", item["publishedStatus"])
```



Reviews, "customers also bought" sections and competitor listings are out of scope, so see our [how to scrape Walmart.com](https://scrapfly.io/blog/posts/how-to-scrape-walmartcom) guide. Without a seller account, Scrapfly's [Walmart Scraper API](https://scrapfly.io/scrapers/walmart) returns public product, price, search and review data as JSON.



Scrapfly

#### Scale your web scraping effortlessly

Scrapfly handles proxies, browsers, and anti-bot bypass — so you can focus on data.

[Try Free →](https://scrapfly.io/register)## 5. Etsy Open API v3: Best for Etsy Listing and Shop Applications

Etsy offers three access paths for apps that read or manage the listings and shops of its sellers: Seller App, Personal App and Commercial Access, all of which give access to the [Etsy Open API v3](https://developers.etsy.com/documentation/). The Seller App is by far the quickest one to get, as it's approved automatically within minutes, though it only works with our own shop.

That being said, Commercial Access can only be requested after an approved Personal App, and a commercial app waits in review until Etsy approves it. If a launch date depends on it, we have to leave some time for that review:

| Feature | Etsy API v3 |
|---|---|
| Seller App | Our own shop only, approved within minutes |
| Personal App | Broader use, after what Etsy calls a deeper review process |
| Commercial Access | Requested after that, adds a manual commercial review |
| Public data, like a single listing | API key in the `x-api-key` header |
| Private shop data or changes | Full OAuth 2.0 |
| Price | Integer `amount` with a `divisor`, avoiding float rounding errors across currencies |
| Listing fields | `listing_id`, `state`, `quantity`, enough for most listing and shop lookups |

Once our app has an API key, here's how a lookup looks for a single listing, where we divide `amount` by `divisor` ourselves to get the price:

python

```python
import requests

listing_id = "123456789"
url = f"https://openapi.etsy.com/v3/application/listings/{listing_id}"
headers = {"x-api-key": "YOUR_ETSY_API_KEY"}

response = requests.get(url, headers=headers)
listing = response.json()
price = listing["price"]["amount"] / listing["price"]["divisor"]
print(listing["title"], "-", price, listing["price"]["currency_code"])
```



For listing and review data beyond our app's access tier, see our [how to scrape Etsy product reviews](https://scrapfly.io/blog/posts/how-to-scrape-etsy-com-product-review-data) guide.



## 6. WooCommerce Store API: Best for Public WooCommerce Storefront Data

WooCommerce offers two APIs for its stores: the REST API for store settings and admin operations, and the [WooCommerce Store API](https://developer.woocommerce.com/docs/apis/store-api/) for the customer-facing frontend. For public product data, the Store API is by far the most interesting one, as it needs no credentials.

That being said, each store owner is still in control of this endpoint, and a merchant can restrict or disable it with a security plugin. For another store's products, we have to point our request at its domain:

| Feature | Store API |
|---|---|
| Namespace | `/wp-json/wc/store/v1` on the store's own WordPress site |
| Authorization | None, on purpose, as it powers the store's frontend |
| Data | Products, cart and checkout |
| REST API | Consumer key and secret, adds admin operations the Store API doesn't have |
| Catalog | No central Woo catalog, one store per domain |
| Pagination | `page` and `per_page` query parameters, with totals in the response headers |
| `X-WP-Total` and `X-WP-TotalPages` | Total product count and page count, so our script knows when to stop |

Once we have a domain, here's how a lookup looks for the first 3 products on woocommerce.com's own store, which leave their SKU empty:

python

```python
import requests

url = "https://woocommerce.com/wp-json/wc/store/v1/products"
response = requests.get(url, params={"per_page": 3})
products = response.json()

for product in products:
    print(product["id"], "-", product["name"], "-", product["sku"])
# Output:
# 18734006862930 - Help Scout Connector - 
# 18734006862858 - Bulk Search &amp; Replace - 
# 18734006846727 - EU AI Label App - 
```



BigCommerce, the last platform on our list, puts its catalog behind merchant authorization.



## 7. BigCommerce Catalog API: Best for Merchant Catalog Management

BigCommerce asks for two values on every call to the [BigCommerce Catalog API](https://docs.bigcommerce.com/developer/docs/admin/catalog-and-inventory/products-overview): the store hash, which is the unique ID BigCommerce gives each store, and the `X-Auth-Token` for authorizing our app. Both are tied to a single store, so for a merchant's products, we have to get the token when the merchant installs and authorizes our app:

| Feature | Catalog API |
|---|---|
| Store hash | The unique ID BigCommerce gives each store, in every URL |
| `X-Auth-Token` | Authorizes our app, issued when the merchant installs and authorizes it |
| Token scope | One store, an app authorized on one store can't read another store's catalog |
| Users | Merchants and their apps, managing a single store |
| Store hash | One per store, none covers multiple merchants |
| Resources | Products, variants, brands and categories |
| URL pattern | The same store hash pattern for every resource |
| Product fields | `price`, `type` and `inventory_level`, plus the ID, name and SKU our example prints |
| Pagination | A `meta.pagination` object in the response |
| `total`, `current_page` and `total_pages` | How a catalog sync script gets through the full product list without guessing when it ends |

Once we have the token, here's how a lookup looks for a store's products:

python

```python
import requests

store_hash = "YOUR_STORE_HASH"
url = f"https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products"
headers = {"X-Auth-Token": "YOUR_ACCESS_TOKEN", "Accept": "application/json"}

response = requests.get(url, headers=headers)
products = response.json()["data"]

for product in products:
    print(product["id"], "-", product["name"], "-", product["sku"])
```



None of these seven APIs covers catalogs across retailers, so that's where scraping comes in.



## When Should You Scrape Public Product Pages Instead?

For example, no platform will give us an API key for a rival's store, so for competitor prices the page itself is the only way in. Stock checks, public reviews and catalogs across multiple retailers work the same way:

| Case | Why there's no API for it |
|---|---|
| Competitor price monitoring | No platform gives us an API key for a rival's store, so the page itself is the only way in |
| Stock checks | Same, for stores we don't run |
| Public reviews | Same |
| Catalogs across multiple retailers | Each API covers one store or marketplace |
| Any retailer, marketplace or field not covered above | No API to call |

[How to Track Competitor Prices Using Web ScrapingIn this web scraping guide, we'll explain how to create a tool for tracking competitor prices using Python. It will scrape specific products from different providers, compare their prices and generate insights.](https://scrapfly.io/blog/posts/how-to-track-competitor-pricing-using-web-scraping)

Every retailer renders its product pages differently though, so a scraper for these is usually one small adapter per retailer, each converting its data into one shared schema:

| Step | What it does |
|---|---|
| One adapter per retailer | A scraper built for one website's HTML or hidden API won't work on another |
| One shared schema | Each adapter converts its data into it, so `price` means the same thing for a small Shopify store and a marketplace listing |
| Fetch | Usually breaks first, as it has to get past each retailer's anti-bot protection |
| Extract and normalize | The fields our schema needs, before saving |

For more on this, see our guide on [building a product data pipeline from multiple e-commerce sites](https://scrapfly.io/blog/posts/how-to-build-a-product-data-pipeline-from-multiple-ecommerce-sites), and [best e-commerce web scraping tools](https://scrapfly.io/blog/posts/best-e-commerce-web-scraping-tools) for libraries and services that can speed up writing each adapter.

Let's take a look at a quick example using ScrapFly, which fetches a web-scraping.dev product page with Anti Scraping Protection and picks the title and price with BeautifulSoup:

python

```python
from scrapfly import ScrapflyClient, ScrapeConfig
from bs4 import BeautifulSoup

client = ScrapflyClient(key="YOUR_SCRAPFLY_KEY")
# asp=True turns on anti scraping protection for the fetch
result = client.scrape(ScrapeConfig(url="https://web-scraping.dev/product/1", asp=True))

soup = BeautifulSoup(result.scrape_result["content"], "html.parser")
# one selector per field, the same shape every retailer adapter follows
product = {
    "title": soup.select_one("h3.product-title").get_text(strip=True),
    "price": soup.select_one(".product-price").get_text(strip=True),
}
print(product)
# Output: {'title': 'Box of Chocolate Candy', 'price': '$9.99'}
```



If we run it, we'll get the product's title and price in a dictionary, just like in the output comment above.

Take note of `asp=True` here, as that's what enables ScrapFly's Anti Scraping Protection.



That fetch layer is where Scrapfly fits, so the adapters above spend their logic on parsing instead of retries.

ScrapFly's [Web Scraping API](https://scrapfly.io/products/web-scraping-api) combines managed proxies, browser rendering, sessions, and the Unblocker through one endpoint.

- [Unblocker](https://scrapfly.io/docs/scrape-api/unblocker) - detects anti-bot protections and applies the browser profile, request configuration, proxy, and retry strategy needed for the target.
- [Smart proxy rotation](https://scrapfly.io/docs/scrape-api/proxy) - residential and datacenter pools with country and ASN level geo-targeting.
- [JavaScript rendering](https://scrapfly.io/docs/scrape-api/javascript-rendering) - render SPAs and dynamic pages through real cloud browsers.
- [Browser automation scenarios](https://scrapfly.io/docs/scrape-api/javascript-scenario) - scroll, click, fill forms, and wait for elements without managing a browser fleet.
- [Format conversion](https://scrapfly.io/docs/scrape-api/getting-started#api_param_format) - return pages as HTML, JSON, clean text, or LLM ready Markdown.
- [Session management](https://scrapfly.io/docs/scrape-api/session) - keep cookies, headers, and IPs consistent across multi step flows.
- [Smart caching](https://scrapfly.io/docs/scrape-api/getting-started#api_param_cache) - cache successful responses to cut cost on repeat scraping jobs.
- [Python](https://scrapfly.io/docs/sdk/python), [TypeScript](https://scrapfly.io/docs/sdk/typescript), [Scrapy](https://scrapfly.io/docs/sdk/scrapy), and [no-code integrations](https://scrapfly.io/docs/integration/getting-started) including [Make](https://scrapfly.io/integration/make), [n8n](https://scrapfly.io/integration/n8n), [Zapier](https://scrapfly.io/integration/zapier), [LangChain](https://scrapfly.io/integration/langchain), and [LlamaIndex](https://scrapfly.io/integration/llamaindex).



### Web Scraping API

Scrape any website with our powerful API. Anti-bot bypass, JavaScript rendering, and rotating proxies built-in.



[Try Web Scraping API](https://scrapfly.io/docs/scrape-api/getting-started)



## FAQ

Is there one API for product data from every retailer?No, so here's where each kind of API on our list stops, from a single shop domain to one seller account or one marketplace:

| API | Stops at |
|---|---|
| Shopify, WooCommerce, BigCommerce | One store |
| Amazon SP-API, Walmart | One seller account |
| eBay Browse | eBay's own marketplace |
| Etsy | Etsy, by app access tier |
| Anything in between | Scraping public product pages |







Can Amazon SP-API return competitor product data?Here's how SP-API compares with scraping Amazon's public pages, from the data each one returns to the access it needs:

|  | SP-API | Scraping public pages |
|---|---|---|
| Data | Our registered seller account and marketplace | Any public Amazon listing |
| Access | Seller authorization through Login with Amazon | None, see our [how to scrape Amazon](https://scrapfly.io/blog/posts/how-to-scrape-amazon) guide |







Which e-commerce API works without merchant credentials?Let's take a look at the two APIs in this article that expose some public data without a key, along with the example we used for each one:

| API | Example | Note |
|---|---|---|
| WooCommerce Store API | `/wp-json/wc/store/v1/products` on woocommerce.com | A merchant can restrict or disable it |
| Shopify Storefront API, tokenless | mock.shop | Basic data like products, collections and cart |
| Both |  | Access depends on the store and platform, so check the current docs first |







What is the difference between a catalog API and a scraping API?Here's the difference, using two examples from this article:

|  | Catalog API | Scraping API |
|---|---|---|
| Example | BigCommerce Catalog API | ScrapFly |
| Authorization | The platform's own, like an `X-Auth-Token` | Our ScrapFly key, nothing from the website |
| Scope | A single store or seller | Any public page |
| Fields | The platform's schema | Any field the website shows |







Is web scraping legal for public e-commerce product pages?Yes. Scraping publicly available product pages at slow, respectful rates is generally considered legal in most places. That being said, attention should be paid to the website's terms of service and to personal data, so check your local regulations before scraping at scale.









## Summary

To wrap up, here's which API fits the access we have:

| Access we have | API |
|---|---|
| One store at a time | Shopify, WooCommerce or BigCommerce |
| Buyer-side search on eBay | eBay Browse API |
| An authorized seller account | Amazon SP-API or Walmart Marketplace APIs |
| An Etsy app | Etsy Open API v3, by app access tier |
| None, or retailers and fields none of them reach | Public product pages, scraped with ScrapFly to get past anti-bot protection |



Legal Disclaimer and PrecautionsThis tutorial covers popular web scraping techniques for education. Interacting with public servers requires diligence and respect:

- Do not scrape at rates that could damage the website.
- Do not scrape data that's not available publicly.
- Do not store PII of EU citizens protected by GDPR.
- Do not repurpose *entire* public datasets which can be illegal in some countries.

Scrapfly does not offer legal advice but these are good general rules to follow. For more you should consult a lawyer.

 

   [  Add as a preferred source ](https://google.com/preferences/source?q=scrapfly.io) Table of Contents















 

  Table of Contents

- [Key Takeaways](#key-takeaways)
- [Which E-commerce Product Data API Is Best for Developers?](#which-e-commerce-product-data-api-is-best-for-developers)
- [Project Setup](#project-setup)
- [1. Shopify Storefront API: Best for Shopify Storefront Applications](#1-shopify-storefront-api-best-for-shopify-storefront-applications)
- [2. eBay Browse API: Best for Buyer-Side Marketplace Discovery](#2-ebay-browse-api-best-for-buyer-side-marketplace-discovery)
- [3. Amazon Selling Partner API: Best for Authorized Amazon Seller Workflows](#3-amazon-selling-partner-api-best-for-authorized-amazon-seller-workflows)
- [4. Walmart Marketplace APIs: Best for Walmart Seller Integrations](#4-walmart-marketplace-apis-best-for-walmart-seller-integrations)
- [5. Etsy Open API v3: Best for Etsy Listing and Shop Applications](#5-etsy-open-api-v3-best-for-etsy-listing-and-shop-applications)
- [6. WooCommerce Store API: Best for Public WooCommerce Storefront Data](#6-woocommerce-store-api-best-for-public-woocommerce-storefront-data)
- [7. BigCommerce Catalog API: Best for Merchant Catalog Management](#7-bigcommerce-catalog-api-best-for-merchant-catalog-management)
- [When Should You Scrape Public Product Pages Instead?](#when-should-you-scrape-public-product-pages-instead)
- [FAQ](#faq)
- [Summary](#summary)
 
    Join the Newsletter  Get monthly web scraping insights 

 

  



Scale Your Web Scraping

Anti-bot bypass, browser rendering, and rotating proxies, all in one API. Start with 1,000 free credits.

  No credit card required  1,000 free API credits  Anti-bot bypass included 

 [Start Free](https://scrapfly.io/register) [View Docs](https://scrapfly.io/docs/onboarding) 

 Not ready? Get our newsletter instead. 

 

 ## Related Articles

 [     

 python scrapeguide 

### 5 Best Open-Source Facebook Marketplace Scrapers on GitHub in 2026

A dated, freshness-first roundup of the open-source Facebook Marketplace scrapers on GitHub worth cloning in 2026, and t...

 

 ](https://scrapfly.io/blog/posts/best-facebook-marketplace-scrapers-github) [     

 python blocking 

### 9 Best E-commerce Web Scraping Tools for Developers in 2026

Retrieval, access, extraction, discovery, browser, or screenshots? Pick the narrowest e-commerce scraping tool that fixe...

 

 ](https://scrapfly.io/blog/posts/best-e-commerce-web-scraping-tools) [     

 python beautifulsoup 

### How to Scrape Allegro.pl in 2026

Scrape Allegro.pl product listings and detail pages with Scrapfly. Bypass DataDome anti-bot protection. Route through Po...

 

 ](https://scrapfly.io/blog/posts/how-to-scrape-allegro) 

  



   



 Scale your web scraping effortlessly, **1,000 free credits** [Start Free](https://scrapfly.io/register)