Thegioididong Scraper at a glance
Thegioididong Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes name, brand, category, price and list price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Ecommerce, Automation, Developer Tools
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.00 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 23 options
Scrape thegioididong.com products with full specifications, current & original price, discount, brand, category, variants, image gallery, description, customer rating and reviews. Search by keyword with brand, price, rating and sort filters, or paste product / category / search URLs.
What Thegioididong Scraper can do
- Two ways to collect. Search by keyword with brand, price range, minimum rating and six sort orders, or paste product, category, search or promo page links directly, no URL building required.
- Genuine discount tracking, never fabricated. The original ("was") price, discount amount, discount percentage and any gift or installment label are only ever populated for a product that is actually on special; an ordinary product reports isOnSpecial: false with those fields empty.
- Flash Sale and promo pages. Browse the site's permanent Flash Sale hub with one toggle, or paste any seasonal brand or campaign promo page link to pull its deals.
- Full product detail on demand. Specifications, variants (storage and colour, each with its own price and stock status), image gallery, full category breadcrumb, description and aggregate rating, switched on per run.
- Star rated customer reviews. Author, date, rating and review text collected from the product page itself, with unrated Q&A entries excluded.
- Filters and sorting apply everywhere. Brand, price range, minimum rating and the six sort orders act on whatever set of products was collected, whether from a keyword search or a pasted URL.
Choose what to collect
These inputs let you configure Thegioididong Scraper - Products, Prices, Specs & Reviews. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Choose 'search' to use keywords, or 'url' to scrape specific product, category or search URLs you paste below. |
queriesarray | One or more keywords to search, for example 'iphone 15', 'laptop gaming' or 'tai nghe bluetooth'. Each keyword is searched separately. If you leave this empty or omit it, the keyword 'iphone 15' is searched. To browse a whole category instead, switch to URL mode and paste its link (for example https://www.thegioididong.com/dtdd). |
specialsOnlyboolean | Browse the site's permanent Flash Sale hub instead of a keyword search. Every returned product carries a genuine original/'was' price, discount amount and percentage. Ignores 'Search keywords' when on. To browse a seasonal brand promo page instead (for example a specific brand's clearance page), switch to URL mode and paste its link. |
urlsarray | Product, category, search or promo-page URLs to scrape, for example https://www.thegioididong.com/dtdd/iphone-15, https://www.thegioididong.com/dtdd, https://www.thegioididong.com/flashsale (the Flash Sale deals hub) or a brand promo page like https://www.thegioididong.com/khuyen-mai-aukey. Multiple URLs supported. |
brandstring | Optional. Keep only products whose brand contains this text, for example 'Apple', 'Samsung' or 'Xiaomi'. |
sortBystring | Ordering applied to whatever set of results was collected, whether from a keyword search or a pasted URL. This only reorders the results, it does not filter or change which items are included. |
minPriceinteger | Optional. Only keep products priced at or above this amount (VND). |
Show 16 more inputs
| Input | What it controls |
|---|---|
maxPriceinteger | Optional. Only keep products priced at or below this amount (VND). |
minRatinginteger | Optional. Only keep products with an average customer rating at or above this value (1 to 5). Needs product details enabled. |
fetchDetailsboolean | Add full specifications, variants, image gallery, brand, category, description and aggregate rating for each product. Adds one request per product. |
fetchReviewsboolean | Also collect the customer reviews of each product (review text, author, date, star rating); entries without a star rating are skipped. The first 10 come with the product page and further ones are read 10 at a time, up to Max reviews per product, so large caps take extra requests per product. |
maxReviewsPerProductinteger | Cap on reviews collected per product when 'Fetch customer reviews' is on. 0 or empty uses the default of 20, and values above 100 are treated as 100 (so 0 does not mean all reviews). Every started block of 10 delivered reviews adds one detail-enrichment unit. |
maxItemsinteger | Maximum number of products to return across the whole run. Use 0 for no limit (the input accepts up to 100000). |
maxPagesinteger | Safety cap on category / search listing pages fetched per query (each page holds about 20 products). 0 means the built-in limit of 20 pages per query. The run also stops at Max products or when a listing is exhausted. |
resumeFromRunIdstring | Optional. ID of a previous run of this actor (or a dataset ID). Products already in that dataset are skipped, so this run returns only NEW products (a delta). Combine both runs' datasets for the full set. Max products then counts only the new products. For recurring daily or weekly monitoring of the same search, use Incremental mode below instead. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs compare every product against the last run (price, original price and discount, promo gift and installment offer, variants with their price and stock, specifications, brand, category and description) and return only NEW, UPDATED and REAPPEARED products, with an UPDATED row's changedFields naming exactly what moved. The average rating, rating count, rating breakdown, reviews, image URLs, the search mode tag, the card badge label, the search keyword (searchQuery) and the category id (categoryId, which can depend on the page a product was found on) are never compared, since they change on their own with no real product change. Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). State is kept separately for each search, URL and filter setup; use State key to name or deliberately share a monitoring campaign. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to derive a key automatically from the search, URL and filter settings; different setups then never mix state. |
emitUnchangedboolean | Off by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns and bills extra rows you already have, so leave it off unless you want the full snapshot every run. |
emitExpiredboolean | Off by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced after a complete scan of the tracked search or URLs: never when Max products or Max listing pages capped it, when a filter (brand, price, rating) narrowed it, when a pasted URL starts past page 1, for a single product URL, or when any request failed. This returns and bills extra rows, so leave it off unless you need expiry tracking. |
ignoreFieldsForChangesarray | Optional. Field names to exclude from UPDATED change detection, in addition to the built-in handling (rating, rating count, rating breakdown, reviews, image URLs, search mode, card label, search keyword and category id already never trigger a false UPDATED). Use this if another top-level field in your setup turns out to be noisy. The field stays in the output. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
nameNamebrandBrandcategoryCategorypricePriceoriginalPriceList pricecurrencyCurrencydiscountDiscountratingRatingreviewCountRatingscodeCodeimageUrlImage (image)urlURL (link)Show 10 more fields
reviewsreviewscategoryPathCategory pathspecificationsSpecificationsvariantsVariantsimagesGalleryratingBreakdownRating breakdownchangeTypeChangechangedFieldsChanged fieldsfirstSeenAtFirst seenlastSeenAtLast seenExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"code": "512340",
"productCode": "5502217003391",
"sku": "512340",
"name": "Điện thoại Kaelora Zynth 5G 8GB/128GB",
"url": "https://www.thegioididong.com/dtdd/kaelora-zynth-5g-8gb-128gb",
"brand": "Kaelora",
"category": "Điện thoại",
"categoryPath": [
"Điện thoại",
"Điện thoại Kaelora"
],
"color": "Đen",
"price": 7690000,
"originalPrice": 8990000,
"discount": "-14.5%",
"discountPercent": 14.5,
"savings": 1300000,
"isOnSpecial": true,
"promoGift": "Quà 150.000₫",
"installmentOffer": "Trả chậm 0% trả trước 0đ",
"currency": "VND",
"rating": 4.6,
"reviewCount": 328,
"ratingBreakdown": {
"bestRating": 5,
"worstRating": 1
},
"specifications": {
"Hệ điều hành": "Android 15",
"Dung lượng RAM": "8 GB",
"Dung lượng lưu trữ": "128 GB"
},
"variants": [
{
"name": "128GB",
"sku": "512340",
"price": 7690000,
"availability": "InStock"
},
{
"name": "256GB",
"sku": "512341",
"price": 8990000,
"availability": "OutOfStock"
}
],
"images": [
"https://cdn.tgdd.vn/Products/Images/42/512340/kaelora-zynth-5g-den-1.jpg"
],
"description": "Kaelora Zynth 5G 8GB/128GB - man hinh 6.5 inch, pin 5000mAh...",
"reviews": [
{
"author": "Minh Anh",
"date": "2025-03-12",
"rating": 5,
"title": null,
"body": "Camera chụp đẹp, dùng mượt."
}
],
"searchMode": "search",
"source": "thegioididong.com"
}Ways to use this data
- Price trackers and deal alert tools: monitor Flash Sale and promo page discounts, was price and percentage off, to alert shoppers to genuine drops.
- E-commerce competitor research: compare phone, laptop and electronics pricing and specifications across brands and categories.
- Review and reputation analysis: collect star rated customer reviews and aggregate ratings to gauge sentiment on specific models.
- Catalogue and inventory audits: pull full specifications, variants and stock status for a brand or category to keep a downstream catalogue in sync.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Thegioididong Scraper return?
The documented output for Thegioididong Scraper includes name, brand, category, price, list price, currency, discount and rating. Availability of each field depends on the source page and the selected mode.
How much does Thegioididong Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I schedule this actor for recurring updates?
Yes, from the Schedules tab. Turn on Incremental mode so each scheduled run returns only new, updated or reappeared products (see the Incremental mode section above); with it off, every run scrapes its scope fresh and returns the current state of the catalogue.
Why did I get fewer products than Max products?
Max listing pages caps how many pages beyond the first are walked for a search or category (about 20 products per page); once that cap, or the listing's own end, is reached, the run stops even if Max products has not been met. Raise Max listing pages, or leave it empty to use the run's own cap, for a deeper browse.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
