Indonesia Companies Scraper (PT, Tbk, Sector & Address) avatar

Indonesia Companies Scraper (PT, Tbk, Sector & Address)

Pricing

from $12.75 / 1,000 results

Go to Apify Store
Indonesia Companies Scraper (PT, Tbk, Sector & Address)

Indonesia Companies Scraper (PT, Tbk, Sector & Address)

Look up Indonesian companies by name or IDX listing code and get the legal name, legal form (PT / Persero / Tbk), business sector and industry, registered address, phone, website, employee count and top officers. Export to JSON, CSV or Excel.

Pricing

from $12.75 / 1,000 results

Rating

4.6

(2)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 days ago

Last modified

Share

Indonesia Companies Scraper (PT, Tbk, Sector & Address)

Indonesia Companies Scraper (PT, Tbk, Sector & Address)

Here is one real result, with every field the actor returns (the long businessSummary text and the AI activity/keyword arrays are trimmed here with ...; the record returns the full values):

{
"ticker": "TLKM.JK",
"name": "Perusahaan Perseroan (Persero) PT Telekomunikasi Indonesia Tbk",
"legalForm": "PT (Persero) Tbk",
"status": "Listed (public)",
"exchange": "Indonesia Stock Exchange (Jakarta)",
"sector": "Communication Services",
"industry": "Telecom Services",
"addressLine1": "Jl. Japati No. 1",
"addressLine2": null,
"city": "Bandung",
"province": null,
"postalCode": "40133",
"country": "Indonesia",
"phone": "62 22 452 1404",
"fax": "62 22 720 6757",
"website": "https://www.telkom.co.id",
"investorRelationsWebsite": "http://www.telkom.co.id/investor-relation/",
"fullTimeEmployees": 17438,
"marketCap": 258282052648960,
"currency": "IDR",
"sharePrice": 2620,
"sharePriceChangePercent": 1.16,
"fiftyTwoWeekHigh": 3990,
"fiftyTwoWeekLow": 2350,
"trailingPE": 14.703406,
"dividendYieldPercent": 8.62,
"financialCurrency": "IDR",
"totalRevenue": 149616007839744,
"revenueGrowthPercent": 6.4,
"profitMarginsPercent": 12.01,
"returnOnEquityPercent": 17.68,
"officerCount": 10,
"topOfficerName": "Ms. Dian Siswarini",
"topOfficerTitle": "President Director",
"officers": [
{"name": "Ms. Dian Siswarini", "title": "President Director", "age": 56, "yearBorn": 1969},
{"name": "Arthur Angelo Syailendra", "title": "Director of Finance & Risk Management and Director", "age": null, "yearBorn": null},
{"name": "Mr. Willy Saelan", "title": "Director of Human Capital Management & Director", "age": 55, "yearBorn": 1970}
],
"businessSummary": "Perusahaan Perseroan (Persero) PT Telekomunikasi Indonesia Tbk provides information and communications technology, and telecommunications network services worldwide. The company operates through Mobile, Consumer, Enterprise, Wholesale and International Business, and Other segments...",
"aiCompanySummary": "Perusahaan Perseroan (Persero) PT Telekomunikasi Indonesia Tbk is a leading telecommunications company in Indonesia, providing a wide range of information and communications technology services globally. With a market capitalization of approximately IDR 258.28 trillion and total revenue of IDR 149.62 trillion, the company demonstrates strong financial health, marked by a profit margin of 12.01% and a return on equity of 17.68%. It is publicly listed on the Indonesia Stock Exchange and employs over 17,000 people.",
"aiRiskFlags": {"level": "low", "flags": [], "note": "The company shows strong financial health and profitability with a solid market position."},
"aiRiskLevel": "low",
"aiIndustryCategory": "Communication Services",
"aiIndustryTags": {"subcategory": "Telecom Services", "activities": ["providing information and communications technology", "telecommunications network services", "mobile broadband services", "..."], "keywords": ["telecommunications", "ICT", "mobile services", "internet services", "..."]},
"source": "Indonesia Stock Exchange (IDX)",
"observedAt": "2026-08-14T08:12:31.709Z",
"error": null
}

The most complete Indonesian listed-company scraper available. It returns every KYB field the source exposes for each Jakarta / IDX issuer, from legal form and registered address to live share price, fundamentals and the full board roster, plus optional AI summary, risk flags and industry tags, and lets you look up companies by name, listing code or sector.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor resolves each company name or IDX listing code you pass to its Jakarta-listed equity, fetches the full company profile, and writes one normalized KYB record per company to the run's dataset. Each record carries the legal name, legal form (PT / Persero / Tbk), listing status, sector and industry, registered address, phone, fax, website and investor-relations site, employee count, market cap and currency, live share price and 52-week range, valuation and fundamentals (trailing P/E, dividend yield, total revenue, revenue growth, profit margins, return on equity), the top officer plus the full board/management roster, and a business summary. Missing source values are returned as null.

Coverage is exchange-listed Indonesian issuers (Jakarta / IDX). Optional AI add-ons write a KYB summary, flag compliance risks, and classify the company into a standardized industry taxonomy. A sectors filter keeps only companies whose sector or industry matches your terms.

Quickstart

Open the actor, paste this into the input, and press Run. It looks up one company by listing code with all three AI add-ons on.

{
"tickers": ["TLKM"],
"maxCompanies": 1,
"withAiCompanySummary": true,
"withAiRiskFlags": true,
"withAiIndustry": true
}

You can pass companyNames (for example ["Bank Central Asia", "Telkom Indonesia"]) instead of or alongside tickers. Provide at least one company name or listing code.

Input reference

FieldTypeRequiredDefaultDescription
companyNamesstring[]no*(8 sample names)Indonesian company names to look up, one lookup per item. Each is matched to its Jakarta / IDX listing. Example: ["Astra International"].
tickersstring[]no*(none)IDX listing codes to fetch directly, with or without the .JK suffix. Example: ["BBCA", "TLKM.JK"].
sectorsstring[]no(none)Keep only companies whose sector or industry contains one of these terms, for example Financial Services, Energy.
maxCompaniesintegerno30Maximum number of companies to return.
enrichContactsbooleannofalsePaid add-on. For each result without an email, attempt to find a public business contact email and person name. Billed per attempt, plus an extra charge only when an email is found.
enrichContactsMaxintegerno50Cap how many results the contact add-on tries to enrich. Free Apify accounts are capped at 3.
withAiCompanySummarybooleannofalseAI add-on. Writes a concise English KYB profile summary. Paid Apify plans only.
withAiRiskFlagsbooleannofalseAI add-on. Flags KYB/compliance risks with a low/medium/high level. Paid Apify plans only.
withAiIndustrybooleannofalseAI add-on. Classifies the company into a standardized industry taxonomy with activities and keyword tags. Paid Apify plans only.

*Provide at least one of companyNames or tickers.

Output reference

One dataset item per company. Types: string, integer, number, object, array, or null when the source value is absent.

FieldTypeDescription
tickerstringIDX listing code with .JK suffix.
namestringLegal company name.
legalFormstringLegal form derived from the name: PT, PT Tbk, PT (Persero) Tbk, or CV.
statusstringListing status (for example Listed (public)).
exchangestringAlways Indonesia Stock Exchange (Jakarta).
sectorstringBusiness sector.
industrystringIndustry.
addressLine1stringRegistered street address, line 1.
addressLine2stringRegistered street address, line 2.
citystringCity.
provincestringProvince / state, when exposed.
postalCodestringPostal code.
countrystringCountry. Defaults to Indonesia.
phonestringCompany phone.
faxstringCompany fax.
websitestringCorporate website.
investorRelationsWebsitestringInvestor relations site.
fullTimeEmployeesintegerFull-time employee count.
marketCapnumberMarket capitalization (in currency).
currencystringMarket/price currency (for example IDR).
sharePricenumberLast regular-market share price.
sharePriceChangePercentnumberRegular-market change, percent.
fiftyTwoWeekHigh / fiftyTwoWeekLownumber52-week price high / low.
trailingPEnumberTrailing price/earnings ratio.
dividendYieldPercentnumberDividend yield, percent.
financialCurrencystringCurrency of the financial statements.
totalRevenuenumberTotal revenue.
revenueGrowthPercentnumberRevenue growth, percent.
profitMarginsPercentnumberProfit margin, percent.
returnOnEquityPercentnumberReturn on equity, percent.
officerCountintegerNumber of officers on file.
topOfficerNamestringName of the top officer.
topOfficerTitlestringTitle of the top officer.
officersobject[]Full board/management roster, each with name, title, age, yearBorn.
businessSummarystringBusiness description (trimmed to 2000 characters).
aiCompanySummarystringAI KYB summary. null unless withAiCompanySummary is on.
aiRiskFlagsobjectAI risk object (level, flags, note). null unless withAiRiskFlags is on.
aiRiskLevelstringAI risk level (low/medium/high). null unless withAiRiskFlags is on.
aiIndustryCategorystringAI standardized industry category. null unless withAiIndustry is on.
aiIndustryTagsobjectAI subcategory, activities and keyword tags. null unless withAiIndustry is on.
sourcestringData source label.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"tickers": ["BBCA"], "maxCompanies": 1, "withAiCompanySummary": true, "withAiRiskFlags": true, "withAiIndustry": true}); the board roster is trimmed to the first three officers here:

{
"ticker": "BBCA.JK",
"name": "PT Bank Central Asia Tbk",
"legalForm": "PT Tbk",
"status": "Listed (public)",
"exchange": "Indonesia Stock Exchange (Jakarta)",
"sector": "Financial Services",
"industry": "Banks - Regional",
"addressLine1": "Menara BCA, Grand Indonesia",
"addressLine2": "Jl. M.H. Thamrin No. 1",
"city": "Jakarta",
"postalCode": "10310",
"country": "Indonesia",
"phone": "62 21 2358 8000",
"website": "https://www.bca.co.id",
"fullTimeEmployees": 27728,
"marketCap": 780045115195392,
"currency": "IDR",
"sharePrice": 6350,
"sharePriceChangePercent": -0.39,
"fiftyTwoWeekHigh": 8750,
"fiftyTwoWeekLow": 4820,
"trailingPE": 13.458808,
"dividendYieldPercent": 5.58,
"totalRevenue": 109295182020608,
"profitMarginsPercent": 53.12,
"returnOnEquityPercent": 21.82,
"officerCount": 10,
"topOfficerName": "Mr. Gregory Hendra Lembong",
"topOfficerTitle": "President Director",
"officers": [
{"name": "Mr. Gregory Hendra Lembong", "title": "President Director", "age": 51, "yearBorn": 1974},
{"name": "Mr. Armand Wahyudi Hartono", "title": "Deputy President Director", "age": 49, "yearBorn": 1976},
{"name": "Ms. Vera Eve Lim", "title": "Finance & Corporate Planning Director and Director", "age": 59, "yearBorn": 1966}
],
"aiCompanySummary": "PT Bank Central Asia Tbk is a leading commercial bank in Indonesia, providing a wide range of financial services including loans, deposits, investment products, and insurance. With a market capitalization of approximately IDR 780 trillion and a strong profit margin of 53.12%, the company demonstrates robust financial health. It is publicly listed on the Indonesia Stock Exchange and has been operational since 1955, employing over 27,000 staff.",
"aiRiskLevel": "low",
"aiIndustryCategory": "Financial Services",
"source": "Indonesia Stock Exchange (IDX)",
"observedAt": "2026-08-15T05:22:15.118Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~indonesia-companies-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"tickers":["BBCA","TLKM","BBRI"],"maxCompanies":10}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~indonesia-companies-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"companyNames":["Bank Mandiri","Unilever Indonesia"],"sectors":["Financial Services"],"maxCompanies":25}'

Apify CLI:

apify call scrapers_lat/indonesia-companies-scraper \
--input '{"tickers":["TLKM"],"maxCompanies":1}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per company record returned (result event). See the pricing tab for the current per-result price.
  • AI and contact add-ons bill separately. When on, the ai_company_summary, ai_risk_flags, ai_industry, and contact-enrichment events are charged only when they produce usable output. All are off by default.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 companies per run. Upgrade for higher maxCompanies.
  • AI add-ons require a paid Apify plan. On a free plan they are disabled for the run.

FAQ and troubleshooting

A run returned 0 records. Why? The name did not resolve to a Jakarta-listed company, or the listing code is not on IDX. Try the exact listing code in tickers (for example BBCA), or a more precise company name. Zero-result runs are not charged.

Which companies are covered? Exchange-listed Indonesian issuers on the Jakarta Stock Exchange (IDX). Private companies without a listing are not covered.

Do I get the full board or just the CEO? The full board/management roster is in officers, with each person's name, title, age and year born, in addition to the topOfficer fields.

Can I filter by sector? Yes. Pass one or more terms in sectors; only companies whose sector or industry matches are kept.

Why are the financial numbers so large? Amounts such as marketCap and totalRevenue are in the company's reporting currency (usually IDR), so the raw figures are large. Check currency and financialCurrency.

Is this an official IDX tool? No. This actor is independent and has no affiliation with the Indonesia Stock Exchange. It reads only publicly available company data. Use the results in accordance with the source's terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the Indonesia Stock Exchange. Accesses only publicly available company data. Use the results in accordance with the source's terms.