Vietnam Business Directory Scraper — Company Registry Data avatar

Vietnam Business Directory Scraper — Company Registry Data

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Vietnam Business Directory Scraper — Company Registry Data

Vietnam Business Directory Scraper — Company Registry Data

Scrape Vietnam company directory data by province: company name, tax code (Mã số thuế), address, province, registration date, status and main industry. For B2B, lead-gen and market research. Independent tool, not affiliated with any registry.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

Vietnam Business Directory Scraper — Company Name, Tax Code (MST) & Address

Vietnam Companies Tax Code MST B2B & KYC Export

Extract Vietnamese company registry and business directory data at scale: registered company name, tax code (Mã số thuế / MST), registered office address, province/city, registration date, operating status, and main industry (with VSIC code). This Vietnam business scraper lets you scrape Vietnam companies across all 63 provinces, by company-name keyword, or via direct URLs and get clean, structured, de-duplicated records — with no login and no coding.

Export your Vietnam company database in bulk to JSON, CSV, Excel, or API for B2B lead generation, KYC verification, and market intelligence.

Built for B2B sales teams, lead-generation agencies, KYC / AML & due-diligence analysts, supply-chain sourcers, market researchers, and data engineering teams who need a reliable Vietnam business dataset keyed by tax code (MST). Independent tool, not affiliated with any government registry.


⚡ At a glance

FeatureDetails
CoverageAll 63 Vietnamese provinces & municipalities (Ha-Noi, TP-Ho-Chi-Minh, Da-Nang, Hai-Phong, Binh-Duong, Bac-Ninh, etc.) + free-text company keyword search
Core extracted fields11 fields: companyId, name, taxCode (MST), address, province, registrationDate, status, mainIndustry, mainIndustryCode (VSIC), detailUrl, scrapedAt
1,000+ deep paginationUnlimited /trang-{N}/ pagination (maxPages: 0 default, 20 companies/page) across thousands of pages per province + multi-province chaining
Speed & ModesFast list mode (~100 companies in <10s, datacenter proxy) + optional profile enrichment (includeDetails: true) for active status & VSIC industry code
De-duplicationStrict global de-duplication by taxCode (MST) — 0 duplicates across multi-province sweeps
Export formatsJSON, CSV, Excel (XLSX), HTML, XML, Apify REST API, KVS OUTPUT, Webhooks, Google Sheets, Make & Zapier

🔎 Why scrape Vietnam company directory data?

Vietnam is one of Southeast Asia's fastest-growing manufacturing, technology, and trade hubs, with hundreds of thousands of enterprises registered across Hanoi, Ho Chi Minh City, Da Nang, Binh Duong, Dong Nai, and Bac Ninh. Public business directories publish each enterprise's registered Vietnamese name, tax code (Mã số thuế / MST), registered address, province, license registration date, operating status, and registered business lines (VSIC) — but only 20 companies per page across tens of thousands of paginated HTML pages (Hanoi alone spans 16,000+ pages).

The Tax Code (Mã số thuế / MST) is the universal primary key for every Vietnamese legal entity. It is required for B2B invoicing (e-invoices / Hóa đơn điện tử), customs clearance, KYB/KYC onboarding, credit risk scoring, and CRM deduplication.

A Vietnam business data extractor turns those scattered directory pages into a structured, queryable database:

  • B2B lead generation & account mapping — build targeted prospect lists of Vietnamese enterprises by province, city, or registration date with authoritative tax codes and addresses.
  • KYB, KYC & compliance due diligence — verify whether a Vietnamese supplier, distributor, or counterparty exists, check its taxCode, confirm its registered office address, and verify whether its status is active (Đang hoạt động) or dissolved (Đã giải thể).
  • Manufacturing & supplier sourcing — filter Vietnamese factories and exporters by their official VSIC industry code (mainIndustryCode) and industrial province (Binh-Duong, Bac-Ninh, Dong-Nai, Hai-Phong).
  • New-company monitoring — schedule daily or weekly runs to capture newly incorporated Vietnamese companies sorted by registration date (registrationDate).
  • CRM & ERP master-data enrichment — append standardized tax codes, Vietnamese legal names, provinces, and VSIC sector codes to existing customer and vendor tables.

✨ What this Vietnam business scraper does

  • ✅ Three flexible targeting modes — scrape by province slugs (provinces), by company-name keyword (keyword), or by direct listing URLs (startUrls). Leave all three empty and the actor automatically sweeps 11 major Vietnamese commercial provinces!
  • ✅ Unlocked 1,000+ results deep pagination — maxPages defaults to 0 (auto/unlimited, governed by maxItems). The scraper walks /trang-2/, /trang-3/, ... up to thousands of pages per province (or ?trang=N for keyword searches) and chains across provinces until your maxItems target (100, 1,000, 10,000+) is reached.
  • ✅ Rich listing-card extraction in fast mode — even with includeDetails: false, every record includes companyId, name, taxCode (MST), address (when shown on the card), province, registrationDate, and detailUrl at ~20 companies per HTTP request.
  • ✅ Optional deep profile enrichment (includeDetails: true) — visits each company's detail page to extract operating status (Đang hoạt động, Tạm ngừng hoạt động, Đã giải thể), primary business line mainIndustry (Ngành chính), 4–5 digit VSIC industry code (mainIndustryCode), and 100% complete registered address.
  • ✅ Fast, lightweight & low-cost — runs over pure HTTP with standard Apify Datacenter proxies (no slow headless browser or costly residential proxy needed).
  • ✅ Run-sync OUTPUT key-value mirror — in addition to streaming every company into the default Dataset, the actor mirrors the result summary to the OUTPUT Key-Value Store key for instant synchronous API integrations.

🎯 Use cases

AudienceHow they use this Vietnam Business Scraper
B2B Sales & Outbound TeamsExport 1,000+ newly registered enterprises in Hanoi (Ha-Noi) and Ho Chi Minh City (TP-Ho-Chi-Minh) to fuel localized B2B outreach.
KYB / AML Compliance OfficersValidate counterparty taxCode (MST), legal name, registration date, and active operating status during vendor onboarding.
Global Procurement & Supply ChainIdentify Vietnamese manufacturers in key industrial corridors (Binh-Duong, Bac-Ninh, Hai-Phong) filtered by VSIC manufacturing codes.
Market Intelligence & ConsultanciesAnalyze business formation velocity, regional enterprise density, and sector distribution across Vietnam's 63 provinces.
Fintech, Trade Finance & InsurtechEnrich SME loan or trade-credit applications with official registration dates, provinces, and VSIC industry classifications.
Data Vendors & B2B PlatformsMaintain an evergreen, de-duplicated Vietnam company registry feed via scheduled Apify API runs.

📥 Input parameters

Configure the run in the Apify Console or via JSON API payload. No field is required — running with the default prefill extracts 100 Vietnamese companies from Hanoi and Ho Chi Minh City in seconds.

ParameterTypeDefault / PrefillDescription
provincesarray["Ha-Noi", "TP-Ho-Chi-Minh"]Vietnam province slugs to scrape and paginate (e.g. Ha-Noi, TP-Ho-Chi-Minh, Da-Nang, Hai-Phong, Can-Tho, Bac-Ninh, Binh-Duong, Dong-Nai). If left empty (with no keyword/URLs), defaults to 11 major provinces.
keywordstring""Optional free-text keyword to search companies by name or trade term (e.g. "logistics", "cà phê", "xây dựng").
startUrlsarray[]Optional direct province or search listing URLs.
includeDetailsbooleanfalse (prefill: false)Fetch each company's detail page for operating status, mainIndustry, mainIndustryCode (VSIC), and fallback full address. Keep false for ultra-fast list scraping.
maxItemsinteger100 (prefill: 100)Maximum number of companies to collect across all provinces/queries (0 = unlimited). Supports 1,000+ bulk runs.
maxPagesinteger0 (Auto/Unlimited)Maximum result pages to walk per province (20 companies/page). 0 = auto/unlimited governed by maxItems.
proxyConfigurationobject{ "useApifyProxy": true }Apify Proxy configuration. Standard Datacenter proxy is sufficient and enabled by default.

Supported Vietnam Province Slugs (Examples)

  • Northern Vietnam: Ha-Noi, Hai-Phong, Bac-Ninh, Quang-Ninh, Hai-Duong, Vinh-Phuc, Hung-Yen, Thai-Nguyen, Nam-Dinh
  • Central Vietnam: Da-Nang, Thanh-Hoa, Nghe-An, Thua-Thien-Hue, Khanh-Hoa, Binh-Dinh, Quang-Nam
  • Southern Vietnam: TP-Ho-Chi-Minh, Binh-Duong, Dong-Nai, Ba-Ria-Vung-Tau, Long-An, Can-Tho, Tien-Giang, Tay-Ninh

Example 1 — Fast 100-Company Hanoi & HCMC List Scrape (Prefill)

{
"provinces": ["Ha-Noi", "TP-Ho-Chi-Minh"],
"includeDetails": false,
"maxItems": 100,
"maxPages": 0,
"proxyConfiguration": { "useApifyProxy": true }
}

Example 2 — 1,500+ Companies Across Major Industrial Provinces

{
"provinces": ["Ha-Noi", "TP-Ho-Chi-Minh", "Binh-Duong", "Dong-Nai", "Bac-Ninh", "Hai-Phong", "Da-Nang"],
"includeDetails": false,
"maxItems": 1500,
"maxPages": 0,
"proxyConfiguration": { "useApifyProxy": true }
}

Example 3 — Deep KYB Enrichment (Active Status + VSIC Industry Code + Full Address)

{
"provinces": ["Ha-Noi", "TP-Ho-Chi-Minh"],
"keyword": "thương mại",
"includeDetails": true,
"maxItems": 200,
"maxPages": 0,
"proxyConfiguration": { "useApifyProxy": true }
}

📤 Output format & field reference

Each Vietnamese company is returned as a structured JSON object.

🏢 Core Company Identity & Registry Fields (Always Populated)

FieldCoverageDescription
companyId🟢 High (100%)Unique directory numeric identifier extracted from the company profile URL (e.g. "38123").
name🟢 High (100%)Full registered Vietnamese legal company name (e.g. "CÔNG TY CỔ PHẦN DỊCH VỤ VÀ SẢN XUẤT NGUYỄN ĐỨC MINH").
taxCode🟢 High (100%)Mã số thuế (MST) — 10-digit (or 13-digit branch) official Vietnamese business tax code (e.g. "0111138123").
province🟢 High (100%)Registered province or municipality in Vietnamese (e.g. "Hà Nội", "TP Hồ Chí Minh", "Đà Nẵng").
registrationDate🟢 High (100%)Official license registration / incorporation date in DD/MM/YYYY format (e.g. "23/07/2025").
address🟢 High (~85% list / 100% detail)Registered office street, ward, district, and city address (Địa chỉ). Populated on most listing cards and filled to 100% when includeDetails: true.
detailUrl🟢 High (100%)Canonical URL to the company's full profile page.
scrapedAt🟢 High (100%)ISO 8601 timestamp when the company record was extracted.

🔍 Detail Enrichment Fields (includeDetails: true)

FieldCoverageDescription
status🟡 Conditional (Detail ~98%)Official operating status (e.g. "Đang hoạt động" = Active, "Tạm ngừng hoạt động" = Temporarily suspended, "Đã giải thể" = Dissolved).
mainIndustry🟡 Conditional (Detail ~97%)Primary registered business activity description (Ngành nghề kinh doanh chính, e.g. "Sản xuất cà phê").
mainIndustryCode🟡 Conditional (Detail ~97%)Official VSIC (Vietnam Standard Industrial Classification) code for the primary industry (e.g. "1077", "4520").

Sample JSON output

{
"companyId": "38123",
"name": "CÔNG TY CỔ PHẦN DỊCH VỤ VÀ SẢN XUẤT NGUYỄN ĐỨC MINH",
"taxCode": "0111138123",
"address": "Khu lò gạch số 2, Thôn Phúc Am, Xã Hồng Vân, Hà Nội",
"province": "Hà Nội",
"registrationDate": "23/07/2025",
"detailUrl": "https://infodoanhnghiep.com/thong-tin/Cong-Ty-Co-Phan-Dich-Vu-Va-San-Xuat-Nguyen-Duc-Minh-38123.html",
"status": "Đang hoạt động",
"mainIndustry": "Sản xuất cà phê",
"mainIndustryCode": "1077",
"scrapedAt": "2026-11-02T01:27:04.991Z"
}

🔁 Pagination & 1,000+ scale

  • Deep /trang-{N}/ pagination (maxPages: 0): Each province directory contains thousands of pages at 20 companies per page (e.g. Ha-Noi/trang-2/, Ha-Noi/trang-3/, ...). With maxPages: 0 (the default), the scraper automatically walks page after page without any artificial 10-page or 50-page ceiling until maxItems is satisfied.
  • Multi-province chaining: Pass multiple provinces in provinces (or leave provinces empty to use the built-in 11-province commercial list). Once one target or province finishes, the scraper seamlessly moves to the next while maintaining a global seen set keyed by taxCode.
  • Choosing between List Mode and Detail Mode at scale:
    • List Mode (includeDetails: false): Fetches 20 companies per single HTTP request. Extracting 1,000 companies takes only ~50 HTTP requests (~30–60 seconds) and costs pennies.
    • Detail Mode (includeDetails: true): Fetches 1 extra profile request per company (6x concurrent workers) to add status, mainIndustry, mainIndustryCode (VSIC), and 100% address fill (~3 minutes per 500 companies).

⚙️ How to use

  1. Select target provinces or keyword: Enter Vietnamese province slugs (Ha-Noi, TP-Ho-Chi-Minh, Da-Nang, etc.) or a keyword.
  2. Set maxItems and includeDetails: Choose includeDetails: false for a rapid tax-code & address sweep, or includeDetails: true to include operating status and VSIC industry codes.
  3. Run & export: Click Start and download the dataset in JSON, CSV, Excel (XLSX), or HTML, or fetch it via the Apify API.

Python API example

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/vietnam-business-scraper").call(run_input={
"provinces": ["Ha-Noi", "TP-Ho-Chi-Minh", "Da-Nang"],
"includeDetails": False,
"maxItems": 500,
"maxPages": 0,
})
for company in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{company['taxCode']} | {company['name']} | {company['province']} | {company['registrationDate']}")

JavaScript / TypeScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/vietnam-business-scraper').call({
provinces: ['Ha-Noi', 'Binh-Duong'],
includeDetails: true,
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} Vietnamese companies`);

cURL REST API example

curl -X POST "https://api.apify.com/v2/acts/haketa~vietnam-business-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"provinces": ["Ha-Noi", "TP-Ho-Chi-Minh"],
"includeDetails": false,
"maxItems": 100,
"maxPages": 0
}'

🗺️ Vietnam Province Slugs & Economic Zones Reference

You can pass any of Vietnam's 63 provinces and Centrally Controlled Municipalities in provinces:

Economic RegionProvince / Municipality SlugVietnamese NameKey B2B & Industrial Sectors
Red River Delta (North)Ha-NoiHà NộiCorporate HQ, Finance, IT, Government, Retail
Red River Delta (North)Hai-PhongHải PhòngDeep-water Port, Maritime Logistics, Automotive, Electronics
Red River Delta (North)Bac-NinhBắc NinhElectronics Manufacturing, Semiconductors, High-Tech Parks
Northeast & CoastQuang-NinhQuảng NinhEnergy, Mining, Cross-Border Trade, Tourism
North Central CoastThanh-Hoa / Nghe-AnThanh Hóa / Nghệ AnHeavy Industry, Petrochemicals, Agriculture, Construction
Central Key Economic ZoneDa-NangĐà NẵngCentral Vietnam Commercial Hub, Software Outsourcing, Logistics
Southeast Industrial BeltTP-Ho-Chi-MinhTP Hồ Chí MinhCommercial Capital, Finance, Trade, E-Commerce, Services
Southeast Industrial BeltBinh-DuongBình DươngIndustrial Parks (VSIP), Furniture, Textiles, Footwear, Packaging
Southeast Industrial BeltDong-NaiĐồng NaiManufacturing, Machinery, Chemicals, Long Thanh Airport Corridor
Mekong Delta (South)Can-Tho / Long-AnCần Thơ / Long AnAgribusiness, Seafood Processing, Rice Export, Cold Chain

🏭 Common VSIC Industry Codes (mainIndustryCode) & Operating Statuses

When you enable includeDetails: true, each record includes status and mainIndustryCode (Vietnam Standard Industrial Classification):

Operating Status Values (status)

Vietnamese Status StringEnglish MeaningKYB / Sales Action
Đang hoạt độngActive / OperatingReady for B2B outreach, vendor onboarding, and invoicing
Tạm ngừng hoạt độngTemporarily SuspendedHold onboarding; verify resumption date
Đã giải thểDissolved / ClosedExclude from active sales lists; flag in KYB review
Đang làm thủ tục giải thểIn Dissolution ProcessHigh compliance risk; do not onboard
Ngừng hoạt độngInactive / CeasedExclude from active outreach
VSIC Code PrefixSector / Industry Group
10xx – 33xxManufacturing (Food processing 1077, Textiles 13xx, Electronics 26xx, Furniture 31xx)
41xx – 43xxConstruction & Civil Engineering (Building construction 4100, Electrical/plumbing installation 432x)
45xx – 47xxWholesale & Retail Trade (Automotive 45xx, B2B wholesale 46xx, Retail 47xx)
49xx – 53xxTransportation, Warehousing & Logistics (Freight road transport 4933, Warehousing 5210, Freight forwarding 5229)
62xx – 63xxInformation Technology & Software (Computer programming 6201, IT consulting 6202, Data processing 6311)
68xxReal Estate Activities (Real estate development & brokerage 6810, 6820)

📊 Downstream Analytics & KYB Screening Recipe (Python)

import pandas as pd
df = pd.read_json("vietnam_companies.json")
# Filter only active companies in Hanoi and HCMC
active_df = df[df["status"].isin(["", "Đang hoạt động"])]
print(f"Total active enterprises: {len(active_df)}")
print(active_df[["taxCode", "name", "province", "registrationDate", "mainIndustryCode"]].head(10))

💡 Pro tips for best results

  • Use hyphenated province slugs: Pass Ha-Noi, TP-Ho-Chi-Minh, Da-Nang, Hai-Phong, Binh-Duong, Bac-Ninh (or plain names like "Ha Noi" — the scraper automatically normalizes spaces to hyphens).
  • Segment by VSIC code (mainIndustryCode): Vietnamese industry descriptions are in Vietnamese, but the 4-digit VSIC code (mainIndustryCode) aligns with international ISIC standards — making it easy to filter manufacturing, IT, construction, or wholesale trade in Excel or SQL regardless of language.
  • Fastest 5,000+ company export: Run with includeDetails: false, maxItems: 5000, and maxPages: 0 first to collect all tax codes, company names, registration dates, and addresses in a couple of minutes.

❓ Frequently Asked Questions (FAQ)

How many Vietnamese companies can I scrape in one run? You can extract 100, 1,000, or 10,000+ companies in a single run. With maxPages: 0 (the default), pagination continues across /trang-{N}/ pages and provinces until maxItems is reached.

Do I need residential proxies or a browser? No! The scraper uses lightweight HTTP requests over standard Apify Datacenter proxies (enabled by default), keeping your compute and proxy costs minimal.

What is taxCode (Mã số thuế / MST)? taxCode is the official 10-digit enterprise tax identification number (or 13-digit branch number) issued to every registered business in Vietnam. It is the primary key used for KYB verification, e-invoicing, and B2B database matching.

Why are status and mainIndustry empty when includeDetails is false? Those two fields (along with mainIndustryCode) only appear on individual company profile pages. Set includeDetails: true whenever you need operating status and VSIC industry classification.

Are phone numbers or email addresses included? No — the public registry cards and profile pages provide legal company name, tax code (MST), registered office address, province, registration date, operating status, and VSIC industry, but do not publish personal phone numbers or emails.

Can I search for specific types of companies by keyword? Yes — enter any Vietnamese or English company-name keyword in keyword (for example "logistics", "xây dựng", "dược phẩm", "công nghệ"). You can also combine keyword with provinces in the same run.

How does de-duplication work across provinces and keywords? Every extracted enterprise is de-duplicated globally using its official 10/13-digit taxCode (falling back to companyId or detailUrl), ensuring 0 duplicates even when a company appears in both a province listing and a keyword search.


⚠️ Known Directory Nuances & Limitations

  • Public registry fields only: This scraper extracts the authoritative corporate registry fields published on the directory (companyId, name, taxCode, address, province, registrationDate, status, mainIndustry, mainIndustryCode, detailUrl). Executive phone numbers or personal emails are not part of this public dataset.
  • Listing card vs. Detail page fields: In fast list mode (includeDetails: false), status, mainIndustry, and mainIndustryCode are empty (""), and address is populated for ~85% of cards. Enable includeDetails: true whenever you require 100% address coverage plus operating status and VSIC industry codes.
  • Vietnamese diacritics in output: Company names (name), addresses (address), provinces (province), and industries (mainIndustry) are returned in original UTF-8 Vietnamese text as registered.

Responsible Use & Disclaimer

This Actor collects publicly available business directory records for legitimate B2B research, KYB/compliance verification, and market analysis. Users are responsible for complying with applicable laws and website terms. This project is an independent tool and is not affiliated with, endorsed by, or sponsored by any government agency or business registry.


Explore other business directory and B2B lead-generation actors from the same publisher:


📋 Changelog

  • v1.2 (2026-11) — Unlocked unlimited /trang-{N}/ deep pagination by changing maxPages default/prefill to 0 (auto/unlimited governed by maxItems); added automatic 11-province fallback when no input filter is provided; set includeDetails prefill to false for <25s prefill runs; synced exampleRunInput.
  • v1.1 (2026-11) — Added mainIndustryCode (VSIC) extraction and detail-page address fallback; verified 500-company run with 0 duplicates.
  • v1.0 (2026-09) — Initial release supporting province pagination, keyword search, start URLs, and optional detail enrichment.