Product Offer Verifier: SKU & GTIN Checker with Price & Stock
Pricing
$10.00 / 1,000 selected priced-offer checks
Product Offer Verifier: SKU & GTIN Checker with Price & Stock
Check a product page against an exact SKU, model or GTIN/UPC/EAN and get the price, stock, seller and shipping it discloses, with quoted evidence. JSON for AI shopping agents; unknowns stay unknown.
Pricing
$10.00 / 1,000 selected priced-offer checks
Rating
0.0
(0)
Developer
Nicholas Tamagni
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
What does Product Offer Verifier do?
Product Offer Verifier is a SKU and GTIN checker for product pages. It checks a known product page URL against the exact SKU, model number, GTIN/UPC/EAN, brand, variant or condition you expect, and returns the price, stock status, seller and shipping the page discloses. Every result has a status, field-by-field checks, reasons and quoted evidence, so an AI shopping agent, procurement workflow or price checker can trust or reject an offer before recommending it.
It reads public HTML and structured product data (Schema.org Product/Offer JSON-LD, plus dedicated Best Buy and Walmart adapters). It does not search for products, add to cart, log in, solve CAPTCHAs or buy anything. Unknown shipping and taxes stay unknown instead of being guessed.
Why use this product price and stock checker?
- 🆔 Exact identity match. SKU, model, GTIN, brand and variant are compared as complete normalized values:
EXAMPLE-100matchesexample 100but notEXAMPLE-100-PRO. Titles are never scanned for a model substring. - 💲 Price and stock evidence. Explicit numeric price, currency and in-stock status from the page's structured data.
- 📦 Quantity-aware. A quantity above 1 requires explicit inventory evidence; "InStock" alone is not enough.
- 🚚 Honest shipping. Shipping is
freeonly for an explicit zero rate. Conditions and destination limits are kept. Taxes are alwaysunknown. - 🤖 Built for AI agents. Statuses tell an agent exactly what to do: use, exclude, or look elsewhere.
Use cases
- AI shopping agents verifying an offer before showing it to a user
- Procurement teams checking a supplier list against specified part numbers
- Rechecking saved product URLs for price, stock or identity changes
- Affiliate and comparison sites validating links before publishing
How to verify a product offer by SKU or GTIN
- Click Try for free or Start to open the Actor in Apify Console.
- Add product page URLs in Offers, each with an
expectedobject containing thesku,model,gtin,brand,conditionorvariantyou need. - Set the quantity, shipping country and expected currency if they matter.
- Click Start.
- Read each offer's
status,checksandevidencein the dataset, or export as JSON, CSV or Excel.
Input
Example input (the Actor's default prefilled input; prices and stock change over time):
{"offers": [{"url": "https://www.adafruit.com/product/4295","expected": {"sku": "4295"},"quantity": 1}],"country": "US","expectedCurrency": "USD"}
offers: 1–100 requests. Each may includemodel,sku,gtin,brand,conditionand avariantobject. Use a specific model, SKU or GTIN for a strong identity check; a brand-only request verifies only the brand.quantitydefaults to 1.countryselects which disclosed shipping options apply. It does not change the request location.expectedCurrencyrequires an explicit matching currency. Currency is never inferred from the domain or country.
Output example
Real output from a cloud run on 2026-10-16 (first item; long arrays shortened). The SKU matched, but the product was explicitly out of stock, so the status is mismatch. Full example dataset: https://api.apify.com/v2/datasets/0EOOb1Lw2sO9Bsg37/items?clean=1&format=json
{"index": 0,"url": "https://www.adafruit.com/product/4295","requested": {"expected": {"sku": "4295"},"quantity": 1,"country": "US","currency": "USD"},"observedAt": "2026-10-16T00:21:28.269Z","taxes": {"status": "unknown","amount": null,"reason": "checkout_taxes_not_verified"},"finalUrl": "https://www.adafruit.com/product/4295","adapter": "json-ld","status": "mismatch","reasons": ["not_in_stock"],"product": {"name": "Raspberry Pi 4 Model B - 1 GB RAM","model": null,"sku": "4295","gtin": null,"brand": null,"variant": {},"condition": "new"},"price": {"amount": 38.5,"currency": "USD"},"seller": {"name": null,"id": null},"availability": {"status": "out_of_stock","raw": "http://schema.org/OutOfStock","inventory": null},"shipping": {"status": "unknown","amount": null,"currency": null,"conditions": [],"options": [],"reason": "shipping_not_disclosed"},"subtotal": 38.5,"totalBeforeTax": null,"checks": [{"field": "sku","expected": "4295","actual": "4295","result": "match"},{"field": "currency","expected": "USD","actual": "USD","result": "match"}],"evidence": [{"field": "name","source": "json-ld[1]","value": "Raspberry Pi 4 Model B - 1 GB RAM"},{"field": "sku","source": "json-ld[1]","value": "4295"},{"field": "price","value": {"amount": 38.5,"currency": "USD"},"source": "json-ld[1].offers"},"…"]}
What each status means
| Status | Meaning | What an agent should do |
|---|---|---|
verified | At least one product identifier was checked, all requested fields match, and the selected offer has an explicit price, currency and in-stock evidence. | Use the offer, keeping shipping and tax uncertainty separate. |
mismatch | A requested field conflicts, the item is out of stock, preorder or backorder, the quantity is insufficient, or shipping is explicitly unavailable. | Exclude it from exact-match recommendations, or show the conflict. |
unverified | A product was found, but requested evidence, the selected variant, seller, price, currency or stock is missing. | Get the missing evidence elsewhere or leave the offer unresolved. |
unknown | Request or access failure, CAPTCHA or login, no supported product data, or parsing limits. | Treat as no observation, not as proof of a mismatch. |
Shipping is unknown, free, paid, conditional or unavailable. subtotal is the disclosed price times quantity. totalBeforeTax is filled only when one unconditional shipping rate in the same currency applies. It is never a final checkout total.
Supported stores
| Source | How it works | Limits |
|---|---|---|
| Best Buy | Product/Offer JSON-LD, selected by page URL or Best Buy SKU | No browser rendering. Missing fields stay unknown. |
| Walmart | Product/Offer JSON-LD, or Walmart's embedded product data matching the item ID | Bot checks and region limits can block verification. |
| Other public sites with Schema.org Product data, such as Shopify stores | Product/Offer JSON-LD fallback | The page must include a product and offer in its HTML. |
Live coverage observed on 2026-10-13: Adafruit and Shopify storefronts (Allbirds, Kylie Cosmetics) returned SKU, price and stock. From Apify's datacenter network, Best Buy timed out, Walmart served a CAPTCHA, Home Depot, Lowe's, Newegg and B&H returned HTTP 403, and Apple's product page had no supported product data. All of those returned unknown and were not charged.
How much does it cost to verify a product offer?
This Actor uses pay-per-event pricing: $0.01 per selected priced-offer check ($10 per 1,000), with no start fee. A check is charged only when a single product and offer are selected and an explicit price and currency are found. Matching, conflicting and out-of-stock offers can be charged, because you still get the observed offer evidence. Blocked pages, CAPTCHAs, ambiguous offers, missing prices and parse failures are free. 100 chargeable checks cost $1.00.
The Apify Free plan includes monthly platform usage credits with no credit card required. Check the Pricing tab for the current rate.
Use the offer verifier from an AI agent or the API
The Actor ID is nickatnite79/shopping-offer-verifier, and it is available as a tool through the Apify MCP server (https://mcp.apify.com). Use it after a search or catalog tool has found a product URL. Pass on the status, checks, evidence and unknown fields when handing the result to another agent.
With apify-client and your own Apify token as APIFY_TOKEN:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('Nickatnite79/shopping-offer-verifier').call({offers: [{ url: 'https://www.adafruit.com/product/4295', expected: { sku: '4295' }, quantity: 1 }],country: 'US',expectedCurrency: 'USD',}, { maxTotalChargeUsd: 0.01 });if (run.status !== 'SUCCEEDED') throw new Error(`Actor run status: ${run.status}`);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
FAQ
Can it search for products by keyword?
No. It verifies URLs you already have. To export a whole Shopify catalog first, use the Shopify Products Scraper.
Does "verified" mean I can buy it at that price?
It means the requested fields match and the page discloses that price and in-stock status at check time. It does not certify checkout price, taxes, delivery date, local stock or authenticity.
Which offer does it pick if a page has several sellers or variants?
Only the one tied to the page URL or to your exact SKU, GTIN or model. It never picks the cheapest offer by assumption; otherwise the result is unverified.
Does it use a browser or proxies?
No. It uses direct HTTP requests and does not bypass CAPTCHAs or logins, so some large retailers return unknown.
Something broke or a store isn't supported?
Open an issue on the Issues tab with an example product URL.
Related Actors
Other tools by the same developer that return clean JSON for automations and AI agents:
| Actor | What it does |
|---|---|
| Career Site Jobs Scraper | Scrape open jobs from Greenhouse, Lever, Ashby and Workable career sites |
| Job Status Checker (Workday & iCIMS) | Check whether known job posting links are still open, closed or changed |
| RFP Amendment & Addendum Checker | Compare RFP revisions and addenda for deadline and requirement changes |
| BizBuySell & BizQuest Monitor | Alerts for new businesses for sale and asking price or cash flow changes |
| Google Trends API for AI Agents | Google Trends data with a rising, falling or flat verdict per keyword |
| App Store & Google Play Reviews Scraper | iOS and Android app reviews in one run with one schema |
| Cheap Google News Scraper | Google News search results and topic headlines as JSON |
| Shopify Products Scraper | Export a Shopify store's products, prices, variants, SKUs and stock |
Need a custom field, source or integration? Open an issue on the Issues tab.