# Thailand Company Data — Directors, Financials & Firmographics (`foxlabs/thailand-company-data`) Actor

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.

- **URL**: https://apify.com/foxlabs/thailand-company-data.md
- **Developed by:** [Berkan Kaplan](https://apify.com/foxlabs) (community)
- **Categories:** Lead generation
- **Stats:** 17 total users, 4 monthly users, 96.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $25.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Thailand Company Data — Juristic ID, Financials & Directors (DBD) 🇹🇭

🎉 Turn Thailand's official DBD company records into clean, structured rows — look companies up by 13-digit juristic ID or search them by name, and get the legal name in Thai and English, entity type, status, TSIC industry, capital, up to five years of financial statements and the board of directors, one row per company.
Built for KYB / KYC, due diligence, credit screening and B2B research on Thai companies.

### 🔍 What is Thailand Company Data — and when should you use it?

Give this Actor Thai **juristic IDs** (the 13-digit registration number, e.g. `0107544000108` for PTT) or **company-name keywords**, and it returns one record per company from the **Department of Business Development (DBD)**, Ministry of Commerce: identity fields from DBD's keyless OpenAPI (`openapi.dbd.go.th`), and financial statements, directors and — on request — shareholders from the DBD DataWarehouse (`datawarehouse.dbd.go.th`). Every run reads DBD live.

**Use it when you need:** a company profile for KYB or vendor onboarding (Thai and English legal name, entity type, status, registration date, registered address, registered and paid-up capital); several years of assets, liabilities, revenue and net profit for a credit or due-diligence screen; the current board of directors.

**Use something else when:** you need phone numbers, emails or websites — this Actor returns no contact fields — or complete shareholder lists: with `includeShareholders` on, DBD's anonymous tier returned an empty shareholder list for 2 of 2 companies in our test, and only the nationality breakdown.

### 🤖 Use with AI agents

**Already on the Apify MCP server?** Ask for this Actor by name: `foxlabs/thailand-company-data`.

**Your agent can pay for its own runs.** This Actor is pay-per-event with agentic payments, so an agent can discover it, run it and settle the bill over **x402 (USDC on Base)** or **Skyfire** — no Apify account or API token of its own. Billing is the same either way: per delivered company record — rows that only report a failed lookup are free from 25 September 2026.

Otherwise paste this into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```
I want Thai company records from the Apify Actor `foxlabs/thailand-company-data`.
Input: `juristicIds` is a list of 13-digit Thai juristic IDs (exact match); `searchKeywords` is a list of company-name keywords searched on DBD (loose match). `includeFinancials`, `includeDirectors` and `includeShareholders` switch the data tiers, `financialYears` (1–5) sets how many years of statements, `maxResults` caps the companies.
Start with: {"juristicIds":["0107544000108","0107542000011","0107536000102"]}
Ask me what to look up, run the Actor, then summarise the rows as a table.
```

The machine-readable API, MCP config and OpenAPI definition live at `apify.com/foxlabs/thailand-company-data.md`.

### 📋 Overview

Everything you need to turn DBD company records into structured data — in one Actor, with no login, cookies or API key.

**Why teams pick this Actor:**

- ✅ **Official source** — DBD, the Ministry of Commerce department that registers Thai companies and partnerships.
- 📊 **Up to five years of financial statements** — assets, liabilities, equity, revenue, costs and net profit per fiscal year.
- 🧑‍💼 **Board of directors** — Thai names, English names where DBD has them, nationality.
- 🛡️ **No fabricated figures** — a financial block that is impossible for the company's registered size is rejected and flagged in `financials_note`.
- 💰 **Pay per record** — $0.025 per delivered company record, no subscription.
- 🤖 **Agent-ready** — MCP + x402 agentic payments.

### ✨ Features

- 🔍 **Two ways in** — `juristicIds` (exact, 13 digits) or `searchKeywords` (DBD's company-name search, Thai or English).
- 🧾 **Identity** — Thai and English legal name, entity type, status, registration date, TSIC code with Thai and English description, registered and paid-up capital, office type, registered address.
- 📊 **Financial statements** — the most recent `financialYears` fiscal years (1–5): total and current assets, cash, total and current liabilities, equity, revenue, total income, cost of sales, gross profit, expenses, net profit and DBD's business-size code.
- 🧑‍💼 **Directors** — order, Thai name, English name (when DBD has one), nationality.
- 👥 **Shareholders (optional)** — `includeShareholders` asks DBD for the shareholder list and the nationality breakdown.
- 🧯 **Outage-aware** — when a DBD service is down, rows say so (`identity_available`, `deep_tier_available`, `error`) instead of looking complete.

### 🎬 Quick Start

```bash
curl -X POST "https://api.apify.com/v2/acts/foxlabs~thailand-company-data/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"juristicIds":["0107544000108","0107542000011","0107536000102"]}'
```

### 🚀 Getting Started (3 steps)

1. **Choose your targets** — 13-digit juristic IDs for exact matches, or name keywords to search DBD.
2. **Pick the data tiers** — financials (3 years) and directors are on by default; shareholders are off.
3. **Run and export** — download the dataset as JSON, CSV, Excel, HTML or XML.

### 📥 Input

```json
{"juristicIds":["0107544000108","0107542000011","0107536000102"]}
```

| Field | Type | Description |
|---|---|---|
| `juristicIds` | array | 13-digit Thai juristic IDs, one per line — exact match. Duplicates are removed; an entry that is not 13 digits gets its own `error` row. |
| `searchKeywords` | array | Company-name keywords in Thai or English. Each keyword is sent to the DBD DataWarehouse company search and the companies found are looked up in full. Loose match — see the FAQ. |
| `includeFinancials` | boolean | Financial statements from the DBD DataWarehouse (default on). |
| `financialYears` | integer | How many recent fiscal years to request, 1–5 (default 3). A run on 10 September 2026 with 3 requests fiscal 2025, 2024 and 2023. |
| `includeDirectors` | boolean | Board of directors (default on). |
| `includeShareholders` | boolean | Shareholder list and nationality breakdown (default off) — see the FAQ for what DBD's anonymous tier returns. |
| `maxResults` | integer | Cap on companies looked up (default 100, max 100,000). With keywords, the room left after your IDs is split evenly across the keywords. |
| `maxConcurrency` | integer | Parallel lookups (default 2, max 4). It applies only to identity-only runs; when financials, directors, shareholders or keywords are requested, the DataWarehouse session handles one company at a time. |
| `proxyConfiguration` | object | Apify Proxy settings (default: Apify Proxy on). |

**More recipes**

- Name search: `{"searchKeywords":["PTT"],"maxResults":2,"financialYears":1,"includeShareholders":true}` — in our test this returned 2PT TRANS COMPANY LIMITED and KITTISUPT TRACTOR PARTS AND EQUIPMENTS, not PTT itself: DBD's search matches loosely and lists hits in name order.
- Thai keyword: `{"searchKeywords":["ปตท"],"maxResults":1,"includeFinancials":false,"includeDirectors":false}` — returned JUNPEN PTT SRIRACHA CO.,LTD. (บริษัท จันทร์เพ็ญ ปตท.ศรีราชา จำกัด).
- Identity only, no browser session: `{"juristicIds":["0107544000108"],"includeFinancials":false,"includeDirectors":false}` — name, status, TSIC, capital and address from the OpenAPI.

### 📤 Output

One row per company. Rows with `matched: true` are delivered company records. A juristic ID that fails still writes a row with `matched: false` and an `error` saying why — not a 13-digit ID, no DBD data for the ID, or a DBD outage — so a failed ID never disappears silently. From 25 September 2026 these rows are not charged. A keyword that matches nothing adds no row; the run log says so.

| Field | Description |
|---|---|
| `juristic_id` | 13-digit juristic ID |
| `name_th` / `name_en` | Legal name in Thai and English |
| `entity_type` / `status` | Entity type and status as DBD writes them, in Thai — e.g. `บริษัทมหาชนจำกัด` (public limited company), `ยังดำเนินกิจการอยู่` (still operating) |
| `register_date` | Registration date (ISO) |
| `tsic_code` / `tsic_th` / `tsic_en` | TSIC code of the registered business objective, with Thai and English description |
| `registered_capital` / `registered_capital_fmt` / `paidup_capital` | Registered capital (฿, number and compact text) and paid-up capital (฿) |
| `address` / `branch` | Registered address (Thai) and office type (e.g. `สำนักงานใหญ่`, head office) |
| `financials[]` / `financials_text` | One entry per fiscal year — `fiscal_year`, `fiscal_year_be`, `business_size`, `total_assets`, `current_assets`, `cash`, `total_liabilities`, `current_liabilities`, `equity`, `revenue`, `total_income`, `cost_of_sales`, `gross_profit`, `expenses`, `net_profit` (฿) plus compact texts for assets, equity, revenue and net profit — and a one-line summary of the latest year |
| `financials_note` | Only when DBD served a financial block that is impossible for the company's registered size: it was rejected and `financials` is `null` |
| `directors[]` / `directors_count` / `directors_text` | Directors — `seq`, `name_th`, `name_en` (when DBD has one), `nationality` |
| `shareholders` / `shareholders_by_nationality` | Only with `includeShareholders`; `null` otherwise |
| `matched` / `error` | `true` for a company record; `false` plus `error` for a failed lookup |
| `identity_available` / `identity_source` / `identity_partial` / `identity_note` / `status_code` / `entity_type_code` | Only when the OpenAPI was down: where the identity came from and which fields could not be filled |
| `deep_tier_available` / `deep_tier_error` | Only when the DataWarehouse was down: financials, directors and shareholders are missing for that reason |
| `source` / `source_url` / `scraped_at` | Source name, DBD DataWarehouse profile link, timestamp |

Sample — PTT, captured 2026-09-10 (lists trimmed to one entry):

```json
{
  "juristic_id": "0107544000108",
  "name_th": "บริษัท ปตท. จำกัด (มหาชน)",
  "name_en": "PTT PUBLIC COMPANY LIMITED",
  "entity_type": "บริษัทมหาชนจำกัด",
  "status": "ยังดำเนินกิจการอยู่",
  "register_date": "2001-10-01",
  "tsic_code": "71209",
  "tsic_en": "Other technical testing and analysis, not elsewhere classified",
  "tsic_th": "การทดสอบและวิเคราะห์ทางเทคนิคอื่นๆซึ่งมิได้จัดประเภท ไว้ในที่อื่น",
  "registered_capital": 28562996250,
  "registered_capital_fmt": "฿28.56B",
  "paidup_capital": 28562996250,
  "address": "555 ถนนวิภาวดีรังสิต, จตุจักร, เขตจตุจักร, กรุงเทพมหานคร",
  "branch": "สำนักงานใหญ่",
  "financials": [
    {
      "fiscal_year_be": "2568",
      "fiscal_year": 2025,
      "business_size": "L",
      "total_assets": 2415908875719.89,
      "total_assets_fmt": "฿2.42T",
      "current_assets": 638011609807.37,
      "cash": 187965734884.53,
      "total_liabilities": 1193892725120.39,
      "current_liabilities": 506697464793.25,
      "equity": 1222016150599.5,
      "equity_fmt": "฿1.22T",
      "revenue": 3185797113928,
      "revenue_fmt": "฿3.19T",
      "total_income": 3185797113928,
      "cost_of_sales": 3022896209457.54,
      "gross_profit": 64884825979.91,
      "expenses": 3101343541083.11,
      "net_profit": 57821881655.75,
      "net_profit_fmt": "฿57.82B"
    }
  ],
  "financials_text": "Revenue ฿3.19T · Net profit ฿57.82B · Assets ฿2.42T · FY2025",
  "directors": [
    {
      "seq": 1,
      "name_th": "นาย ผยง ศรีวณิช",
      "name_en": null,
      "nationality": "TH"
    }
  ],
  "directors_count": 14,
  "directors_text": "นาย ผยง ศรีวณิช; นาง พงษ์สวาท นีละโยธิน; นาย คงกระพัน อินทรแจ้ง; นางสาว ชูศรี เกียรติขจรกุล; นาย ชยธรรม์ พรหมศร; นาย วีรพัฒน์ เกียรติเฟื่องฟู; Wilert Puriwat; Teeralak Sangsnit; Vuttikrai Leewiraphan; Sommai Siriudomset",
  "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-09-10T14:53:21.537Z"
}
```

### 💼 Use cases

**1. KYB and vendor onboarding** — verify a Thai company before you sign.
*Input:* its juristic ID. *Output:* legal names, entity type, status, registration date, address, capital. *Use:* confirm the entity exists and is still operating.

**2. Credit and financial screening** — see where a counterparty is heading.
*Input:* a list of juristic IDs with `financialYears` up to 5. *Output:* assets, liabilities, equity, revenue and net profit per year. *Use:* flag shrinking or loss-making companies.

**3. Board and governance checks** — who runs the company.
*Input:* juristic IDs. *Output:* the directors with nationality. *Use:* identify decision-makers and foreign directors.

**4. Bilingual record matching** — Thai script to English.
*Input:* juristic IDs. *Output:* the Thai and the English legal name side by side. *Use:* match Thai-language records to English-language systems.

### 🔗 Integration

**JavaScript / Node.js**

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('foxlabs/thailand-company-data').call({"juristicIds":["0107544000108"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

**Python**

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('foxlabs/thailand-company-data').call(run_input={"juristicIds": ["0107544000108"]})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

**Automation (n8n / Zapier / Make):** schedule or webhook → HTTP request to the Actor API with your `juristicIds` → handle the JSON dataset → push to a sheet, CRM or dashboard.

### 📊 Pricing

Pay-per-event: **$0.025 per delivered company record** (≈ $25 per 1,000 companies), plus Apify's run-start event of $0.00005 per GB of memory. Financial years, directors and shareholders do not change the price per company. A row that kept its identity fields but lost the DataWarehouse tier to an outage (`deep_tier_available: false`) is still a company record. **From 25 September 2026, rows that only report a failed lookup (`error`) are free.** Until then Apify still counts them as dataset items. [Current pricing](https://apify.com/foxlabs/thailand-company-data).

### ❓ FAQ

**Where does the data come from?** From DBD, Ministry of Commerce. Identity fields come from DBD's keyless OpenAPI (`openapi.dbd.go.th`); financial statements, directors, shareholders and the name search come from the DBD DataWarehouse (`datawarehouse.dbd.go.th`), which the Actor reads through an anonymous session in a headless browser. No login and no API key.

**Juristic ID or keyword?** An ID is exact. A keyword goes to DBD's company search, which matches loosely and returns hits in DBD's name order: in our test `PTT` returned 2PT TRANS COMPANY LIMITED and KITTISUPT TRACTOR PARTS AND EQUIPMENTS, and `ปตท` returned JUNPEN PTT SRIRACHA CO.,LTD. — not PTT itself. Use the ID when the exact company matters.

**Why is `financials` null with a `financials_note`?** For some companies DBD's public tier serves a financial block that cannot be theirs. The Actor rejects a block when a company DBD sizes as small shows more than ฿500M in assets, or when assets exceed 5,000 times the registered capital, instead of passing the figures on. In our test this happened for both small companies found by keyword, while PTT, CP ALL and Siam Commercial Bank each returned three years.

**Why are English director names missing?** DBD holds a Thai name for every director but an English name only for some — 13 of 51 directors across our test runs.

**What does `includeShareholders` return?** What DBD's anonymous tier gives: in our test the shareholder list was empty for 2 of 2 companies, while `shareholders_by_nationality` came back for both (DBD's own objects — nationality, share count, amount and percentage).

**What happens when DBD is down?** The row says so. With the OpenAPI down, the identity comes from the DataWarehouse search index (`identity_partial: true`, with `identity_note` naming the fields it cannot fill), or the row becomes `matched: false` with an `error`. With the DataWarehouse down, rows keep the identity fields and get `deep_tier_available: false`, and a keyword-only run returns one `error` row per keyword.

**What if I start it with no input?** It runs the three demo companies (PTT, CP ALL, Siam Commercial Bank) and says so in the log.

**Can I export to CSV / Excel / JSON?** Yes — directly from the Apify dataset.

### 🐛 Troubleshooting

- **`Not a 13-digit Thai juristic ID — skipped.`** — the entry has other characters or the wrong length. If no entry is valid and there are no keywords, the run stops with a message listing them.
- **`No DBD data found for juristic id …`** — neither DBD service returned anything for that ID; check the number.
- **A keyword returns other companies, or nothing** — keywords match loosely; use juristic IDs for exact companies.
- **The run is slow** — financials, directors and shareholders go through one DataWarehouse session, one company at a time; switch off the tiers you don't need or lower `financialYears`.
- **`identity_available: false` or `deep_tier_available: false`** — a DBD service was down during the run; re-run later.

### ⚖️ Is it legal to scrape this data?

The Actor reads company records that DBD makes publicly available, without a login. Director and shareholder names are personal data under Thailand's Personal Data Protection Act B.E. 2562 (2019) — process them only for a lawful purpose such as KYC or due diligence, and check that your use fits DBD's terms. This Actor is not affiliated with DBD or the Ministry of Commerce.

### 🤝 Support & contact

- 🌐 **Website:** [data.foxlabs.com.tr](https://data.foxlabs.com.tr)
- 📧 **Email:** info@foxlabs.com.tr
- 🐛 **Issues:** open a ticket in the Actor’s **Issues** tab
- 🧰 **More clean B2B data actors:** [Fox Labs on Apify](https://apify.com/foxlabs)

### Changelog

#### 0.1.1 — 2026-09-10 — failed lookups become free (per-record billing) + README corrected

- **You will pay only for delivered company records.** The Actor now charges a new `company-record` event for each delivered company (`matched: true`). Rows that only report a failed lookup — not a 13-digit ID, no DBD data for the ID, a keyword that could not be searched, a DBD outage that left no identity — are pushed without a charge.
- **Timing:** Apify applies pricing changes after a 14-day notice. From **25 September 2026** the pricing switches from the per-dataset-item event to `company-record` at the same price ($0.025). Until then billing is exactly as before; the code detects the switch by itself.
- No output field changed.
- **README corrected.** The previous README showed inputs this Actor does not read (`queries`, `maxResultsPerQuery`, `includeRaw`) with placeholder values, and claimed things it does not do: whole-registry calls, formation monitoring, relevance-ranked search, contact fields, camelCase rows with a `query` field, English status values, and free failed lookups before this billing change. This README is written from the code and from test runs on 2026-09-10.

#### 0.1 — 2026-09-07

- README rebuilt and AI-agent payments (x402) enabled. That README described inputs this Actor does not have and said seven columns had been removed; they had not — the Actor still returns them (see 0.1.1).

#### 0.0

- Initial release: data from the Thai Department of Business Development (DBD) registry by name or registry ID.

# Actor input Schema

## `juristicIds` (type: `array`):

Thai juristic registration numbers — one per line, e.g. 0107544000108 (PTT). The 13-digit ID is the reliable key for an exact match.

## `searchKeywords` (type: `array`):

Company name keywords (Thai or English), e.g. "PTT" or "ปตท". Each keyword is searched on DBD and matching companies are scraped — use this when you don't have juristic IDs. Combine with maxResults to cap how many.

## `includeFinancials` (type: `boolean`):

Multi-year financials: total assets, revenue, net profit, equity and balance-sheet items, from the official DBD DataWarehouse.

## `financialYears` (type: `integer`):

How many recent fiscal years of financials to fetch (1–5). More years = slightly higher cost.

## `includeDirectors` (type: `boolean`):

Board directors / committee members with names (Thai + English where available) and nationality.

## `includeShareholders` (type: `boolean`):

Shareholder list + nationality breakdown. Often empty on the public/anonymous tier — leave off unless you specifically need it.

## `maxResults` (type: `integer`):

Hard cap on the number of companies processed in one run.

## `maxConcurrency` (type: `integer`):

Parallel firmographic lookups. The encrypted deep tier always runs sequentially (single browser session), so this mainly affects firmographics-only runs.

## `proxyConfiguration` (type: `object`):

Apify Proxy. Datacenter is enough — DBD's bot protection passes from datacenter IPs (verified).

## Actor input object example

```json
{
  "juristicIds": [
    "0107544000108",
    "0107542000011",
    "0107536000102"
  ],
  "searchKeywords": [],
  "includeFinancials": true,
  "financialYears": 3,
  "includeDirectors": true,
  "includeShareholders": false,
  "maxResults": 100,
  "maxConcurrency": 2,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "juristicIds": [
        "0107544000108",
        "0107542000011",
        "0107536000102"
    ],
    "searchKeywords": [],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("foxlabs/thailand-company-data").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "juristicIds": [
        "0107544000108",
        "0107542000011",
        "0107536000102",
    ],
    "searchKeywords": [],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("foxlabs/thailand-company-data").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "juristicIds": [
    "0107544000108",
    "0107542000011",
    "0107536000102"
  ],
  "searchKeywords": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call foxlabs/thailand-company-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,foxlabs/thailand-company-data"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WyAJSJpZlBgHJUYaM/builds/qocY5PaD6Udo2CDva/openapi.json
