Taiwan Company Registry & KYB Lookup: UBN, Supplier Search avatar

Taiwan Company Registry & KYB Lookup: UBN, Supplier Search

Pricing

from $2.00 / 1,000 business records

Go to Apify Store
Taiwan Company Registry & KYB Lookup: UBN, Supplier Search

Taiwan Company Registry & KYB Lookup: UBN, Supplier Search

Taiwan company registry KYB: bulk-verify 10,000 統一編號 (UBN) per run, find export-qualified manufacturers & suppliers. Official MOF + trade open data, English, daily. From $0.002/company.

Pricing

from $2.00 / 1,000 business records

Rating

0.0

(0)

Developer

Stanley Chiang

Stanley Chiang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

Taiwan Company Registry & KYB Lookup: Bulk UBN (統一編號) Check and Supplier Search

Verify up to 10,000 Taiwan companies per run for about $20–40, against roughly €25 for one Taiwan KYC report. Built for KYB and compliance analysts, sourcing managers and data teams, using official Taiwan government open data in English and refreshed daily.

  • KYB and compliance analysts: bulk 統一編號 / UBN lookup gives checksum validity, active tax registration, official English name and address (for registered importers/exporters), industry, and import/export qualification. Invalid and not-found numbers are free.
  • Sourcing and procurement managers: find export-qualified Taiwan manufacturers and suppliers by industry, city, capital and founding date, e.g. "IC manufacturers in Hsinchu that can export" (50 records ≈ $0.21).
  • Data and RevOps developers: JSON/CSV/API output, incremental runs (new or changed companies only), and market-size counts for $0.02 per report. No scraping, no login, 1.7M active businesses.

Pricing: $0.002 per registry record, $0.004 per trade-enriched record, $0.005 per run. Unofficial; data from the Ministry of Finance and the International Trade Administration (MOEA) under the Open Government Data License v1.0.

OptionWhat you getCost
This ActorBulk: up to 10,000 UBNs per run, English names, export flags, filters, CSV/JSON/API$0.002–0.004 per company + $0.005 per run
FindBiz (MOEA company registry)One company at a time in the web UI, no export flagFree, manual
TaiwantradeSupplier profiles that companies chose to publish (70k+)Free, manual
KYC report vendorsAnalyst report per companye.g. INFOPROFF Taiwan KYC report €25.20; D&B Taiwan report NT$9,450

Competitor prices as published on the vendors' pricing pages, checked 2026-10-29.

Unofficial. Not affiliated with or endorsed by the Ministry of Finance (Fiscal Information Agency), the International Trade Administration, MOEA, the Taiwan Food and Drug Administration (衛福部食品藥物管理署) or the National Communications Commission (國家通訊傳播委員會). Data: government open data under the Open Government Data License v1.0 (see Attribution and licence).

Try it: the prefilled input looks up TSMC (22099131), Hon Hai/Foxconn (04541302) and MediaTek (84149961). That is 3 trade-enriched records, about $0.017 in total.

Sources and English names

  • Two official open-data files, published daily:
    • Ministry of Finance (FIA) business-tax register (data.gov.tw dataset 9400)
    • International Trade Administration (BOFT) importer/exporter register (data.gov.tw dataset 79641)
  • Official English company names and addresses come from BOFT. English industry names are our own unofficial translations of the MOF classification, labelled as such.
  • English district names come from Chunghwa Post's official bilingual township table.
  • Privacy by default. Sole proprietorships are excluded, representative names are never output, and personal mobile numbers are dropped (details below).

What you can do

ModeUse it forCharged per
search (default when mode is omitted)Lists of companies, e.g. "IC manufacturers in Hsinchu City that can export", or "software companies founded in Taipei in 2026"record
lookupKYC / supplier verification: check up to 10,000 統一編號 at once (checksum, active status, English name, address, trade qualification)found record. Invalid and not-found numbers are free
marketSizeCounts only, no rows: number of businesses, traders and exporters by city, district and industry divisionreport

Input examples

{ "mode": "search", "cities": ["Hsinchu City"], "industryCodes": ["2611"], "exportQualified": true, "maxResults": 50 }
{ "mode": "lookup", "ubns": ["22099131", "04541302", "84149961", "130"] }

If you leave out mode, a run that has ubns is treated as a lookup, so { "ubns": ["22099131", "04541302"] } works too (this is what the Store's API, CLI and MCP snippets send). Without ubns the default is search.

{ "mode": "marketSize", "industryCodes": ["26"] }

Main filters

  • industryCodes takes MOF tax-industry codes or prefixes:
    • 2611 is semiconductors, 62 is computer programming.
    • A section letter A–S selects a whole section.
    • industryKeyword (zh or en) and primaryIndustryOnly narrow the match further.
  • cities / districts accept Chinese or English, and 台/臺 spellings are equivalent: 台中市 = 臺中市 = Taichung City.
  • orgTypes filters by organisation type. The default covers limited companies, companies limited by shares, and domestic/foreign branches.
  • Other filters: includeBranches, minCapitalTwd / maxCapitalTwd, foundedAfter / foundedBefore, usesEInvoice, and nameKeyword (Chinese name, or the English name for traders).
  • Trade filters: tradersOnly, exportQualified, importQualified.
  • firstSeenAfter returns only businesses that first appeared in the register after a date (see New-company tracking).
  • incrementalMode (+ stateKey) returns only businesses that are new or changed since your last run with the same filters.
  • outputLanguage is both (default), en or zh. maxResults defaults to 100 (prefill 10) and can go up to 200,000.

Output (one item per business)

{
"ubn": "22099131", "ubnValid": true, "found": true, "activeInFia": true,
"headquartersUbn": null, "isBranch": false,
"nameZh": "台灣積體電路製造股份有限公司", "nameEn": "TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY LIMITED",
"orgTypeZh": "股份有限公司", "orgTypeEn": "Company limited by shares", "orgCategory": "company",
"capitalTwd": 259323700670, "capitalApplicable": true,
"foundedDate": "1987-03-21", "foundedDateRoc": "0760321",
"addressZh": "新竹市東區科園里科學園區力行六路8號", "addressEn": "No. 8, Lixing 6th Rd., East Dist., Hsinchu City 30078, Taiwan (R.O.C.)",
"postalCode": "30078", "city": "新竹市", "cityEn": "Hsinchu City", "district": "東區", "districtEn": "East District", "postalCode3": "300",
"usesEInvoice": true,
"primaryIndustryCode": "261199", "primaryIndustryEn": "Semiconductor manufacturing",
"industries": [ { "code": "261199", "codeFormatted": "2611-99", "nameZh": "其他積體電路製造", "nameEn": "Semiconductor manufacturing", "nameEnSource": "unofficial-group-3", "sectionCode": "C", "sectionEn": "Manufacturing", "isPrimary": true } ],
"trade": { "isRegisteredTrader": true, "canImport": true, "canExport": true, "traderRegisteredDate": "1987-03-24", "traderIssuedDate": "2024-06-21", "phone": "03-5636688", "phoneExt": null, "fax": null },
"firstSeenDate": "2026-10-28", "snapshotDate": "2026-10-28", "tradeSnapshotDate": "2026-10-27",
"sources": ["FIA BGMOPEN1", "BOFT companyData"], "license": "Open Government Data License, version 1.0", "attribution": "…"
}

Real output samples (first 20 records, JSON + CSV) are in samples/.

The run summary goes to the key-value store record OUTPUT. It includes rows scanned, matched and output, snapshot dates, the charges, runtime, peak memory and the attribution text.

Optional: market-access licence counts (TFDA / NCC)

Set "includeMarketAccessLicences": true (off by default) to add a marketAccessLicences block to every record, at no extra charge. The record price does not change. The block holds counts only; no licence-holder, applicant or person names are output:

"marketAccessLicences": {
"tfdaMedicalDevices": {"active": 0, "total": 0, "latestIssueDate": null},
"tfdaDrugs": {"active": 0, "total": 0, "latestIssueDate": null},
"nccTelecomApprovals": {"valid": 132, "total": 132, "latestApprovalDate": "2025-07-24", "matchedBy": "exact company name (NCC has no UBN)"},
"sources": [{"source": "…", "sourceUrl": "https://data.gov.tw/dataset/5996", "licence": "Open Government Data License, version 1.0", "retrievedDate": "2026-10-29"}]
}
  • TFDA medical-device (data.gov.tw 9576) and drug (9122) licences are joined by the holder's 統一編號. active means the licence is not cancelled and is not past its expiry date. total counts unique licence numbers. TFDA masks some holders' numbers (********); those rows are never guessed or back-filled, and neither are short or blank numbers. They only appear as counts in the run summary.
  • NCC telecom-equipment type approvals (data.gov.tw 5996) carry no UBN, so they are joined by exact company name. Only names containing 公司 are used: Taiwan's Company Act makes these names unique nationwide. Sole proprietorships and individual-looking applicants never match. valid uses NCC's "still valid" flag. Blank and placeholder dates (for example 19000105) become null. A brand that files under a different legal entity will not be counted.
  • If a source can't be downloaded or parsed, its counts are null (not 0) and the run summary (OUTPUT) explains why. The other sources still work.
  • marketSize mode ignores this option. Incremental runs (onlyNew/onlyChanged) do not treat a change in licence counts as a change.
  • Each source is released under the Open Government Data License v1.0 (data.gov.tw/license). NCC site content is released under OGDL v1 per NCC's 政府網站資料開放宣告; counts are matched by exact company name, so verify on the official NCC search.
  • With this option on, each item's attribution text and the OUTPUT record also name TFDA datasets 9576 and 9122 and NCC dataset 5996, each with the OGDL v1 line.

Optional: sanctions / export-control screening flags (possible matches)

Possible match only, not a legal determination; absence of a flag is not clearance. Always verify against the official list (and, for US lists, the Federal Register) and do your own due diligence. If a customer is on the Taiwan list, an export permit for strategic high-tech commodities is needed before export; ask 國際貿易署 貿易安全管理辦公室.

This product uses the International Trade Administration's Data API but is not endorsed or certified by the International Trade Administration.

Set "screening": true (off by default) to screen each company's English and Chinese name against two lists, at no extra charge. The record price does not change.

  1. US Consolidated Screening List (CSL: SDN, Entity List, Denied Persons, MEU, CMIC and others). This is the ITA bulk file (public-domain US Government work). listDate is the date the file was last updated.
  2. Taiwan 國際貿易署 我國戰略性高科技貨品出口實體管理名單 (strategic high-tech commodities entity list), data.gov.tw dataset 102368, Open Government Data License v1.0. The file carries no update date (its createdate changes every day), so listDate is the date this run fetched it. The run summary records a content hash for change detection.

Each flag carries only these fields (other list columns are not republished, and there is no numeric score):

"screening": {
"screeningHits": [
{"flag": "possible match: on 國際貿易署 entity list (data.gov.tw 102368); not a legal determination",
"matchType": "exact", "matchedEntityName": "…name exactly as written on the list…",
"listName": "國際貿易署 entity list (data.gov.tw 102368)", "listDate": "2026-10-29",
"officialLink": "https://data.gov.tw/dataset/102368"}
],
"listsChecked": [{"listName": "US Consolidated Screening List", "listDate": "2026-10-29", "officialLink": "https://www.trade.gov/consolidated-screening-list", "checked": true}, {"listName": "國際貿易署 entity list (data.gov.tw 102368)", "listDate": "2026-10-29", "officialLink": "https://data.gov.tw/dataset/102368", "checked": true}],
"disclaimer": "possible match only, not a legal determination; absence of a flag is not clearance. …",
"notice": "This product uses the International Trade Administration's Data API but is not endorsed or certified by the International Trade Administration."
}
  • matchType:
    • exact: the same name or listed alias, ignoring case, width, punctuation and spelling of legal forms (Co., Ltd. = CO LTD = Company Limited).
    • normalized: the same name once legal forms, "Taiwan", spacing and hyphens are removed (HON HAI = HONHAI).
    • fuzzy: a near-miss you should review. It covers word order, Wade-Giles vs Pinyin spellings of one syllable (HSIN = XIN, CHANG = ZHANG, KUO = GUO) and one-letter typos in long words.
  • What is not flagged: very short or generic names, such as a one-word name under 6 letters ("ATLAS"), one-letter aliases, or names made only of generic words ("Semiconductor Manufacturing").
  • Personal data: the lists include natural persons. Their entries are dropped when the list is loaded: CSL rows typed Individual, and any entry with no company or organisation marker. Date-of-birth, nationality, passport/ID and address columns are never read. Only company names from this directory are screened; you cannot screen a person's name. Some organisations listed without any company marker are therefore not screened.
  • Coverage: English names come from the 國際貿易署 importer/exporter registry. Companies without a registered English name are screened by Chinese name only, and most CSL names are in Latin script. A failed list download shows "checked": false for that list, and screeningHits is null if neither list could be checked.
  • marketSize mode ignores this option.

Pricing (pay per event)

EventPriceWhen
apify-actor-start$0.005once per run (charged automatically by Apify)
result$0.002business record from the tax register only (no trade data)
trade-enriched-record$0.004record joined with the importer/exporter register (English name/address, import/export flags, business phone)
market-size-report$0.02one aggregate report in marketSize mode

Invalid and not-found lookups are free. The run stops cleanly when your maximum charge per run is reached; records that are not delivered are never charged. Prices are in pricing.json; the live prices are set in Apify Console.

Examples from the real data (2026-10-28 snapshot):

  • 50 Hsinchu IC exporters cost $0.205.
  • 177 Taipei software companies founded in 2026 cost $0.467.
  • A market-size report for division 26 costs $0.025.
  • 1,000 records cost $2.005 (all tax-register only) to $4.005 (all trade-enriched), so about $3 for a typical 50/50 mix.

New-company tracking and incremental runs

  • firstSeenDate / firstSeenAfter: every run updates a compact index (named key-value store taiwan-directory-index) that records when each UBN first appeared in the official file.
    • On the first run every business gets that day's snapshot date as its baseline.
    • From then on, newly registered businesses get the date of the snapshot in which they first appeared.
    • firstSeenAfter: "2026-10-28" returns only businesses that appeared after that snapshot.
    • The index is kept in your account's storage, so tracking starts from your first run.
  • incrementalMode: a fingerprint snapshot is kept for each filter set, in the named store taiwan-company-exporter-state under stateKey or a hash of the filters.
    • Later runs output only new or changed businesses, marked in the changeType field.
    • Only delivered (charged) records are remembered, so anything cut off by a limit is delivered next time.
    • Businesses that drop out of the filter are counted in OUTPUT.incremental.noLongerMatching.
    • Use incrementalFirstRun: "baselineOnly" to record a baseline without paying for output.

How it works

  • Each run downloads both files, or revalidates them with If-None-Match / If-Modified-Since. An unchanged file returns HTTP 304 and is not downloaded again.
  • FIA file: a 66 MB zip containing a 322 MB CSV. It is streamed and filtered row by row.
  • BOFT file: a 103 MB CSV. It is indexed into a compact table (sorted UBNs and file offsets), and full rows are read from disk only for matched companies.
  • A full scan of 1,715,118 rows takes about 10 s with cached files.
  • Memory: the default 1 GB is enough for every mode, including a 10,000-number lookup with both screening and includeMarketAccessLicences on. The process peak is about 200 MB; Apify's memory chart also counts file cache. For very large runs with both add-ons on (10,000 numbers or a full-register scan), 2 GB is recommended for extra headroom. Peak memory per stage is in OUTPUT.memoryMb.
  • Downloads: retried 3× with backoff. If a server is down, the last cached copy is used, with a warning.
  • Data checks: the column headers are checked exactly against the expected schema, and row counts are sanity-checked (FIA 1.5–1.9 M, BOFT 300–450 k). If either check fails, the run fails loudly (Actor.fail) instead of producing wrong data, and the first-seen index is left untouched.
  • Planned (not in this version): a developer-run daily refresh would pre-split the register into compact per-city/industry shards. Runs would then load only the shards they need, and a single shared first-seen history would cover all users.

Data notes / FAQ

  • Why does foundedDate differ from the company registry (GCIS)? FIA records the tax-registration (設立) date, while MOEA/GCIS records the company-incorporation date. For example, TSMC is 0760321 in FIA and 0760221 in GCIS. Both are correct for their own agency, and this Actor does not "fix" either one.
  • Branches. Branches (isBranch: true) have their own UBN and a headquartersUbn. Their capital is usually 0 in the register: capitalTwd: 0 with capitalApplicable: false. Use the headquarters record for capital.
  • Active businesses only. The FIA file contains only active tax registrations. A UBN missing from it may have ceased trading, never existed, or not be tax-registered. lookup returns found: false with a reason, free of charge.
  • Registered traders without an active tax registration (about 54 k BOFT rows) are returned in lookup with activeInFia: false. They are not included in search.
  • UBN checksum. Numbers are checked with the current MOF rule (2023+): weights 1,2,1,2,1,2,4,1, sum of digits divisible by 5, with the 7th-digit-7 special case.
    • All 1,715,118 UBNs in the register pass this rule.
    • The old divide-by-10 rule would wrongly reject 199,455 of them.
  • English names.
    • Company names and addresses use the official English names registered with BOFT. Only registered traders have them (about 321 k joined companies). Other businesses have nameEn: null; there is no machine translation.
    • Industry names: nameZh is the official Chinese name from the MOF classification (OGDL dataset 28483). nameEn is an unofficial English translation written by this Actor at the 3-digit group level (for example 261199 其他積體電路製造 → "Semiconductor manufacturing"). It is not the Ministry of Finance's own wording. nameEnSource says which level was used: unofficial-group-3, unofficial-group-2 (division), unofficial-section, or unlisted-code-group-N for codes that are not in any MOF revision. Each run's OUTPUT has an industryNames block describing this.
    • Measured on the 2026-10-28 file: 3,179,532 of 3,179,539 industry references (99.998 %) have an English name: 3,179,405 at group level, 2 at division level, and 125 unlisted codes mapped to their group or division. Seven malformed codes have none.
    • Why unofficial: MOF's English names are only in an internal file of its English inquiry website (WEBDATA_en.zip). Its reuse licence could not be confirmed, so the Actor does not use it (see research/webdata-en-licence.md in the project workspace).
  • Districts. English district names come from Chunghwa Post's bilingual township table, which has 370 entries. 1,715,087 of 1,715,118 addresses (99.998 %) resolve to a district; the remainder are malformed source addresses. For traders, the English address is used as a fallback.
  • Snapshot dates. snapshotDate is the date inside the FIA file. tradeSnapshotDate is the BOFT file's Last-Modified date in Taiwan time. BOFT is served through a CDN, so different edges can briefly serve different days.

Privacy (Taiwan Personal Data Protection Act, PDPA) and anti-spam

  • Sole proprietorships (獨資) and partnerships (合夥) are usually natural persons, so they are excluded by default. To include them, set both includeSoleProprietorships and lawfulPurposeAcknowledged (for example for KYC or supplier verification). lookup of an explicitly given UBN still returns the business, but never phone numbers for these types unless you opt in.
  • Representative / director names (代表人) are never output. They are not even read into memory.
  • Mobile numbers (09xx, about 52 k BOFT rows) are usually personal and are dropped. They are included only when you set both includeMobileNumbers and lawfulPurposeAcknowledged.
  • Business landlines and fax are output by default (includeContactNumbers).
  • Your use is your responsibility. Use the data only for lawful purposes, respect the PDPA's purpose-limitation rules, and do not use it for unsolicited bulk marketing (spam) or telemarketing to individuals.

Attribution and licence

Both datasets are published under the Open Government Data License, version 1.0 (政府資料開放授權條款-第1版). Every dataset item and the OUTPUT record carries this attribution, with the actual snapshot dates:

財政部財政資訊中心 2026 全國營業(稅籍)登記資料集(資料日期 2026-10-28);經濟部國際貿易署 2026 出進口廠商登記資料(資料日期 2026-10-27)。此開放資料依政府資料開放授權條款 (Open Government Data License) 進行公眾釋出,使用者於遵守本條款各項規定之前提下,得利用之。政府資料開放授權條款:https://data.gov.tw/license

Fiscal Information Agency, Ministry of Finance, 2026, National Business (Tax) Registration Dataset, snapshot 2026-10-28; International Trade Administration, MOEA, 2026, Importer/Exporter Registration Data, snapshot 2026-10-27. Made available under the Open Government Data License: https://data.gov.tw/license.

Unofficial. Not affiliated with or endorsed by the Ministry of Finance (Fiscal Information Agency), the International Trade Administration, MOEA, the Taiwan Food and Drug Administration (衛福部食品藥物管理署) or the National Communications Commission (國家通訊傳播委員會).

DatasetProviderdata.gov.twFile
全國營業(稅籍)登記資料集財政部財政資訊中心 (Fiscal Information Agency, MOF)9400https://eip.fia.gov.tw/data/BGMOPEN1.zip
出進口廠商登記資料經濟部國際貿易署 (International Trade Administration, MOEA)79641https://fbfh.trade.gov.tw/opendata/companyData.csv
稅務行業標準分類 (industry codes and Chinese names)財政部統計處 (Department of Statistics, MOF)28483bundled in data/industry_codes.json
English industry namesthis Actor (unofficial translations, not MOF wording)–data/sources/industry_en_unofficial.tsv
縣市鄉鎮中英對照檔 (districts)中華郵政 (Chunghwa Post)5949bundled in data/districts.json

Withdrawal caveat (OGDL §5): a provider may stop publishing or withdraw a dataset at any time. If a source disappears or changes its format, the Actor fails loudly rather than serving stale or wrong data, and it may be paused or withdrawn. Data is provided "as is", without any warranty of accuracy or completeness. Always confirm critical facts with the issuing agency.

Optional add-ons, when switched on, also credit their sources in each record and in OUTPUT:

  • TFDA datasets 9576 and 9122 and NCC dataset 5996 (data.gov.tw, OGDL v1), named in each item's attribution and in OUTPUT. NCC site content is released under OGDL v1 per NCC's 政府網站資料開放宣告.
  • 經濟部國際貿易署, 2026, 我國戰略性高科技貨品出口實體管理名單 (data.gov.tw dataset 102368), OGDL v1.
  • US Consolidated Screening List: This product uses the International Trade Administration's Data API but is not endorsed or certified by the International Trade Administration. List content is shown as published; the matching is ours.

Run locally (developers)

python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt
./run_local.sh inputs/hsinchu-ic-exporters.json # free local run (no Apify account)
./run_local.sh --ppe --max-usd 0.05 inputs/lookup-spec.json # simulate pay-per-event and a spending limit
.venv/bin/python -m pytest -q # 121 tests, offline (fixtures are real-file excerpts)
.venv/bin/python scripts/build_reference_data.py # rebuild data/industry_codes.json + data/districts.json
.venv/bin/python scripts/coverage_report.py # coverage stats on the real file -> samples/coverage.json