Spot MAP violations across every seller on Google Shopping
Check each of your products against every seller Google Shopping lists for it, then flag the offers priced below your minimum advertised price.
What gets in the way
Your minimum advertised price policy only works if you see violations quickly. On Google Shopping one product can be offered by many sellers, and the one undercutting you is rarely the one you checked.
You need the full seller list for each product, captured on a schedule, with the advertised price kept separate from shipping so you compare like with like.
How CrawlerData solves it
Search for your brand or model names to find the Google Shopping product_id for each product you sell.
Google Shopping APICheck each product with the sellers endpoint: every seller with merchant, offer_title, price, shipping and total_price in one request.
Google Shopping Sellers APICompare price.value with your MAP for each seller, and keep the raw response as a dated record of what Google showed.
Google Shopping Sellers APIRun it in several countries with the country parameter if your MAP differs by market.
Google Shopping Sellers API
One request, structured data back
Compare each seller's price.value with your MAP. offer_title shows how the seller names the product.
curl -X POST https://api.crawlerdata.com/v1/jobs \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint":"google-shopping-product","params":{"product_id":"14580532573920022357","country":"us"},"queue":"live"}'const res = await fetch('https://api.crawlerdata.com/v1/jobs', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
"endpoint": "google-shopping-product",
"params": {
"product_id": "14580532573920022357",
"country": "us"
},
"queue": "live"
}),
});
const { job, result } = await res.json();import requests
res = requests.post(
"https://api.crawlerdata.com/v1/jobs",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"endpoint": "google-shopping-product",
"params": {
"product_id": "14580532573920022357",
"country": "us",
},
"queue": "live",
},
)
data = res.json(){
"sellers_count": 12,
"sellers": [
{
"merchant": "Walmart",
"merchant_rating": 4.3,
"offer_title": "Soundplay Foldable Wireless Headphones, Bluetooth Over-Ear Headset with Built-in Mic, White",
"price": {
"value": 14.94,
"currency": "USD",
"raw": "14.94 USD"
},
"total_price": {
"value": 21.93,
"currency": "USD",
"raw": "21.93 USD"
},
"availability": "In Stock"
},
{
"merchant": "Best Buy",
"merchant_rating": null,
"offer_title": "Tzumi - SoundPlay Foldable Wireless Headphones, Bluetooth Over-Ear Headset with Built-in Mic",
"price": {
"value": 22.69,
"currency": "USD",
"raw": "22.69 USD"
},
"total_price": {
"value": 22.69,
"currency": "USD",
"raw": "22.69 USD"
},
"availability": "In Stock"
}
]
}Excerpt of the result object, with fields and items trimmed. Full response on the Google Shopping Sellers API page.
A worked example
Every endpoint costs 1 credit per request. Here is what a typical monthly workload costs with whole credit packs.
500 products checked twice a day × 30 days
= 30,000 requests a month
1 credit per request, so 30,000 credits a month.
Buy one month at a time
1 × Starter (50,000 credits) for $50.00
$50.00 / month
$0.0017 per product check
Buy six months at once (best)
180,000 credits needed: 4 × Starter (200,000 credits) for $200.00
$33.33 / month
$0.0011 per product check, 20,000 credits left unused after six months
Packs are bought whole, like in the pricing calculator. Credits are valid for 6 months, so buying ahead can move you to a cheaper pack. Failed requests are not charged. Prices exclude sales tax/VAT.
Limits to plan for
- CrawlerData returns the prices Google Shopping shows. Deciding what counts as a violation, and contacting sellers, is up to you.
- Results reflect Google Shopping at request time in the chosen country. A seller can change a price between two checks.
- A sellers request can take tens of seconds because it loads the full product page. Schedule checks on the fast or regular queue.
- Sellers who list your product under a different Google Shopping product need their own product_id check.
Questions
Does one request really include every seller?
Yes. The sellers endpoint returns all the sellers Google Shopping lists for the product, with sellers_count, for 1 credit.
Is the price advertised price or price with shipping?
Both, separately. price is the item price the seller shows, shipping is the shipping charge, and total_price is the two together.
Can I keep the results as evidence?
You get the full JSON response, which you can store with your own timestamp. The job also records when it was created and completed.
Which countries are supported?
31 countries, including us, gb, ca, au, de, fr, nl, it, es, jp, in and br. The full list is on each API page.
Related solutions
Competitor price monitoring
Every seller and total price for your products on Google Shopping, one request per product.
See how it works
Market research
Products, sellers, price ranges and ratings for a category or market.
See how it works
APIs used
Google Shopping Sellers API
Every seller offering a product, sorted by total price, for one request. No per-seller charges.
from $0.30 / 1,000 requests
Google Shopping API
Search Google Shopping and get every product with price, merchant, rating and a product ID you can use to fetch all sellers.
from $0.30 / 1,000 requests
Try it on your own data
Get 50 free credits when you sign up with your work email and verify it. Failed requests are never charged.