Thegioididong Scraper - Products, Prices, Specs & Reviews avatar

Thegioididong Scraper - Products, Prices, Specs & Reviews

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
Thegioididong Scraper - Products, Prices, Specs & Reviews

Thegioididong Scraper - Products, Prices, Specs & Reviews

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.

Pricing

from $1.00 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

8 days ago

Last modified

Share

Thế Giới Di Động Scraper: Prices, Deals and Customer Reviews

Thế Giới Di Động Scraper turns thegioididong.com into a clean product data feed. Get the current price, the genuine original ("was") price and discount for every product that is actually on special, full specifications, colour and storage variants with their own price and stock status, the image gallery, the full category path, the aggregate customer rating, and the star rated reviews shown on each product page. Search by keyword with brand, price and rating filters, browse the permanent Flash Sale hub with a toggle, or paste product, category, search or promo page links, then export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • 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.
  • Built for a reliable connection. The run automatically rotates to a fresh connection per request and tells a genuinely empty result apart from a run whose connection was refused.

Use Cases

  • 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.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
code"512340"
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 / categoryPath"Điện thoại" / ["Điện thoại", "Điện thoại Kaelora"]
color"Đen"
price7690000
originalPrice8990000
discount / discountPercent"-14.5%" / 14.5
savings1300000
isOnSpecialtrue
currency"VND"
rating / reviewCount4.6 / 328
ratingBreakdown{ "bestRating": 5, "worstRating": 1 }
specifications{ "Hệ điều hành": "Android 15", "Dung lượng RAM": "8 GB" }
variants[{ "name": "128GB", "price": 7690000, "availability": "InStock" }]
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..."
searchMode"search" (also "url")
source"thegioididong.com"

Each record also carries productCode and productId (two more of the site's own identifiers), promoGift and installmentOffer (only when a genuine promo label or 0%-installment offer is shown on the product), imageUrl (a convenience copy of the first gallery image), label (a card badge such as "Cao cấp", rarely shown), categoryId (the site's own category id), searchQuery (the keyword that produced the row, empty for category and product links), and, with Fetch customer reviews on, a reviews array of {author, date, rating, title, body} (date is YYYY-MM-DD, author is empty for anonymous reviewers, and title is always empty because the site has no review titles).

How to Use

  1. Pick a mode: search (keyword and filters) or url (paste links).
  2. In url mode, paste links; if you leave the URL list untouched it scrapes the 11 example links (one per supported page shape: category, product, keyword search, flash sale hub, promo page, paginated, filtered and brand landing pages), so clear it and paste your own to scrape only those.
  3. In search mode, enter one or more keywords, or turn on Flash sale deals only to browse the permanent deals hub instead.
  4. Turn on Fetch product details for full specs, variants, gallery and rating, and Fetch customer reviews for the star rated reviews on each product page.
  5. Set Max products to control run size and cost, then click Start.

Search with brand, price and sort filters:

{
"mode": "search",
"queries": ["laptop"],
"brand": "Asus",
"minPrice": 10000000,
"maxPrice": 30000000,
"sortBy": "priceAsc",
"maxItems": 10
}

Browse the Flash Sale deals hub:

{
"mode": "search",
"specialsOnly": true,
"fetchDetails": false,
"maxItems": 20
}

Paste a category link, with detail and reviews on:

{
"mode": "url",
"urls": ["https://www.thegioididong.com/dtdd"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 10,
"maxItems": 15
}

Paste a single product link:

{
"mode": "url",
"urls": ["https://www.thegioididong.com/dtdd/iphone-15"],
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 50
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/thegioididong-scraper").call(run_input={"mode": "search", "queries": ["laptop"], "maxItems": 10})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/thegioididong-scraper').call({ mode: 'search', queries: ['laptop'], maxItems: 10 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

How Max listing pages and Max products shape a run

A category or search page ships about 20 products on its first page; getting more means walking the listing's paging endpoint forward. Max listing pages caps how many of those additional pages a single search or category walk fetches on top of the first page (about 20 products each); the walk also stops on its own once it has scanned roughly twice the Max products budget or the listing runs out of products, whichever comes first. Leave Max listing pages empty to use the run's own 20 page safety cap, or raise it for a deeper browse.

Filters, sorting and reviews apply the same way in both modes

Brand, price range, minimum rating and the six sort orders act on whichever set of products was collected, whether from a keyword search or a pasted URL, not just from a search. Fetch customer reviews reads the same product detail page as Fetch product details and is billed the same way, so turning it on alone still triggers one detail request, and its surcharge, per product even when Fetch product details is off. The first 10 reviews of a product come with that page; further reviews are read 10 at a time up to Max reviews per product.

Incremental mode (recurring monitoring)

Turn on Incremental mode to run the same search or URLs on a schedule and get only what changed. The first run returns every matching product as NEW. Later runs compare each product against the last run and return NEW, UPDATED (with changedFields naming what moved) and REAPPEARED rows, each with changeType, firstSeenAt and lastSeenAt. Price, original price, discount, promo gift, installment offer, variants (price and stock), specifications, brand, category and description are compared. The average rating, rating count, rating breakdown, reviews, image URLs, the search mode tag, the card label, the search keyword (searchQuery) and the category id (categoryId, which can depend on the page a product was found on) are never compared, because they move without a real product change; they stay in the output. Use Ignore fields when detecting changes (incremental mode only) to exclude further top-level fields.

Unchanged products are not returned and not charged unless you turn on Emit unchanged. Emit expired returns products no longer found, and only after a complete scan: never when Max products or Max listing pages capped the run, when a brand, price or rating filter narrowed it, when a pasted URL starts past page 1, for a single product URL, or when any request failed. Billing follows the rows returned: every returned row, including UNCHANGED and EXPIRED rows you opt into, counts as a result, and the detail-enrichment surcharge applies only to returned rows whose detail page was read. State is kept per search, URL and filter setup (or per State key).

Dataset views

The dataset has four views: Products (the overview table), Reviews (one column set for the star rated reviews), Product detail (specifications, variants, gallery and category path) and Changes (incremental mode: changeType, changedFields, firstSeenAt, lastSeenAt).

In url mode you can paste: a category page (/dtdd, /laptop), a product page (/dtdd/iphone-15), a keyword search page (/tim-kiem?key=...), the Flash Sale hub (/flashsale), a promo page (/khuyen-mai-...), a paginated listing (?page=2 starts at that page and continues from there), a filtered listing (?g=laptop-gaming keeps the filter on every page), a brand landing page (/dtdd-apple-iphone) and a link without the www prefix (it redirects to the www site). Links on the mobile site (m.thegioididong.com) are not supported. The Thế Giới Di Động URLs list is pre-filled with one working example of each shape, and these 11 links are also what runs if you leave it untouched, so clear it and paste your own to scrape only those.

Send results into your apps (MCP connectors)

Optionally pipe the scraped products into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch (keyword and filters) or url (paste links).
queriesarray["iphone 15"]Keywords to search, one query at a time; search mode only. If you leave it empty or omit it, iphone 15 is searched.
specialsOnlybooleanfalseBrowse the permanent Flash Sale hub instead of a keyword search; ignores Search keywords.
urlsarray11 example links, one per supported page shape (default and prefill)Product, category, search or promo page links to scrape; url mode only.
brandstring(none)Keep only products whose brand contains this text. Applies to both modes.
sortBystringrelevanceReorders whatever set of products was collected: relevance, priceAsc, priceDesc, ratingDesc, reviewsDesc or nameAsc.
minPriceinteger(none)Keep only products priced at or above this amount, in VND.
maxPriceinteger(none)Keep only products priced at or below this amount, in VND.
minRatinginteger(none)Keep only products with an average rating at or above this value (1 to 5); needs product details on.
fetchDetailsbooleantrueAdd specifications, variants, image gallery, category path, description and aggregate rating; one extra request per product.
fetchReviewsbooleanfalseAlso collect the star rated reviews on each product page. Reads the same detail page as Fetch product details, and is billed the same way, even when Fetch product details is off.
maxReviewsPerProductinteger20Cap on reviews collected per product. 0 or empty uses the default of 20 (it does not mean all reviews), and values above 100 are treated as 100.
maxItemsinteger20Maximum products returned across the whole run; 0 for unlimited.
maxPagesinteger0 (a 20 page cap applies when 0)Safety cap on listing pages fetched per search or category (about 20 products per page).
proxyobjectresidential, country VNConnection settings. This source only answers reliably on a residential connection in Vietnam.
resumeFromRunIdstring(empty)ID of a previous run or dataset of this actor. Products already in it are skipped, so this run returns only new products.
incrementalModebooleanfalseReturn only NEW, UPDATED and REAPPEARED products compared with the last run.
stateKeystring(none)Name or share an incremental monitoring campaign; empty derives one from the setup.
emitUnchangedbooleanfalseIncremental mode: also return UNCHANGED products (billed as results).
emitExpiredbooleanfalseIncremental mode: also return EXPIRED products after a complete scan only.
ignoreFieldsForChangesarray(none)Incremental mode: extra top-level fields excluded from change detection.
mcpConnectorsarray(none)Optional: send a summary of each product to apps authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which product pages are created.
maxNotifyListingsinteger50Cap on products written to each connector per run; does not affect the dataset.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"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"
}

Plan Requirement

A residential connection in Vietnam is required for this source, so your Apify plan must include residential proxy access. Datacenter connections do not work: the site refuses them at the connection layer, before any page is served, so the request gets no response at all (a direct connection and the Apify datacenter proxy both failed in our tests, while the Vietnam residential connection returned normal pages). The default setting, Apify Proxy with residential access in Vietnam, is therefore the only supported choice. If your plan has no proxy access the run ends as failed with the message "The proxy connection was refused for this account, so no page could be read. Your Apify plan does not include proxy access; a paid plan is required", and no paid pool is used as a fallback. A custom proxy URL you supply yourself is used as given. The run rotates to a fresh connection per request automatically. Pasting a single product link in url mode always reads that product's detail page to report its name, price and specifications, so it is charged the detail-enrichment surcharge on that one item even when Fetch product details is turned off.

FAQ

How much does it cost?

You pay a fixed run start fee, a per-product-result fee for every row in the dataset, and a detail-enrichment surcharge for every product whose detail page is read, whether that was triggered by Fetch product details, by Fetch customer reviews, or forced automatically for a single pasted product URL. With Fetch customer reviews on, the same detail-enrichment charge also applies once for every started block of 10 reviews delivered in the returned rows (for example 20 reviews is 2 extra units); reviews on rows that are not returned are never charged. The Pricing tab shows current rates. Since Fetch product details is on by default, most runs pay the surcharge for most items; turn it off for a lighter run that returns only listing fields.

This actor collects only publicly available product data. You are responsible for how you use it: follow the site's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Prices and specifications are generally facts, but product photos may be subject to third-party rights.

Why did my run return an empty dataset instead of failing?

A genuinely empty search finishes successfully with an empty dataset. A run that could not load any page at all does not: it ends as failed, with "Could not load any results page (the requests failed), so nothing was collected. This is a connection problem, not an empty search." (or the proxy-refused message described under Plan Requirement), so a failed run is never mistaken for zero results. A page that loads but whose product list the actor cannot read (for example after a site redesign) is also never silent: the log carries a warning for that link and the run ends with the status message "The pages loaded but their product list was not recognised, so no products were read. The site layout may have changed." Check the run's status message and log if you see any of these.

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.

🔗 Want more e-commerce data?

Pair this actor with these related scrapers from the same team:

🔌 Dienmayxanh Scraper
Scrape dienmayxanh.com home appliances and electronics with full specifications, current...
🛒 Myer Scraper
Scrape Myer (myer.com.au) department-store products: name, brand, price, was-price...
🔌 PB Tech Scraper
Scrape pbtech.co.nz products with full specifications, price, brand, condition, per-store...
🛒 Harvey Norman Scraper
Scrape Harvey Norman Australia products: name, brand, price, was-price / discount...
🛒 PcComponentes Scraper
Scrape PcComponentes (pccomponentes.com) products: current price plus strike-through...
🛒 druni.es
Scrape Druni beauty, cosmetics and perfume products. Search by keyword, category, Ofertas...

👉 Browse all abotapi scrapers

💬 Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.