
See how much of your page ChatGPT reads
Send a page URL to GEO Score and get the share of the page ChatGPT search keeps, what ChatGPT receives when it opens the page, and the reason and fix for every piece it misses.

Search Google’s Shopping tab in the US with Commerce Search, then read any product with Commerce Product to get every store Google lists for it, with its price, stock and product page.
site: "google_shopping" in COMMERCE_SERP: one task searches Google’s Shopping tab in the US and returns up to 40 products in Google’s order, each with rank, productId, title, price and url.seller: the store named on each product card, such as Target, Ulta Beauty or Walmart, next to rating, reviewCount and imageUrl when the card shows them.COMMERCE_PRODUCT reads any product from those results by its url and returns title, price, seller, inStock, rating, images and specs.offers: every store Google lists for the product, each with seller, title, price, currency, inStock and the url of the store’s own product page.Each search reads the Shopping tab Google shows for your query in the US, the page behind google.com/search?udm=28. A product url opens that results page and carries the product’s ID and title after #, which is how COMMERCE_PRODUCT finds the same product again.
A product read opens the results page, clicks the product and reads the panel Google shows for it: the stores, the description, the specs and the photos. The product’s price, listPrice, seller and inStock come from the first store, the one Google ranks as the best price. Google reshuffles the results of broad searches during the day, so the read looks the product up by its query first and by its title next.
reviewCount carries the exact counts Google shows, up to 1,000; Google writes larger counts in short forms such as 17K.
Send the request with your API key in the Authorization header.
curl -X POST https://api.querying.ai/v1/async/task \
-H "Authorization: Bearer $QUERYING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taskType": "COMMERCE_SERP",
"payload": {
"site": "google_shopping",
"query": "cerave moisturizing cream",
"limit": 10
}
}'taskTypestringRequiredCHATGPT or GOOGLE.payload.sitestringRequiredamazon, coupang or rakuten. The 21 values are listed with the engine.payload.querystringRequiredpayload.countrystringUS for amazon or KR for coupang. It is also the default.payload.limitintegerwebhook.urlstringA finished task looks like this, trimmed for length.
{
"success": true,
"task": {
"id": "b02ec42c-2ea1-4a6f-ba70-1b3099b8ceff",
"taskType": "COMMERCE_SERP",
"status": "COMPLETED",
"createdAt": "2026-10-23T01:32:45.682Z"
},
"credits": { "creditsToCharge": 3, "creditsCharged": 3 },
"response": {
"site": "google_shopping",
"query": "cerave moisturizing cream",
"country": "US",
"returnedCount": 10,
"products": [
{
"rank": 1,
"productId": "16245040360969784676",
"title": "CeraVe Moisturizing Cream",
"url": "https://www.google.com/search?q=cerave+moisturizing+cream&udm=28&gl=us&hl=en#product=16245040360969784676&title=CeraVe+Moisturizing+Cream",
"price": 4.19,
"currency": "USD",
"seller": "Target",
"rating": 4.7
},
{
"rank": 2,
"productId": "5074307725217910967",
"title": "CeraVe Moisturizing Cream Pump",
"url": "https://www.google.com/search?q=cerave+moisturizing+cream&udm=28&gl=us&hl=en#product=5074307725217910967&title=CeraVe+Moisturizing+Cream+Pump",
"price": 17.99,
"currency": "USD",
"seller": "Target",
"rating": 4.7
},
"…"
]
}
}task.statusstringQUEUED, PROCESSING, then COMPLETED with the answer or FAILED with error.credits.creditsChargedintegerresponse.returnedCountintegerproducts.response.productsarrayrank, productId, title, url, price, currency and seller, plus rating, reviewCount and imageUrl when the product card shows them.The request returns the task right away with status QUEUED. Poll GET /v1/async/task/{id} until status is COMPLETED or FAILED, or add webhook.url and the finished task arrives at your server with the same task, credits and response. Results stay available for 24 hours after a task finishes.
curl https://api.querying.ai/v1/async/task/$TASK_ID \
-H "Authorization: Bearer $QUERYING_API_KEY"Pass a product url from the search results to COMMERCE_PRODUCT. This is the read of the first product above, trimmed for length.
curl -X POST https://api.querying.ai/v1/async/task \
-H "Authorization: Bearer $QUERYING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"taskType": "COMMERCE_PRODUCT",
"payload": {
"url": "https://www.google.com/search?q=cerave+moisturizing+cream&udm=28&gl=us&hl=en#product=16245040360969784676&title=CeraVe+Moisturizing+Cream"
}
}'taskTypestringRequiredCHATGPT or GOOGLE.payload.urlstringRequiredurl from a google_shopping Commerce Search result. It opens the results page and carries the product’s ID and title after #.{
"success": true,
"task": {
"id": "9ee619d2-c87f-47ab-93cd-215ef3671734",
"taskType": "COMMERCE_PRODUCT",
"status": "COMPLETED",
"createdAt": "2026-10-23T01:36:00.797Z"
},
"credits": { "creditsToCharge": 3, "creditsCharged": 3 },
"response": {
"site": "google_shopping",
"country": "US",
"url": "https://www.google.com/search?q=cerave+moisturizing+cream&udm=28&gl=us&hl=en#product=16245040360969784676&title=CeraVe+Moisturizing+Cream",
"productId": "16245040360969784676",
"title": "CeraVe Moisturizing Cream",
"price": 4.19,
"currency": "USD",
"inStock": true,
"seller": "Target",
"rating": 4.7,
"images": [
"https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcTdoC3RoTxQCkmpSUypL2HqkAR300eBZ_E3W2NCfz2MP4541LroFfQ8ZzNM2XIpm_xS_3c4dZU4_LMYtqQjE89N-Z8wH4Y_gA",
"…"
],
"specs": [
{ "name": "Benefit", "value": "Moisturizing" },
{ "name": "Form", "value": "Cream" },
"…"
],
"offers": [
{
"seller": "Target",
"title": "CeraVe Moisturizing Face & Body Cream for Normal to Dry Skin – 1.89 fl oz",
"url": "https://www.target.com/p/cerave-moisturizing-face-38-body-cream-for-normal-to-dry-skin-8211-1-89-fl-oz/-/A-86467779",
"price": 4.19,
"currency": "USD",
"inStock": true
},
{
"seller": "Ulta Beauty",
"title": "CeraVe Moisturizing Cream Body and Face Moisturizer - 1.8 oz",
"url": "https://www.ulta.com/p/moisturizing-cream-body-face-moisturizer-xlsImpprod3530069?sku=2532670",
"price": 6.99,
"currency": "USD",
"inStock": true
},
"…"
]
}
}response.pricenumbercurrency (ISO 4217). listPrice is the struck-through regular price when it is above price.response.offersarrayseller, title, price, currency and the url of the store’s product page, plus listPrice and inStock when the store row shows them. The first store is Google’s best price.VALIDATION_ERRORHTTP 422site is outside the 21 storefronts, query is empty or longer than 500 characters, limit is outside 1 to 40, or the payload carries another field. details names the field.VALIDATION_ERRORHTTP 422url is missing, longer than 2,048 characters or outside the 18 storefronts’ product pages, or the payload carries a field other than url and country. details names the field.REGION_UNSUPPORTEDHTTP 422country is another country than the storefront’s own, such as KR with amazon.MISSING_API_KEYHTTP 401Authorization header is missing, or its key is unknown, expired or revoked.INSUFFICIENT_CREDITSHTTP 402Each completed search and each completed product read uses 3 credits, as on every other storefront. Credits are charged when the task completes.

Send a page URL to GEO Score and get the share of the page ChatGPT search keeps, what ChatGPT receives when it opens the page, and the reason and fix for every piece it misses.

Pass a product page URL from Amazon, Walmart, Sephora, Olive Young, Rakuten, Zalando or 11 more storefronts, and get its price, stock, gallery and description images, specs and options in one shape.
Get new product updates in your inbox.