Chotot & Nhatot Scraper — Vietnam Classifieds & Property
Pricing
from $9.61 / 1,000 listing returneds
Chotot & Nhatot Scraper — Vietnam Classifieds & Property
Scrape Chotot.com and Nhatot.com search pages into listings with VND price, category, location, seller, images and attributes. About USD 12 per 1,000.
Pricing
from $9.61 / 1,000 listing returneds
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Features
Share
Chotot & Nhatot Scraper turns public Chợ Tốt search pages from Chotot.com, Nhatot.com and Xe.Chotot.com into structured listings: title, price in VND, category, location with coordinates, seller label, posting time, images and listing attributes such as area or bedrooms. It is built for Vietnam property researchers, vehicle and electronics resellers, and market analysts, and it costs about USD 12.01 per 1,000 listings on the Free tier.
You paste the search pages you already use in the browser, and the Actor returns one row per listing, ready for a spreadsheet, database or API.
What data does the Chotot scraper return?
Each dataset row is one unique public listing, read from the data Chợ Tốt embeds in its search pages.
| Field | What it contains |
|---|---|
listingId, listingUrl | Chợ Tốt listing ID and the public listing page |
title, description | Listing headline and public body text |
priceAmount, priceText, currency | Price as a number, the displayed text (for example 2,5 tỷ), and VND when a price is set |
category | Category label such as Nhà đất or Điện thoại |
attributes | Flat key-value fields from the listing, for example area, bedrooms, model or storage |
location, latitude, longitude | Ward, district and province text plus coordinates when published |
sellerName, sellerType | Public seller label and business or private_or_unknown |
postedAt | Posting time exactly as displayed, for example 4 giờ trước (4 hours ago) |
imageUrls | Up to 20 image URLs |
sourceSearchUrl, scrapedAt, detailsFetched, warnings | Search page that produced the row, UTC time, whether the detail page was opened, and notes |
Fields the page does not publish are null. Relative dates are kept as shown rather than converted to an invented timestamp. A RUN_SUMMARY record in the run's key-value store reports the outcome (data, empty or blocked), the record count and warnings.
How do I scrape Chotot or Nhatot listings?
Open Chợ Tốt in your browser, apply the filters you want, and paste the resulting search URLs into startUrls. Keyword searches and category pages both work.
| Input | Default | Bounds and notes |
|---|---|---|
startUrls | ["https://www.chotot.com/mua-ban?q=iphone"] | Public search pages on chotot.com, nhatot.com or xe.chotot.com; other hosts are ignored |
maxResults | 50 | 1–500 listings returned and billed across all URLs |
maxPages | 1 | 1–20 result pages per URL |
enrichDetails | false | Opens each listing page for the detail-page version of the same fields |
Property for sale on Nhatot plus an electronics search, first two pages each:
{"startUrls": ["https://www.nhatot.com/mua-ban-nha-dat","https://www.chotot.com/mua-ban?q=iphone"],"maxResults": 100,"maxPages": 2,"enrichDetails": false}
If no URL is valid, the run stops with a Rejected status message and charges nothing for listings.
Output example
[{"listingId": "179693183","title": "Apple iPhone","priceAmount": 500000,"priceText": "500.000 đ","currency": "VND","category": "Điện thoại","location": "Phường Bình Cơ, Thị xã Tân Uyên, TP Hồ Chí Minh","latitude": 11.100571,"longitude": 106.76707,"sellerName": "Seller name","sellerType": "business","postedAt": "4 giờ trước","listingUrl": "https://www.chotot.com/mua-ban/179693183.htm","attributes": { "Dòng máy": "Dòng khác" },"detailsFetched": false},{"listingId": "173277969","title": "iPhone 7","priceAmount": 699000,"priceText": "699.000 đ","currency": "VND","category": "Điện thoại","location": "Phường Hà Đông, Quận Hà Đông, TP Hà Nội","sellerType": "business","postedAt": "6 giờ trước","listingUrl": "https://www.chotot.com/mua-ban/173277969.htm","attributes": { "Dòng máy": "iPhone 7", "Dung lượng": "32 GB" },"detailsFetched": false}]
These rows are truncated from the default run on 2026-10-26 (run vhCb0j9oXmWE2Jp2w, 5 listings in about 9 seconds); seller names are replaced with a placeholder here.
When should I use this Chợ Tốt scraper?
Use it to:
- Track Vietnamese property prices, areas and districts from Nhatot search pages.
- Monitor used phone, electronics or vehicle prices across provinces.
- Schedule the same search URLs and compare
listingIdvalues to spot new listings.
Do not use it for:
- Seller phone numbers or chat messages: they are not returned.
- Job listings on other Chợ Tốt domains: only chotot.com, nhatot.com and xe.chotot.com pages are accepted.
- UAE classifieds: use Dubizzle Scraper.
- Accounts, saved searches or anything behind a login.
How much does it cost to scrape Chotot?
You pay per listing delivered plus one start fee per run. Platform usage is included.
| Event | Free | Bronze | Silver | Gold, Platinum, Diamond |
|---|---|---|---|---|
| Listing returned (per listing) | USD 0.012011 | USD 0.011710 | USD 0.011410 | USD 0.009608 |
| Actor start (per run) | USD 0.006735 | USD 0.006566 | USD 0.006398 | USD 0.005388 |
The start fee is charged once per started GB of allocated memory; the default 512 MB run pays one.
Worked totals on the Free tier:
- 5 listings: USD 0.006735 + 5 × USD 0.012011 = about USD 0.067.
- 100 listings: USD 0.006735 + 100 × USD 0.012011 = about USD 1.21.
A listing is charged only after its row is saved, and each listing URL is saved and charged once per run. When your maximum total charge is reached, the Actor stops saving new rows.
How reliable is it, and how long does a run take?
Search-page runs are fast: the default 5-listing run took about 9 seconds. The Actor reads at most 20 pages per minute with two parallel requests and bounded retries. With enrichDetails on, every listing costs one extra page, so the default 5-minute timeout fits roughly 90 detail pages; raise the timeout for larger enriched runs.
If Chợ Tốt returns a protection page, the run reports blocked with zero rows and no listing charges. A valid search with no matches reports empty. Chợ Tốt can change its page data or URL formats at any time, so check RUN_SUMMARY.warnings before large scheduled jobs.
Use it from an AI assistant
Chotot & Nhatot Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single tool URL https://mcp.apify.com/?tools=muhammadafzal/chotot-com-scraper to your client, then ask, for example: "Get the first 50 listings from https://www.nhatot.com/mua-ban-nha-dat and summarize the median price by province."
Run it with the Apify API
JavaScript (apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/chotot-com-scraper').call({startUrls: ['https://www.chotot.com/mua-ban?q=iphone'],maxResults: 5,maxPages: 1,enrichDetails: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python (apify-client 3.x):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("muhammadafzal/chotot-com-scraper").call(run_input={"startUrls": ["https://www.nhatot.com/mua-ban-nha-dat"],"maxResults": 50,"maxPages": 2,})items = client.dataset(run.default_dataset_id).list_items().itemsprint(items)
Export the dataset as CSV, Excel or JSON from Apify, or send it to a webhook or integration when the run finishes.
FAQ
Can I scrape Chotot phone numbers?
No. The Actor returns only what the public search and listing pages expose without interaction. Seller phone numbers are not included.
Does it work for Nhatot property listings?
Yes. Paste Nhatot search or category pages such as https://www.nhatot.com/mua-ban-nha-dat. Property attributes such as area and bedrooms appear in attributes when the listing publishes them.
How many listings can I get per run?
Up to 500 across all URLs, with up to 20 result pages per URL. maxResults is also your billing cap.
What does postedAt contain?
The posting time as Chợ Tốt displays it, often relative text such as 20 giờ trước. It is not converted to a date, so you are never given an invented timestamp.
Do I need a Chợ Tốt account?
No. The Actor reads public pages only and does not use logins, cookies or private sessions.
Will I be charged when a page is blocked?
Only the start fee. Listing events are charged only for rows that were saved.
Related Actors
- Dubizzle Scraper: UAE property, used cars and broker profiles.
- Wildberries Scraper: Russian marketplace product prices and stock.
- Gumtree Scraper: classifieds in Australia, the UK, New Zealand and South Africa.
- Craigslist Scraper: US classifieds listings and prices.
Legal and data use
Collect only public data, for a lawful purpose, and in line with the Chợ Tốt, Nhatot and Xe Chợ Tốt terms, privacy obligations and Vietnamese or other applicable law. Do not use the output to spam sellers, discriminate in housing, or evade platform controls. This Actor does not bypass CAPTCHAs, logins or other access controls, and it is not affiliated with Chợ Tốt.
Last verified: 2026-10-27