Chotot & Nhatot Scraper — Vietnam Classifieds & Property avatar

Chotot & Nhatot Scraper — Vietnam Classifieds & Property

Pricing

from $9.61 / 1,000 listing returneds

Go to Apify Store
Chotot & Nhatot Scraper — Vietnam Classifieds & Property

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

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Features

Limited permissions

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.

FieldWhat it contains
listingId, listingUrlChợ Tốt listing ID and the public listing page
title, descriptionListing headline and public body text
priceAmount, priceText, currencyPrice as a number, the displayed text (for example 2,5 tỷ), and VND when a price is set
categoryCategory label such as Nhà đất or Điện thoại
attributesFlat key-value fields from the listing, for example area, bedrooms, model or storage
location, latitude, longitudeWard, district and province text plus coordinates when published
sellerName, sellerTypePublic seller label and business or private_or_unknown
postedAtPosting time exactly as displayed, for example 4 giờ trước (4 hours ago)
imageUrlsUp to 20 image URLs
sourceSearchUrl, scrapedAt, detailsFetched, warningsSearch 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.

InputDefaultBounds 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
maxResults501–500 listings returned and billed across all URLs
maxPages11–20 result pages per URL
enrichDetailsfalseOpens 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 listingId values 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.

EventFreeBronzeSilverGold, Platinum, Diamond
Listing returned (per listing)USD 0.012011USD 0.011710USD 0.011410USD 0.009608
Actor start (per run)USD 0.006735USD 0.006566USD 0.006398USD 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 os
from apify_client import ApifyClient
client = 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().items
print(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.

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