Shopify Product Details Scraper avatar

Shopify Product Details Scraper

Pricing

$1.50 / 1,000 rich product records

Go to Apify Store
Shopify Product Details Scraper

Shopify Product Details Scraper

Turn any Shopify product link into a full record: title, description, variants, prices, availability, images and identifiers...

Pricing

$1.50 / 1,000 rich product records

Rating

0.0

(0)

Developer

Hamza

Hamza

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Paste one or more Shopify product links and get back a full structured record for each: title, description, variants, prices, availability, images and identifiers. Built for anyone who needs the complete picture of individual products: dropshippers enriching listings, price-tracking teams watching single SKUs, content teams reusing descriptions and imagery, and analysts auditing variant-level detail.

What you can do with it

  • Turn a product link into a record — paste https://allbirds.com/products/... links and get titles, prices, variants, stock flags and images back as clean rows.
  • Enrich a product feed — SKUs, barcodes, weights and full image sets plug straight into listings and catalogs.
  • Watch key SKUs — re-run the same links daily and diff prices, discounts and availability per variant.
  • Reuse product content — plain-text and full-markup descriptions plus captioned images for content pipelines.
  • Audit variant detail — option axes, quantity rules and fulfillment flags per variant in one place.

What you get

One rich row per product. Abridged sample of a single record:

{
"storeDomain": "allbirds.com",
"productId": "7292464955472",
"handle": "mens-cruiser",
"url": "https://allbirds.com/products/mens-cruiser",
"title": "Men's Cruiser",
"vendor": "Allbirds",
"productType": "Shoes",
"currency": "USD",
"price": { "amount": 105, "currency": "USD" },
"compareAtPrice": null,
"variantsCount": 2,
"availableCount": 1,
"description": "Court style comfort.",
"descriptionHtml": "<p>Court style comfort.</p>",
"images": [{ "src": "https://cdn.shopify.com/a.webp", "alt": null, "width": 1521, "height": 2000, "position": 1, "variantIds": [] }],
"variants": [
{ "variantId": "1", "title": "8", "sku": "A1", "barcode": null, "price": { "amount": 105, "currency": "USD" }, "compareAtPrice": null, "available": null, "option1": "8", "position": 1, "grams": 454, "inventoryManagement": "shopify", "taxable": true, "requiresShipping": true }
]
}

Input reference

SettingTypeDefaultWhat it does
Product URLslist of textShopify product page links, e.g. https://allbirds.com/products/mens-cruiser. One full record is collected per link. Required.
Max itemswhole number200Maximum products to collect. The actor works through your links until this number is reached or the links run out. Maximum 2,000.
CurrencytextemptyThree-letter currency code for prices, e.g. USD. Leave empty to use each store's own currency.

Output fields

FieldTypeDescription
storeDomaintextStore the product was read from.
productIdtextStable product ID.
handletextURL slug of the product page.
urltextClean link to the product page.
titletextProduct name.
vendortextBrand or supplier when shown.
productTypetextStore's own product grouping when shown.
tagslist of textMerchandising tags when shown.
statustextPublication status when shown.
publishedAttextWhen the product went live on the storefront.
createdAttextWhen the product record was created.
updatedAttextLast edit timestamp.
currencytextCurrency code all price pairs in the row use, confirmed by the store.
priceprice pairLowest variant price as { amount, currency }.
compareAtPriceprice pairStrike-through price when on sale, otherwise empty.
minPriceprice pairLowest variant price.
maxPriceprice pairHighest variant price.
variantsCountnumberHow many variants the product has.
availableCountnumberHow many variants are currently in stock.
optionslistVariant axes such as Size and Color with their values.
descriptiontextPlain-text product description when shown.
descriptionHtmltextFull product description markup when shown.
imageUrltextMain product image.
imageUrlslist of textEvery product image.
imageslistPer-image rows: source, alt text, dimensions, position and linked variants.
variantslistFull per-variant rows: ID, title, SKU, barcode, price pair, stock flag, options, weight, inventory and tax flags, quantity rules and image.
templateSuffixtextStore's page template marker when set.
publishedScopetextPublication scope when shown.

Pricing

You pay per rich product record, with no monthly minimum.

What you are charged forPrice
Rich product record — one record added to your dataset$1.50 per 1,000

Limits & what this actor cannot do

  • Records are a snapshot at the moment of collection; prices, discounts and stock flags keep changing afterwards.
  • Fields a store does not show come back empty rather than guessed — a product with no listed barcode has no barcode in its row.
  • Stock is reported as a simple in/out flag per variant where the store publishes one; exact quantities are not published by stores.
  • Non-product links (collection pages, home page, other sites) are skipped, not charged.
  • Speed depends on the size of the job and on each store's own response times; no fixed throughput is promised.
  • The source site's terms govern automated access. You are responsible for using the data lawfully and in line with the source site's terms, and for handling any personal data in line with applicable privacy law.

FAQ

Do I need a store account? No. The actor reads only what stores show publicly on product pages.

Does it need my login or password? No. There is nothing to connect and nothing to configure — paste product links and press start.

What counts as a product link? A link containing /products/, such as https://allbirds.com/products/mens-cruiser. Anything else is skipped.

How many products can I collect per run? Up to 2,000 links in one run.

Can I schedule it? Yes. Schedule it hourly, daily or weekly from the Apify console, and each run writes a fresh dataset you can compare against the last.

Is the data complete? It is complete for everything the store shows openly on the product page. Where a store omits a field, the actor leaves it empty rather than guessing.