Thailand Company Data — Directors, Financials & Firmographics avatar

Thailand Company Data — Directors, Financials & Firmographics

Pricing

from $25.00 / 1,000 results

Go to Apify Store
Thailand Company Data — Directors, Financials & Firmographics

Thailand Company Data — Directors, Financials & Firmographics

Look up any Thai company by 13-digit juristic ID: firmographics, 5-year financial statements (assets, revenue, net profit, equity), directors & shareholders — official DBD data as clean JSON for KYC, due diligence & B2B intelligence.

Pricing

from $25.00 / 1,000 results

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

3

Monthly active users

12 days ago

Last modified

Share

Thailand Company Data — Directors, Financials & Firmographics

Thailand Company Data — Directors, Financials & Shareholders (DBD)

Need deep, verified company intelligence on the Thai market — not just a name and an address? This Actor turns Thailand's official Department of Business Development (DBD) registry into ready-to-use records: look up any company by 13-digit juristic ID or by name and get firmographics, up to 5 years of financial statements, the board of directors, and shareholder nationality — all in one clean JSON record.

Built on DBD's official public data — the keyless OpenAPI plus the DBD DataWarehouse. No API key, no login, no account: the Actor handles the anonymous session and the DataWarehouse's AES-GCM encryption for you, so you just pass an ID or a name — and it doesn't break when a website's HTML changes.

  • 🇹🇭 Any registered company — look up by 13-digit juristic ID, or search by Thai / English name
  • 📊 Up to 5 years of financials — assets, revenue, net profit, equity, liabilities and cash from the official DBD DataWarehouse
  • 👔 Board directors — names in Thai and English (where DBD has them) plus nationality
  • One run → one clean, flat record (JSON / CSV / Excel / API) — no fragile aggregator HTML

Quick start (API)

Get PTT and CP All with five years of financials and their full boards, in one call:

curl -X POST "https://api.apify.com/v2/acts/foxlabs~thailand-company-data/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "juristicIds": ["0107544000108", "0107542000011"], "includeFinancials": true, "financialYears": 5, "includeDirectors": true }'

No juristic IDs? Swap in "searchKeywords": ["PTT"] and the Actor finds and scrapes every match. Prefer no code? Open the Input tab, keep the prefilled examples or set your own, and click Start — then download the results.

What you get

One clean, flat record per company:

FieldTypeDescription
juristic_idstring13-digit Thai juristic (registration) number
name_th / name_enstringRegistered company name in Thai and English (English where DBD has it)
entity_typestringLegal entity type, in Thai (e.g. บริษัทมหาชนจำกัด = public limited company)
statusstringRegistration status, in Thai (e.g. ยังดำเนินกิจการอยู่ = active)
register_datestringRegistration date, ISO YYYY-MM-DD
tsic_code / tsic_th / tsic_enstringTSIC industry code + description (Thai & English)
registered_capital / _fmtnumber / stringRegistered capital — raw THB + compact ฿ string
paidup_capitalnumberPaid-up capital (THB)
addressstringRegistered address, in Thai (as DBD publishes it)
branchstringBranch name where the record is a branch, else null
financialsarrayUp to 5 fiscal years, newest first — see the financial fields below
financials_textstringOne-line summary of the latest year (e.g. Revenue ฿… · Net profit ฿… · Assets ฿… · FY2024)
directorsarrayBoard members: { seq, name_th, name_en, nationality }
directors_countnumberNumber of directors returned
directors_textstringSemicolon-joined names of the first 10 directors
shareholdersarrayShareholders { name_th, nationality, shares, ratio_pct } — best-effort, opt-in
shareholders_by_nationalityarrayForeign-ownership breakdown by nationality — best-effort, opt-in
matchedbooleantrue when data was found; unmatched inputs return matched: false + an error
source / source_urlstringDBD attribution + the company's DataWarehouse profile URL
scraped_atstringISO timestamp of the run

Each financials[] entry carries: fiscal_year (AD) and fiscal_year_be (Buddhist Era = AD + 543), business_size, total_assets (+ _fmt), current_assets, cash, total_liabilities, current_liabilities, equity (+ _fmt), revenue (+ _fmt), total_income, cost_of_sales, gross_profit, expenses, and net_profit (+ _fmt).

  • Language. name_th, entity_type, status, address and tsic_th come in Thai exactly as DBD publishes them; name_en and tsic_en give the English equivalents where DBD has registered them.
  • Money. Every headline figure comes twice — a raw number for maths (revenue: 3760000000000) and a compact Baht string (revenue_fmt: "฿3.76T", where T = trillion, B = billion, M = million; smaller values render as ฿1,234).

Sample output

Illustrative record (abridged — Thai text and figures shown for shape, not as measured values):

{
"juristic_id": "0107544000108",
"name_th": "บริษัท ปตท. จำกัด (มหาชน)",
"name_en": "PTT PUBLIC COMPANY LIMITED",
"entity_type": "บริษัทมหาชนจำกัด",
"status": "ยังดำเนินกิจการอยู่",
"register_date": "2001-10-01",
"tsic_code": "19200",
"tsic_en": "Manufacture of refined petroleum products",
"registered_capital": 28572457250,
"registered_capital_fmt": "฿28.57B",
"paidup_capital": 28562996250,
"address": "555 ถนนวิภาวดีรังสิต, จตุจักร, จตุจักร, กรุงเทพมหานคร",
"financials": [
{
"fiscal_year": 2024,
"fiscal_year_be": "2567",
"total_assets": 3400000000000,
"total_assets_fmt": "฿3.40T",
"revenue": 3760000000000,
"revenue_fmt": "฿3.76T",
"net_profit": 90070000000,
"net_profit_fmt": "฿90.07B",
"equity": 1050000000000,
"equity_fmt": "฿1.05T"
}
],
"financials_text": "Revenue ฿3.76T · Net profit ฿90.07B · Assets ฿3.40T · FY2024",
"directors": [
{ "seq": 1, "name_th": "นาย ตัวอย่าง กรรมการ", "name_en": "Mr. Example Director", "nationality": "TH" }
],
"directors_count": 15,
"directors_text": "Mr. Example Director; …",
"shareholders": null,
"shareholders_by_nationality": null,
"matched": true,
"source": "DBD — Department of Business Development, Ministry of Commerce (Thailand)",
"source_url": "https://datawarehouse.dbd.go.th/company/profile/7/0107544000108",
"scraped_at": "2026-07-05T00:00:00.000Z"
}

directors, shareholders and each financials[] entry are trimmed here for readability — a real record lists every board member and every fiscal year you requested. Fields that DBD doesn't publish for a company return null, never a guess.

Input & filters

  • Companies — supply exact juristic IDs (13-digit, fastest and unambiguous), or search keywords (Thai or Latin company-name tokens). Each keyword is searched on DBD and every match is scraped, capped by maxResults.
  • Financial statements — toggle on/off, and choose how many recent fiscal years (financialYears, 1–5).
  • Directors — board / committee members with Thai + English names and nationality.
  • Shareholdersopt-in, best-effort. The anonymous public tier often withholds named partners; leave off unless you need it.
  • Max results — hard cap on companies processed per run (up to 100,000).
  • Concurrency — parallel firmographic lookups (1–4). The encrypted deep tier always runs sequentially, so this mainly speeds up firmographics-only runs.
  • Proxy — a datacenter proxy is sufficient; DBD's bot protection passes from datacenter IPs.

A few well-known juristic IDs to try: 0107544000108 (PTT), 0107542000011 (CP All), 0107536000102 (Siam Commercial Bank).

Example inputs (copy & paste)

// 1) Deep dive: PTT, CP All & SCB with 5 years of financials and full boards
{ "juristicIds": ["0107544000108", "0107542000011", "0107536000102"],
"includeFinancials": true, "financialYears": 5, "includeDirectors": true }
// 2) No IDs? Search by name and scrape every match (capped by maxResults)
{ "searchKeywords": ["PTT", "ปูนซิเมนต์ไทย"], "includeFinancials": true, "maxResults": 20 }
// 3) Fast firmographics only — name, capital, TSIC, address (no deep tier)
{ "juristicIds": ["0107544000108", "0107542000011"],
"includeFinancials": false, "includeDirectors": false, "maxConcurrency": 4 }
// 4) Full ownership picture — directors + shareholders (best-effort) + financials
{ "juristicIds": ["0107544000108"],
"includeDirectors": true, "includeShareholders": true, "includeFinancials": true }
// 5) Lean financials — latest year only, skip directors
{ "juristicIds": ["0107544000108", "0107542000011"],
"includeFinancials": true, "financialYears": 1, "includeDirectors": false }
// 6) Keyword sector browse — Thai "ธนาคาร" (banks), enriched
{ "searchKeywords": ["ธนาคาร"], "includeFinancials": true, "includeDirectors": true, "maxResults": 50 }

Tip: DBD matches on the registered name — a Thai name or a distinctive Latin token (e.g. PTT) works best; long English phrases may miss.

Use cases

  • KYC / KYB & due diligence. Verify a Thai counterparty before you sign: pass its juristicIds and get official legal identity, entity type, status, registered capital, the board of directors and multi-year financial health in one record — no manual registry look-ups.
  • B2B lead enrichment. Already have Thai company names or IDs? Feed them in to append firmographics, TSIC industry, capital and a revenue signal, so sales can prioritise by size and sector.
  • Supply-chain & vendor intelligence. Map Thai suppliers and manufacturers by industry (TSIC), capital and financial size, and screen new vendors for solvency before onboarding.
  • Investment & credit research. Compare up to 5 years of DBD financials — assets, revenue, net profit, equity, liabilities — across a set of companies to gauge trajectory and creditworthiness.
  • Market & competitor research. Pull a list of players by name search or ID, then rank by capital, revenue and board size to size a market and spot the leaders.
  • CRM enrichment & cleanup. Refresh stale Thai records with current status, capital and directors. Missing fields return null, never a fabricated value.

Performance & throughput

This Actor is built for depth, not bulk. Firmographics come from the keyless DBD OpenAPI; the deep tier (financials, directors, shareholders) comes from the encrypted DataWarehouse, which the Actor reaches through a single anonymous browser session and queries sequentially — with short, polite pauses — to stay WAF-friendly. So each company is a handful of requests rather than an instant lookup; plan for depth-oriented runs and use maxResults to bound them.

Need speed over depth? Turn includeFinancials and includeDirectors off: firmographics-only runs skip the DataWarehouse entirely and can fan out in parallel (maxConcurrency up to 4). There are no external API keys, and a datacenter proxy is sufficient — throughput is otherwise bounded only by your Apify plan.

Integrations

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('foxlabs/thailand-company-data').call({
juristicIds: ['0107544000108', '0107542000011'], includeFinancials: true, financialYears: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("foxlabs/thailand-company-data").call(run_input={
"juristicIds": ["0107544000108"], "includeFinancials": True, "financialYears": 5,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name_en"], item.get("financials_text"))

Also works with Make / n8n / Zapier (Apify app → run this Actor, map the input), scheduled runs and webhooks.

Use it as an MCP tool (inside any AI agent). Call this Actor from Claude, Cursor, ChatGPT, LangChain, Make, n8n or Zapier over the Model Context Protocol.

  • Hosted (zero setup) — point your MCP client at https://mcp.apify.com?tools=foxlabs/thailand-company-data
  • Self-hosted (stdio clients — Claude Desktop, Cursor, Cline, Continue):
{
"mcpServers": {
"thailand-company-data": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--tools", "foxlabs/thailand-company-data"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

Your agent can then ask "Pull PTT's directors and 5-year financials" and get the record back inline.

Data quality

All fields come straight from DBD — never inferred or fabricated; anything DBD doesn't publish for a company is returned as null.

  • Identity & firmographics (name, juristic ID, entity type, status, TSIC, capital, address) come from the OpenAPI and are present for essentially every registered company.
  • English name and English TSIC appear where DBD has registered them — common for large / public companies, sparser for small ones.
  • Financials are available for companies that have filed statements with DBD; how many years come back depends on what the company has on file (you request up to 5).
  • Directors are returned for companies whose board DBD exposes on the public profile.
  • Shareholders are best-effort and opt-in — the anonymous DataWarehouse tier frequently withholds named partners, so this field is often null; shareholders_by_nationality may still summarise foreign ownership when named partners aren't public.

We don't quote fixed fill-rate percentages, because coverage varies by company size and filing history — the honest answer is "as much as DBD exposes, and null otherwise."

Pricing

Billed through Apify's usage-based pricing — see the Pricing tab on this Actor's page for the current rate. There's an Apify free tier so you can evaluate the full output (firmographics + financials + directors) before you scale. DBD access is keyless — there's no third-party API or proxy subscription to buy.

FAQ

Do I need a DBD account or API key? No — no key, no login, no account. The Actor uses only DBD's public, anonymous tier.

Can I look up a company without its juristic ID? Yes — put company-name tokens in searchKeywords. Each is searched on DBD and every match is scraped (up to maxResults).

What is a juristic ID? The 13-digit registration number DBD assigns each juristic person (e.g. 0107544000108 for PTT). It's the reliable key for an exact match.

Why are the address, entity type and status in Thai? DBD publishes them in Thai. name_en and tsic_en give English where DBD has registered it.

What are the fiscal_year_be numbers? DBD reports fiscal years in the Buddhist Era (AD + 543). The Actor returns both fiscal_year_be and the Gregorian fiscal_year.

Why are shareholders often empty? The anonymous public tier usually withholds named partners, so shareholders is best-effort and opt-in; shareholders_by_nationality may still be present.

How many companies can I get in one run? Up to 100,000 via maxResults — but the deep tier is sequential, so large runs are depth-oriented and take time.

Are the money values raw or formatted? Both — a raw number for calculations and a compact ฿ string (T / B / M) for display.

What export formats are available? JSON, CSV, Excel, or via the Apify API and integrations.

Can I call it from an AI agent? Yes — it's exposed over the Apify MCP server (see Integrations).

Troubleshooting

  • matched: false / 0 results → check the juristic ID is exactly 13 digits, or that your keyword matches DBD's registered name (a Thai name or a distinctive Latin token like PTT works best; long English phrases may miss).
  • A company has no financials → it may not have filed statements with DBD, or filed fewer years than you requested. The field is null, not an error — never a fabricated figure.
  • The run feels slow → the encrypted deep tier is sequential by design. For fast, wide runs turn includeFinancials and includeDirectors off and raise maxConcurrency.
  • shareholders is empty → expected on the anonymous tier; the field is best-effort and opt-in.
  • Source. All data is official, public information from Thailand's Department of Business Development (DBD), Ministry of Commerce — the keyless OpenAPI (openapi.dbd.go.th) and the public DBD DataWarehouse. This Actor uses only the public, anonymous tier — no login, no account, no private data. Verify DBD's terms of service before commercial redistribution.
  • Personal data / PDPA. Director and shareholder names are individuals published by DBD itself. If you process this personal data you are responsible for your own legal basis under Thailand's PDPA and any other applicable law.
  • Language. Several fields (name_th, entity_type, status, address, tsic_th) are returned in Thai exactly as DBD publishes them.
  • Not affiliated with DBD or the Ministry of Commerce; this Actor redistributes their public data.

Support

Questions, a field you'd like added, or a custom build? Open the Issues tab on this Actor, or email info@foxlabs.com.tr. We reply fast.

If this Actor saves you time, a ⭐ review really helps.

Changelog

0.2 — 2026-07-05

  • Reworked docs: API quick-start, full field table, corrected sample output, integration snippets (JS / Python / Make / MCP), data-quality, FAQ & troubleshooting.

0.1.1 — 2026-06-27

  • Search by company name (searchKeywords) — find and scrape companies without a juristic ID.
  • Shareholders: nationality / foreign-ownership breakdown surfaced even when named partners aren't public on the anonymous tier.
  • Reliability: navigation retry against intermittent WAF timeouts.

0.1.0 — 2026-06-27

  • Initial release on Apify Store.
  • DBD OpenAPI firmographics (keyless): TH/EN name, entity type, status, register date, TSIC, registered & paid-up capital, address.
  • DBD DataWarehouse deep tier via anonymous session + AES-GCM decryption: up to 5 years of financial statements, board directors, best-effort shareholders.
  • Money formatting: raw number + compact ฿T/B/M.
  • Buddhist Era → Gregorian fiscal-year mapping.
  • Datacenter-proxy compatible; deep tier runs sequentially for WAF-friendliness.

Part of the foXLabs data platform — official public-data company, contact, ownership, financial & AI-search intelligence scrapers. Browse the full suite at data.foxlabs.com.tr or apify.com/foxlabs.

Related: Korean Company Data · UK Company Data · Estonia Company Data