Shopify Store Products Scraper
Pricing
from $0.60 / 1,000 results
Shopify Store Products Scraper
Shopify products scraper for catalog and variant exports: prices, discounts, SKUs, availability and images. Export CSV or JSON from public store feeds, with one row per product or variant. Review run summaries for failures and budget-limited exports. No Shopify API key required.
Pricing
from $0.60 / 1,000 results
Rating
0.0
(0)
Developer
Murat Uzun
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
3
Monthly active users
19 hours ago
Last modified
Categories
Features
Share
What is Shopify Store Products Scraper?
Shopify Store Products Scraper exports a public Shopify catalog as CSV, Excel or JSON, with prices, discounts, SKUs, barcodes, real stock counts (where the store publishes them), variant options and images, for $1 per 1,000 products with every variant nested in the product row and no add-on fee for stock or barcodes. Built for e-commerce analysts, dropshippers and price-monitoring teams. Enter a store URL and choose one row per product or one row per size/color variant. No Shopify API key is required.
Use it to prepare a catalog spreadsheet, compare product prices, or collect SKU-level availability snapshots for your own monitoring workflow. It reads the store's public products.json feed directly. When a store blocks or disables that feed (common on headless Shopify storefronts such as Hydrogen, which answer 403/404), it falls back to the store sitemap and each product page's schema.org structured data; those rows are marked dataSource: "jsonld". Real stock counts and barcodes are read from each product's public JSON at no extra charge when the store publishes them; inventoryAccuracy says whether a count is exact, partial, not published or not checked. Currency is never inferred.
Start with a small export
- Enter one store URL, such as
https://www.allbirds.com. - Set
maxProductsPerStoreto 2. LeaveincludeVariantsoff for two product rows that already contain every variant, or turn it on for one flat row per variant (spreadsheet-friendly, one charge per variant). - Run the Actor, inspect the dataset, and export CSV or JSON.
- Read the
OUTPUTsummary before increasing the limit or replacing an existing catalog. Product limits, filters, failures and budget limits can leave the export incomplete. Never infer that a missing SKU has been deleted from a partial export.
For repeated snapshots, match rows by store plus productId (product mode) or variantId (variant mode), or turn on monitorChanges to let the Actor output only what changed since the previous run. It does not send alerts itself; connect a webhook or integration to the dataset for notifications.
Monitor price and stock changes
Turn on monitorChanges and schedule the run with the same input:
- The first run saves a baseline and outputs no rows.
OUTPUT.monitorMessagesshowsbaseline saved N. - Each later run outputs only changed items, with the normal row fields plus
changeType,previousPriceandpreviousAvailable. An unchanged store outputs 0 rows and incurs no result charges; the start fee still applies. changeTypeisnew,price_drop,price_increase,back_in_stock,sold_outorremoved. When stock and price both change, the stock change is reported; both previous values are included. Aremovedrow haspriceandavailableset to null. SetincludeRemovedto false to skip these rows.
Snapshots are stored in your named key-value store shopify-products-scraper-state, one record per store and scope: collectionHandles, includeVariants, onlyAvailable, maxProductsPerStore and the optional trackingId. Changing any of them starts a new baseline. Variant mode compares each variant's price and available; product mode compares minPrice and anyAvailable. With onlyAvailable on, an item that sells out is no longer returned and is reported as removed.
A failed, empty, invalid or budget-limited store result is not compared: it outputs no change rows, reports no removals, leaves the snapshot unchanged and is listed in OUTPUT.comparisonSkipped with a reason. The snapshot is saved only after the dataset write is confirmed. If the run's spending limit truncates change rows, the unwritten changes are reported again on the next run. A store larger than maxProductsPerStore is compared only within the products returned under that limit, so raise the limit to cover the whole catalog. Variant-mode monitoring of a headless store read through the structured-data fallback is also skipped (variant_ids_unavailable), because those pages publish no Shopify variant ID; use product mode to monitor such stores.
What data does Shopify Store Products Scraper extract?
Shopify Store Products Scraper returns the fields below according to the selected product or variant mode. Fields not exposed by the public feed remain null:
| Field | Type | Description |
|---|---|---|
store, productId, productHandle, productUrl | string, number, string | Which store the row came from and the product's id, slug and live URL |
title, vendor, productType, tags | string, array | Product title, brand, merchant category and tags |
createdAt, updatedAt, publishedAt | string | Product lifecycle dates (ISO 8601) |
variantId, variantTitle, sku, barcode | number, string | Variant identity (variant mode) |
price, compareAtPrice, currency, discountPercent | number, string | Selling price, list price, store base currency from metadata and % off; unknown currency stays null |
available, inventoryQuantity | boolean, number | In-stock status and real units on hand per variant, read from the product's public JSON when the store publishes it |
inventoryManagement, inventoryPolicy, inventoryCount, inventoryAccuracy | string, number | Stock tracking system, oversell policy (deny/continue), summed product stock (product mode) and the evidence level: exact, partial, not_published or not_checked |
option1, option2, option3 | string | Variant option values, e.g. color / size |
weightGrams, requiresShipping | number, boolean | Shipping weight and whether the variant ships physically |
imageUrl, imageUrls, imageCount, bodyText | string, array, number, string | Primary/variant image, all distinct usable product image URLs, source image entry count and plain description |
variantCount, minPrice, maxPrice, anyAvailable | number, boolean | Aggregates used instead of the variant fields in product mode |
changeType, previousPrice, previousAvailable | string, number, boolean | Only with monitorChanges: what changed and the previous snapshot values |
variants, options, onSale, fullyOutOfStock, imageAltTexts | array, boolean | Product mode: every variant (price, list price, SKU, barcode, stock state, options, weight, image) nested in the same row, option names/values, sale and stock flags, image alt texts. One product = one charged row. |
dataSource, ratingValue, reviewCount | string, number | products_json or jsonld (headless fallback); rating and review count when the product page publishes them (jsonld rows) |
error, errorCode, scrapedAt | string | error and errorCode are null on result rows; failures use diagnostic records with both set |
How to use Shopify Store Products Scraper
- Paste one or more store URLs into Store URLs, e.g.
https://www.allbirds.com. A bare domain likegymshark.comalso works. - Leave One row per variant on for a price/stock feed keyed by SKU, or turn it off for one row per product with
minPrice/maxPrice/anyAvailable. - Optionally add Collection handles (e.g.
mens-shoes) to scrape only those collections instead of the whole catalog. - Click Start, then export the dataset as JSON, CSV, Excel or HTML.
Example input
{"stores": ["https://www.allbirds.com"],"maxProductsPerStore": 100,"includeVariants": true,"onlyAvailable": false}
Example output
{"store": "https://www.allbirds.com","productId": 7218356060240,"productHandle": "mens-strider-explore","productUrl": "https://www.allbirds.com/products/mens-strider-explore","title": "Men's Strider Explore - Natural Black (Dark Grey Sole)","vendor": "Allbirds","productType": "Shoes","variantId": 41334293921872,"variantTitle": "8.5","sku": "A11768M085","price": 130,"compareAtPrice": null,"discountPercent": null,"available": true,"option1": "8.5","imageUrl": "https://cdn.shopify.com/s/files/1/1104/4168/products/mens-strider-explore.jpg","imageCount": 3,"scrapedAt": "2026-09-12T18:10:00.000Z"}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
stores | array | ["https://www.allbirds.com"] | Store URLs to scrape, one or many |
maxProductsPerStore | integer | 100 | Cap on products fetched per store (1-20000) |
collectionHandles | array | [] | Scope to specific collections instead of the whole catalog |
includeVariants | boolean | false | One row per variant (true, flat CSV) or one row per product with all variants nested (false, one charge per product) |
onlyAvailable | boolean | false | Drop out-of-stock variants/products |
monitorChanges | boolean | false | Output only changes since the previous run of the same scope |
trackingId | string | none | Optional name for a separate change snapshot |
includeRemoved | boolean | true | Output removed rows when monitoring changes |
structuredDataFallback | boolean | true | If products.json is blocked/missing, read sitemap + product-page structured data instead of failing the store |
includeInventory | boolean | true | Read each product's public JSON for barcodes and real stock counts (one extra request per product, no extra charge) |
maxConcurrency | integer | 3 | Stores scraped in parallel (1-10); pages within a store are sequential |
Pricing
Shopify Store Products Scraper uses pay-per-event pricing: $0.001 per result row, i.e. $1 per 1,000 rows, plus a negligible actor-start fee. Check the live Pricing tab for current tiers and start fees. The run reserves its remaining result budget before requesting each store and limits products and output rows accordingly. Barcodes and stock counts are included in the same row price; there is no enrichment add-on. Variant mode can produce multiple rows per product. Budget-limited exports are not complete catalog snapshots. Errors and invalid product rows are stored as diagnostics, not billable result rows; start fees may still apply.
Shopify Store Products Scraper vs. browser-based scrapers
Most "universal" e-commerce scrapers render every product page in a headless browser to scrape prices off the DOM — slow, and easily broken by a theme update. Shopify Store Products Scraper reads the same structured JSON the store's own theme fetches, so extraction does not depend on the storefront CSS selectors. The feed can still be blocked, disabled or changed by a store. It cannot see private apps, wholesale-only catalogs or draft products that are not on the public storefront, which is by design: it only reads what the merchant already publishes.
Run it from code
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('webdatatools/shopify-products-scraper').call({stores: ['https://www.allbirds.com'],maxProductsPerStore: 50,includeVariants: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].title, items[0].variants.length, items[0].inventoryAccuracy);
Python (pip install apify-client):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('webdatatools/shopify-products-scraper').call(run_input={'stores': ['https://www.allbirds.com'], 'maxProductsPerStore': 50, 'includeVariants': False},)for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['title'], item['minPrice'], item['currency'])
CLI (npm install -g apify-cli, then apify login):
$echo '{"stores":["https://www.allbirds.com"],"maxProductsPerStore":20}' | apify call webdatatools/shopify-products-scraper --output-dataset
Using Shopify Store Products Scraper with AI agents and MCP
Connect your MCP client to the official Apify MCP server, authorize your Apify account, and select webdatatools/shopify-products-scraper. Ask the agent to export two products from a public Shopify store, pass stores and maxProductsPerStore: 2, and inspect both the dataset and the OUTPUT completeness summary. Configure your run spending limit in Apify before expanding the export.
This Actor uses limited permissions. Full-permission Actors are excluded from the official MCP server; pay-per-event pricing is not a universal requirement for account-authorized MCP access. Per-request agentic payments have separate eligibility requirements. The same Actor is callable through Apify's REST API and integrations such as n8n or Make.
Shopify run summary and completeness
Read the OUTPUT key-value record before replacing an existing inventory. It reports resultRows, failedStores, emptyStores, budgetSkippedStores, budgetLimitedStores, truncatedRows and deliveryUnconfirmed. With monitorChanges it also reports baselineStores, comparedStores, changeRows, stateNotSaved, monitorMessages and comparisonSkipped (store and reason). Counters cover this process attempt, not inferred migration totals. A nonzero limit/failure counter means the export must not be treated as a full catalog. The configured product limit and availability filters can also produce a partial catalog. Repeated pages stop with a diagnostic instead of looping. An uncertain dataset upload is not retried automatically to avoid duplicate charges.
Run outcome, status message and error codes
OUTPUT.outcome is the final result, and the run's terminal status message (also saved as OUTPUT.statusMessage) repeats it in one line, e.g. PARTIAL: 12 accepted rows; 1 diagnostics (STORE_PASSWORD_PROTECTED=1). See OUTPUT and DIAGNOSTIC-*.
outcome | Run status | When |
|---|---|---|
succeeded | Succeeded | No store or input entry failed. Includes a reachable store with 0 products: OUTPUT.zeroResultReason then says why (EMPTY_STORE_OR_FILTER, NO_CHANGES_OR_BASELINE, BUDGET_LIMIT_REACHED or NO_RESULTS). |
partial | Succeeded | Usable rows were delivered, but some stores or input entries failed. |
failed | Failed | No valid store URL, a processing or dataset-delivery failure, or no usable rows while a store or input entry failed. |
Only accepted product/variant rows (resultRows) enter the default dataset and are charged. Every rejected item is one DIAGNOSTIC-* record (diagnosticRows, never charged) with a human-readable error and a stable errorCode; OUTPUT.diagnosticCodes counts them by code, and OUTPUT.invalidStoreInputs counts skipped store entries. Codes are never renamed.
errorCode | Counts as failed store | Meaning |
|---|---|---|
INVALID_INPUT | — (run fails) | No valid store URL was supplied |
INVALID_STORE_URL | — (input entry) | A store entry is not a valid domain and was skipped |
STORE_FETCH_FAILED | yes | products.json request failed (network error or timeout) |
STORE_PASSWORD_PROTECTED | yes | Store is password-protected |
STORE_NOT_SHOPIFY | yes | No public Shopify feed and no verifiable product pages via the fallback |
STORE_FEED_HTTP_ERROR | yes | Feed answered with an HTTP error; completeness cannot be verified |
INVALID_PRODUCT_IDENTITY | yes | Feed returned a product without a valid id |
PAGINATION_STALLED | yes | Feed repeated the same page |
STRUCTURED_DATA_PARTIAL | yes | Some fallback product pages failed; usable rows are kept |
STORE_PROCESSING_ERROR | yes | Unexpected error while processing the store |
STORE_FAILED | yes | Generic store failure without a more specific code |
INVALID_PRODUCT_DATA | yes | A row without a valid product/variant id or title was rejected |
EMPTY_STORE_OR_FILTER | no (emptyStores) | Reachable store with no products, or none matched the filters |
DATASET_DELIVERY_UNCONFIRMED | — (run fails) | Dataset upload not confirmed and not retried |
MONITOR_STATE_NOT_SAVED | — | Change-monitoring snapshot could not be saved |
PROCESSING_FAILED | — (run fails) | Store processing stopped because of an internal error |
FAQ
How much does a typical export cost? You pay per accepted result row: in product mode one row per product, with all its variants, barcodes and published stock counts nested in it. 1,000 products cost $1.00 on the free tier (less on paid Apify plans; see the Pricing tab), plus a start fee of a fraction of a cent. Variant mode bills one row per variant, so a store with 4 variants per product costs about 4x more for the same products. Diagnostics, blocked stores and filtered-out rows are never billed. Set Max total charge on the run to cap spend.
Does this work on any Shopify store? It reads the public products.json feed; if that feed is blocked or missing (headless storefronts), it uses the sitemap and product-page structured data instead. Those jsonld rows have no public Shopify variant ID, compare-at price or timestamps (null), and a store whose pages publish no Shopify product ID cannot be verified. Password protection or blocks on every route still prevent collection; failed product pages are counted as a partial-export diagnostic. These cases create DIAGNOSTIC-* key-value records, with counts and the first diagnostic key in OUTPUT. Source failures with no usable products fail the run. A valid empty feed or no filter matches is reported in emptyStores without a product charge. Mixed runs retain usable rows and report failed stores separately. Error rows are not written to the default dataset.
Do I get real stock counts? Yes, where the store publishes them. The catalog feed only says in stock or not, so with includeInventory on (default) the Actor also reads each product's public JSON and fills inventoryQuantity, barcode, inventoryManagement and inventoryPolicy per variant. Many stores publish counts; some hide them — those rows say inventoryAccuracy: "not_published" and the count stays null, never zero. If the store blocks that endpoint, or the run is close to its timeout, enrichment stops and the affected rows say not_checked; the catalog rows are still delivered. OUTPUT.inventoryAccuracyRows counts each case. There is no extra charge for this.
Where does currency come from? One optional /meta.json request per nonempty store supplies the explicitly published store base currency. Missing, invalid or inaccessible metadata leaves it null and does not discard products. This request has an eight-second timeout and no retries. Shopify Markets may localize prices; the base currency is not proof of a visitor's presentment currency. Verify the target market before converting or comparing prices. The Actor never guesses from a domain or currency symbol.
Which images are included? imageUrls contains all distinct HTTP(S) URLs from the product's image list, plus its separate primary image when present. In variant mode, imageUrl prefers an explicit featured image, then the image linked by image ID or variant ID, then the primary product image. No extra image requests are made. imageCount keeps its existing meaning: the number of entries in the source image array, before URL validation and deduplication.
How is a product's discount calculated? Product mode reports the largest valid discount among its variants, pairing each variant's selling price with that same variant's compare-at price. It never combines the cheapest variant with another variant's list price. No valid discounted variant means null.
What counts as a "row" for pricing? Each variant (or, in product mode, each product) is one row. A store with 250 products and 4 variants each produces about 1,000 rows.
Does this access private Shopify data? No. It uses the storefront's public product feed and does not authenticate to Shopify Admin or bypass a password-protected store. Check the store's terms and your intended use before collecting data.
Can I export to CSV or Excel? Yes, from the Output tab or the API, with a ready-made Overview view.
Related Actors
Part of the webdatatools web-intelligence suite — every Actor is pay-per-event, reads public data without a login, and returns one clean row per entity:
Browse the whole suite at webdatatools, or call ten of these Actors straight from Claude, Cursor or Cline with the webdatatools MCP server.
Website & domain intelligence
- Email Extractor — Website Contact & Social Finder — e-mails, phones and social profiles per domain
- Tech Stack Detector — Wappalyzer & BuiltWith Alternative — CMS, e-commerce, analytics, pixels and payments per domain
- Domain DNS & Email Security Checker — SPF, DKIM, DMARC, MX provider, registrar and domain age
- Domain Security Audit (TLS, HTTP headers, redirects, robots) — TLS expiry, security headers, redirect chain, robots and llms.txt
- Subdomain Finder (Certificate Transparency) — every subdomain seen in CT logs, with a live DNS check
- Bulk Core Web Vitals & PageSpeed Audit — Lighthouse scores, LCP, CLS, INP and top fixes per URL
- On-Page SEO Audit — title, meta, headings, links, images and schema issues per page
- Sitemap URL Extractor & Change Monitor — every sitemap URL, or new and removed pages between runs
- Wayback Machine Snapshot & Page Change Tracker — how a page changed over time, or every archived snapshot
- Bulk Domain WHOIS & RDAP Lookup — registrar, dates, status and nameservers per domain
- Web Scraper — CSS Selector & Data Extractor — pull any CSS selector off any page, one row per URL
- Website Screenshot Generator — full-page or viewport PNG/JPEG screenshots of any URL
Content for AI, LLMs and RAG
- AI Web Search & Read: Google results as clean Markdown — a query turned into clean Markdown from the top search results
- Website to Markdown — Content Crawler for LLM & RAG — any site as clean Markdown per page, no browser
- llms.txt Generator (Website to llms.txt & llms-full.txt) — llms.txt and llms-full.txt for any website or docs site
- PDF to Markdown Converter (Text, Headings, Metadata) — PDF files to clean Markdown with headings, metadata and token counts
- RAG Text Chunker (Markdown to Chunks, Token Counts) — heading-aware RAG chunks with exact GPT token counts from any dataset
- Article & News Extractor (clean text, author, date, markdown) — clean article text, author, date and Markdown per URL
- Structured Data & JSON-LD Extractor (Schema.org, Open Graph) — Schema.org and Open Graph data from any page
- Google News Scraper (RSS search by keyword, topic, site) — news results by keyword, topic or site
- Press Release Monitor: PR Newswire, BusinessWire, GlobeNewswire — PR Newswire, Business Wire and GlobeNewswire releases
Search, video and social
- YouTube Shorts Scraper — Shorts from channels, hashtags and searches with view counts
- Pinterest Pins Scraper — latest pins of public Pinterest profiles and boards
- YouTube Transcript Scraper — captions and subtitles as text + timed segments, per video or channel
- Google Search Results Scraper — SERP API — organic SERP results per keyword and country
- YouTube Comments Scraper — Comments & Replies — comments and replies with likes, no API key
- YouTube Channel Latest Videos (RSS, no API key) — the latest 15 videos of any channel from RSS
- YouTube Channel Scraper (videos, shorts, live) — a channel's full video, shorts and stream list
- YouTube Search Results Scraper (videos, channels, no API key) — videos, channels and playlists per query
- YouTube Video Details Scraper (views, likes, description, tags) — views, likes, description, tags and chapters per video
- Apple Podcasts Lookup & Episodes Scraper — podcast metadata and episodes from iTunes and RSS
- Bluesky Post, Search & Profile Scraper — posts, profiles, followers and threads from the AT Protocol API
- X Tweet Scraper (Twitter Posts by URL, No Login) — X (Twitter) posts by URL with likes, replies, author, media and MP4 links
- TikTok Profile Scraper (Followers, Likes, Bio, Video Stats) — TikTok profiles with exact follower and like counts, plus video stats
- Telegram Channel Posts Scraper — posts, views and media flags from any public channel
- Substack Publication & Posts Scraper — archive, authors and paywall status per publication
- Google Play Reviews Scraper — reviews, ratings, replies and app versions per app
- App Store Reviews Scraper — iOS reviews and ratings per app and country
- Trustpilot Reviews Scraper (Ratings, Replies, No Login) — Trustpilot reviews with stars, full text, verification and company replies
- Google Trends Scraper — interest over time, by region, and related queries per keyword
- Google Ads Transparency Scraper — ads any advertiser runs on Google, with format and dates
- Keyword Suggestions Scraper (Google, YouTube, Amazon, Bing) — autocomplete keyword ideas from four search engines
- Bilibili Scraper (Videos, Search, Popular) — Chinese video platform: views, likes, coins, danmaku, uploader
- Mastodon Scraper (Hashtags, Accounts, Trending) — public fediverse posts by hashtag, account or trending
- Meetup Events Scraper (Search by Keyword & City) — upcoming events with RSVPs, fees, venues and groups
- Eventbrite Scraper (Events by Keyword & City) — events by keyword and city with venue, dates and organizer
Leads, jobs and company data
- Career Site Jobs API (Greenhouse, Lever, Ashby, Workday +1) — company domains in, their open jobs out, ATS detected automatically
- Workday Jobs Scraper — jobs with full descriptions from any Workday career site
- Google Maps Scraper — businesses with phone, website, address, rating and coordinates per search
- 2GIS Places Scraper (Phones, Websites, Ratings, Hours) — 2GIS businesses in Russia, Kazakhstan, UAE and more with phones, website, rating and hours
- LinkedIn Jobs Scraper — job titles, companies, locations and full descriptions from LinkedIn job search
- Company 360: full company profile from a domain — one row per domain: contacts, tech, security, hiring and company facts
- Hiring Signals Scraper (Greenhouse, Lever, Ashby, Workable) — open jobs and hiring velocity from 10 public ATS boards
- Y Combinator Companies & Founders Scraper — YC startups by batch, industry and hiring status
- Wikidata Entity & Company Enrichment (facts, IDs, links) — HQ, founders, employees, revenue and social IDs per company
- Email Validator & Verifier — Bulk Email Check — syntax, MX, disposable, role and free-provider checks
- OpenStreetMap POI Extractor (Overpass API: shops, amenities) — shops and amenities by radius, bbox or area
- Stock, Crypto & FX Quotes — one row per symbol from Yahoo, Binance and ECB rates
- Yahoo Finance Scraper (Quotes, Fundamentals, Financials, News) — Yahoo Finance fundamentals, analyst targets, financial statements, ownership, news and history per ticker
- DexScreener Scraper (DEX Pairs, Prices, Liquidity, Boosts) — DEX pairs with price, volume, liquidity, FDV and boosted tokens across chains
- Polymarket Scraper (Prediction Markets, Odds, Volume) — Polymarket markets and events with outcome prices, volume and liquidity
- StockTwits Scraper (Messages, Sentiment, Trending) — StockTwits messages with Bullish/Bearish sentiment and trending symbols
- Economic Calendar Scraper (Forex Events, Impact, Forecasts) — This week's macro events with impact, forecast and previous values
- Crypto Fear & Greed Index — Daily Crypto Fear & Greed Index values with full history
- Remote Jobs Aggregator (RemoteOK, WWR, Hacker News) — one clean row per remote job, de-duplicated across feeds
- Greenhouse Jobs Scraper — jobs with descriptions from any Greenhouse job board
- Lever Jobs Scraper — jobs with descriptions from any Lever careers page
- Ashby Jobs Scraper — jobs, salaries and descriptions from any Ashby job board
- SmartRecruiters Jobs Scraper — jobs with descriptions from any SmartRecruiters company
- Seek Jobs Scraper (Australia & New Zealand) — Seek job ads with salary, work type and location
- Dice Jobs Scraper — US tech jobs from Dice with salary and remote flag
- AutoScout24 Scraper — European car listings with price, mileage and seller
- Rightmove Scraper — UK property for sale or rent with price and agent
- Wellfound Jobs Scraper (AngelList Startup Jobs) — startup jobs with salary and equity ranges, company size and stage
- Yandex Maps Scraper (Places, Ratings, Phones) — businesses in Russia, Türkiye and the CIS with phones, ratings, hours
- Craigslist Scraper (Listings, Prices, Locations) — listings in any area and category with price, date and coordinates
- JobStreet Scraper (Malaysia, Singapore, PH, ID + JobsDB) — JobStreet and JobsDB jobs in 6 Asian countries with parsed salaries
- InfoJobs Scraper (Spain Jobs, Salaries, Companies) — Spanish jobs with salary range, contract type and full description
- StepStone Scraper (Germany, Austria, Belgium Jobs) — StepStone jobs in Germany, Austria and Belgium by keyword and city
- Naukri Jobs Scraper (Salary, Skills, Company Rating) — Naukri.com jobs in India with salary range, experience, skills and company rating
- Zillow Scraper (Homes for Sale, Rent & Sold, Zestimates) — Zillow homes for sale, rent or sold with Zestimates, beds, baths and photos
- Zillow Home Details Scraper (Description, Photos, History) — full Zillow property pages: description, photos, HOA, tax rate, agent
- Redfin Scraper (Homes for Sale, Prices, Details) — US homes for sale or sold from any Redfin search, with price and details
- Kleinanzeigen Scraper (Ads, Prices, Locations) — German classifieds with price, VB flag, ZIP, city and seller type
Developer, app and research data
- npm, PyPI & Crates.io Package Health Checker — releases, downloads, deprecation and a health score
- GitHub Repository Health & Activity Report — stars, commits, contributors and risk flags per repo
- VS Code Marketplace Extension Scraper (installs, ratings) — installs, ratings and versions per extension
- Chrome Web Store Extension Scraper (installs, ratings) — users, rating, version and developer per extension
- Google Play Scraper — apps, ratings, installs, developer contact and reviews
- App Store (iOS) App Metadata, Ratings & Top Charts Lookup — ratings, price, version and charts per app
- CrossRef DOI & Citation Metadata Lookup — papers, authors, journals and citation counts
- FDA Recalls & Adverse Events Monitor (openFDA) — food, drug and device recalls from openFDA
- iCal / ICS Calendar Feed to Events Extractor — any public calendar feed as event rows
- Hacker News Search & Front Page Scraper — stories, comments and points by query or front page
- GitHub Trending Repositories Scraper — trending repos and developers by language and period
- Stack Overflow & Stack Exchange Q&A Scraper — questions, answers and scores by query, tag or site
- Bulk Image Downloader — download image URLs to storage with size, dimensions and a ZIP
- Google Flights Scraper (Prices, Airlines, Stops) — flight prices, airlines, times, stops and CO2 by route and date
- Google Hotels Scraper (Prices, Ratings, Reviews) — hotel prices per night, stars, rating and reviews by city and dates
- Booking.com Scraper (Hotel Prices, Ratings, Availability) — Booking.com hotels for any city and dates with prices, scores and deals
- Airbnb Scraper (Listings, Prices, Ratings, Coordinates) — Airbnb stays for any city and dates with prices, ratings and coordinates
- AliExpress Scraper (Search Products & Prices) — AliExpress search results with USD price, discount and rank
- Lazada Scraper (Products, Prices, Sold, Ratings) — Lazada products in 6 countries with price, rating, units sold and seller
- Trendyol Scraper (Turkey Products, Prices, Ratings) — Trendyol products with price, basket discount, rating and promotions
Tracking a few competitor products rather than whole catalogs? Page & Price Watch watches a product page's price and availability from its schema.org data and emails you when they change. To see the price a single product page publishes right now, use the free product price checker (no sign-up).
Support and feedback
Found a store the Actor mis-detects as non-Shopify, or a field worth adding? Open an issue on the Issues tab.
If this Actor is useful to you, you can leave a review on its Apify Store page. Nothing is offered in return.