Vietnam Business Directory Scraper — Company Registry Data
Pricing
from $2.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Features
Share
Vietnam Business Directory Scraper — Company Name, Tax Code (MST) & Address
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
| Feature | Details |
|---|---|
| Coverage | All 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 fields | 11 fields: companyId, name, taxCode (MST), address, province, registrationDate, status, mainIndustry, mainIndustryCode (VSIC), detailUrl, scrapedAt |
| 1,000+ deep pagination | Unlimited /trang-{N}/ pagination (maxPages: 0 default, 20 companies/page) across thousands of pages per province + multi-province chaining |
| Speed & Modes | Fast list mode (~100 companies in <10s, datacenter proxy) + optional profile enrichment (includeDetails: true) for active status & VSIC industry code |
| De-duplication | Strict global de-duplication by taxCode (MST) — 0 duplicates across multi-province sweeps |
| Export formats | JSON, 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 officeaddress, and verify whether itsstatusis 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 —
maxPagesdefaults to0(auto/unlimited, governed bymaxItems). The scraper walks/trang-2/,/trang-3/, ... up to thousands of pages per province (or?trang=Nfor keyword searches) and chains across provinces until yourmaxItemstarget (100,1,000,10,000+) is reached. - ✅ Rich listing-card extraction in fast mode — even with
includeDetails: false, every record includescompanyId,name,taxCode(MST),address(when shown on the card),province,registrationDate, anddetailUrlat ~20 companies per HTTP request. - ✅ Optional deep profile enrichment (
includeDetails: true) — visits each company's detail page to extract operatingstatus(Đang hoạt động,Tạm ngừng hoạt động,Đã giải thể), primary business linemainIndustry(Ngành chính), 4–5 digit VSIC industry code (mainIndustryCode), and 100% complete registeredaddress. - ✅ Fast, lightweight & low-cost — runs over pure HTTP with standard Apify Datacenter proxies (no slow headless browser or costly residential proxy needed).
- ✅ Run-sync
OUTPUTkey-value mirror — in addition to streaming every company into the default Dataset, the actor mirrors the result summary to theOUTPUTKey-Value Store key for instant synchronous API integrations.
🎯 Use cases
| Audience | How they use this Vietnam Business Scraper |
|---|---|
| B2B Sales & Outbound Teams | Export 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 Officers | Validate counterparty taxCode (MST), legal name, registration date, and active operating status during vendor onboarding. |
| Global Procurement & Supply Chain | Identify Vietnamese manufacturers in key industrial corridors (Binh-Duong, Bac-Ninh, Hai-Phong) filtered by VSIC manufacturing codes. |
| Market Intelligence & Consultancies | Analyze business formation velocity, regional enterprise density, and sector distribution across Vietnam's 63 provinces. |
| Fintech, Trade Finance & Insurtech | Enrich SME loan or trade-credit applications with official registration dates, provinces, and VSIC industry classifications. |
| Data Vendors & B2B Platforms | Maintain 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.
| Parameter | Type | Default / Prefill | Description |
|---|---|---|---|
provinces | array | ["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. |
keyword | string | "" | Optional free-text keyword to search companies by name or trade term (e.g. "logistics", "cà phê", "xây dựng"). |
startUrls | array | [] | Optional direct province or search listing URLs. |
includeDetails | boolean | false (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. |
maxItems | integer | 100 (prefill: 100) | Maximum number of companies to collect across all provinces/queries (0 = unlimited). Supports 1,000+ bulk runs. |
maxPages | integer | 0 (Auto/Unlimited) | Maximum result pages to walk per province (20 companies/page). 0 = auto/unlimited governed by maxItems. |
proxyConfiguration | object | { "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)
| Field | Coverage | Description |
|---|---|---|
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)
| Field | Coverage | Description |
|---|---|---|
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/, ...). WithmaxPages: 0(the default), the scraper automatically walks page after page without any artificial 10-page or 50-page ceiling untilmaxItemsis satisfied. - Multi-province chaining: Pass multiple provinces in
provinces(or leaveprovincesempty 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 globalseenset keyed bytaxCode. - 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 addstatus,mainIndustry,mainIndustryCode(VSIC), and 100%addressfill (~3 minutes per 500 companies).
- List Mode (
⚙️ How to use
- Select target provinces or keyword: Enter Vietnamese province slugs (
Ha-Noi,TP-Ho-Chi-Minh,Da-Nang, etc.) or akeyword. - Set
maxItemsandincludeDetails: ChooseincludeDetails: falsefor a rapid tax-code & address sweep, orincludeDetails: trueto include operating status and VSIC industry codes. - 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 ApifyClientclient = 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 Region | Province / Municipality Slug | Vietnamese Name | Key B2B & Industrial Sectors |
|---|---|---|---|
| Red River Delta (North) | Ha-Noi | Hà Nội | Corporate HQ, Finance, IT, Government, Retail |
| Red River Delta (North) | Hai-Phong | Hải Phòng | Deep-water Port, Maritime Logistics, Automotive, Electronics |
| Red River Delta (North) | Bac-Ninh | Bắc Ninh | Electronics Manufacturing, Semiconductors, High-Tech Parks |
| Northeast & Coast | Quang-Ninh | Quảng Ninh | Energy, Mining, Cross-Border Trade, Tourism |
| North Central Coast | Thanh-Hoa / Nghe-An | Thanh Hóa / Nghệ An | Heavy Industry, Petrochemicals, Agriculture, Construction |
| Central Key Economic Zone | Da-Nang | Đà Nẵng | Central Vietnam Commercial Hub, Software Outsourcing, Logistics |
| Southeast Industrial Belt | TP-Ho-Chi-Minh | TP Hồ Chí Minh | Commercial Capital, Finance, Trade, E-Commerce, Services |
| Southeast Industrial Belt | Binh-Duong | Bình Dương | Industrial Parks (VSIP), Furniture, Textiles, Footwear, Packaging |
| Southeast Industrial Belt | Dong-Nai | Đồng Nai | Manufacturing, Machinery, Chemicals, Long Thanh Airport Corridor |
| Mekong Delta (South) | Can-Tho / Long-An | Cần Thơ / Long An | Agribusiness, 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 String | English Meaning | KYB / Sales Action |
|---|---|---|
Đang hoạt động | Active / Operating | Ready for B2B outreach, vendor onboarding, and invoicing |
Tạm ngừng hoạt động | Temporarily Suspended | Hold onboarding; verify resumption date |
Đã giải thể | Dissolved / Closed | Exclude from active sales lists; flag in KYB review |
Đang làm thủ tục giải thể | In Dissolution Process | High compliance risk; do not onboard |
Ngừng hoạt động | Inactive / Ceased | Exclude from active outreach |
Popular VSIC Sector Prefixes (mainIndustryCode)
| VSIC Code Prefix | Sector / Industry Group |
|---|---|
10xx – 33xx | Manufacturing (Food processing 1077, Textiles 13xx, Electronics 26xx, Furniture 31xx) |
41xx – 43xx | Construction & Civil Engineering (Building construction 4100, Electrical/plumbing installation 432x) |
45xx – 47xx | Wholesale & Retail Trade (Automotive 45xx, B2B wholesale 46xx, Retail 47xx) |
49xx – 53xx | Transportation, Warehousing & Logistics (Freight road transport 4933, Warehousing 5210, Freight forwarding 5229) |
62xx – 63xx | Information Technology & Software (Computer programming 6201, IT consulting 6202, Data processing 6311) |
68xx | Real Estate Activities (Real estate development & brokerage 6810, 6820) |
📊 Downstream Analytics & KYB Screening Recipe (Python)
import pandas as pddf = pd.read_json("vietnam_companies.json")# Filter only active companies in Hanoi and HCMCactive_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, andmaxPages: 0first 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, andmainIndustryCodeare empty (""), andaddressis populated for ~85% of cards. EnableincludeDetails: truewhenever you require 100%addresscoverage 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.
🔗 Related B2B & Company Registry Scrapers
Explore other business directory and B2B lead-generation actors from the same publisher:
- D&B Company Data Scraper — Dun & Bradstreet business profiles, revenue, employees, and firmographics.
- BBB Business Scraper — Better Business Bureau accredited company listings, ratings, and contacts.
- GLEIF LEI Lookup — global Legal Entity Identifier registry lookup and corporate ownership data.
- Kakao Map Scraper — South Korean business listings, addresses, phone numbers, and ratings.
- YouTube Contact Scraper — creator and business channel emails, social links, and subscriber metrics.
📋 Changelog
- v1.2 (2026-11) — Unlocked unlimited
/trang-{N}/deep pagination by changingmaxPagesdefault/prefill to0(auto/unlimited governed bymaxItems); added automatic 11-province fallback when no input filter is provided; setincludeDetailsprefill tofalsefor<25sprefill runs; syncedexampleRunInput. - v1.1 (2026-11) — Added
mainIndustryCode(VSIC) extraction and detail-pageaddressfallback; verified 500-company run with 0 duplicates. - v1.0 (2026-09) — Initial release supporting province pagination, keyword search, start URLs, and optional detail enrichment.