# Wikipedia Company Scraper — Founded, HQ, Revenue, Employees (`foxlabs/wikipedia-company-scraper`) Actor

Extract structured company data from Wikipedia infoboxes — founded year, headquarters, revenue, employees, key people, industry, products, owner/parent, subsidiaries. Clean JSON from any Wikipedia article (English by default).

- **URL**: https://apify.com/foxlabs/wikipedia-company-scraper.md
- **Developed by:** [Berkan Kaplan](https://apify.com/foxlabs) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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

## Wikipedia & Wikidata Company Data — LEI, ISIN, Ticker

Turn a company name — or **an entire Wikipedia category** — into a structured record built around the identifiers that actually let you **join it to other datasets**: Wikidata QID, **LEI**, **ISIN**, **stock ticker** and official website, plus industry, country, headquarters, founding date, employees, parent company and founders. Optional infobox financials and monthly pageviews.

- 🔗 **Built for matching, not just reading** — LEI 68%, ISIN 73%, ticker 92%, official website 96% on a 598-company NYSE sweep (measured)
- 📚 **Category mode = real volume** — point it at "Companies listed on the New York Stock Exchange" and get **598 companies in 68 seconds**, not the handful you could type by hand
- 🏷️ **Readable, not raw** — referenced Wikidata entities are resolved to labels ("United States", not "Q30")
- 🆓 **No key, no proxy** — official Wikipedia, Wikidata and Wikimedia endpoints, batched and polite

### Quick start (API)

Four companies with identifiers, infobox financials and a year of pageviews:

```bash
curl -X POST "https://api.apify.com/v2/acts/foxlabs~wikipedia-company-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "lookup", "companies": ["Apple Inc.", "Shopify", "Siemens"], "includeInfobox": true, "pageviewMonths": 12 }'
```

Prefer no code? Open the **Input** tab, keep the prefilled companies, and press **Start**.

### What you get

| Field | Type | Description |
|---|---|---|
| `companyName` / `wikipediaUrl` | string | Article title and URL |
| `summary` | string | Lead paragraph of the article, plain text |
| `wikidataQid` / `wikidataUrl` | string | The Wikidata entity — your join key to the wider open-data graph |
| `officialWebsite` | string | Company website as recorded on Wikidata |
| `lei` | string | Legal Entity Identifier — the global regulatory ID |
| `isin` | string | Security identifier for the listed entity |
| `tickerSymbol` / `stockExchange` | string | Ticker and where it trades |
| `industry` / `country` / `headquarters` | string | Resolved to readable labels |
| `inception` | string | Founding date — `2006`, `1866-03` or `1976-04-01` depending on how precisely Wikidata records it |
| `employees` | number | Employee count where Wikidata has one |
| `parentOrganization` / `subsidiaries` / `founders` | string / array | Corporate relations, as labels |
| `legalForm` | string | e.g. public company, GmbH |
| `pageId` / `language` / `license` / `fetchedAt` | string | Provenance, including the CC BY-SA attribution |
| `infobox` | object | Optional: revenue, operating & net income, total assets, key people, products from the article infobox |
| `pageviewsMonthly` / `pageviewsTotal` / `pageviewsLatest` | array / number | Optional: monthly Wikipedia views — a public-attention signal |

#### Sample output

A real record (2026-07-31, trimmed):

```json
{
  "companyName": "Apple Inc.",
  "wikipediaUrl": "https://en.wikipedia.org/wiki/Apple_Inc.",
  "wikidataQid": "Q312",
  "officialWebsite": "https://www.apple.com/",
  "lei": "HWUPKR0MPOU8FGXBT394",
  "isin": "US0378331005",
  "tickerSymbol": "AAPL",
  "industry": "software industry",
  "country": "United States",
  "inception": "1976-04-01",
  "employees": 115000,
  "founders": ["Steve Wozniak", "Ronald Wayne", "Steve Jobs"],
  "infobox": { "revenue": "US$416 billion (2025)" },
  "pageviewsLatest": 171714,
  "license": "Text from Wikipedia/Wikidata, CC BY-SA 4.0"
}
```

Download as JSON, CSV, Excel or HTML, or read it from the API.

### Modes & options

- **Look up companies** — paste names as they appear on Wikipedia (or article URLs). Resolved in batches, so long lists stay quick.
- **Browse a category** — give one or more Wikipedia categories and the Actor walks them with continuation until the category is exhausted or your `maxResults` is hit. `categoryDepth` optionally follows subcategories.
- **Wikidata identifiers** — on by default; this is what makes the output joinable.
- **Infobox financials** — optional, one extra fetch per company; adds revenue and income figures Wikidata usually lacks.
- **Pageview history** — optional, 1-60 months of monthly views per company.

### Example inputs (copy & paste)

```jsonc
// 1) A short list, fully enriched
{ "mode": "lookup", "companies": ["Nestlé", "Siemens", "Toyota"], "includeInfobox": true }

// 2) Every NYSE-listed company Wikipedia knows
{ "mode": "category", "categories": ["Companies listed on the New York Stock Exchange"], "maxResults": 0 }

// 3) US software companies
{ "mode": "category", "categories": ["Software companies of the United States"], "maxResults": 1000 }

// 4) Attention trend for a brand set
{ "mode": "lookup", "companies": ["Shopify", "Etsy", "BigCommerce"], "pageviewMonths": 24 }

// 5) Deep sweep including subcategories
{ "mode": "category", "categories": ["Banks of Germany"], "categoryDepth": 1, "maxResults": 0 }
```

### Use cases

- **Entity resolution & data enrichment.** You have company names; you need something to match on. LEI, ISIN, ticker and the official domain are exactly the keys that link a name to registry, market and ownership datasets.
- **Building a company reference list.** Category mode gives you a clean, deduplicated universe (an index, a sector, a country) with identifiers attached.
- **Market and competitor research.** Industry, country, headquarters, founding date, employees, parent and subsidiaries in one flat row.
- **Brand attention tracking.** Monthly pageviews are a free, long-running proxy for public interest — schedule it and trend the series.
- **Knowledge-graph seeding.** Every row carries its Wikidata QID, so you can expand into the wider graph whenever you need more.

### Performance & cost

Official endpoints only, no proxy, no key, everything batched: articles 20 at a time (the API's own extract limit), Wikidata entities 50 at a time. Measured on the platform (2026-08-01): a **598-company category sweep took 68 seconds**; a 4-company lookup with infobox and 12 months of pageviews took 6 seconds. Each company appears once — when a category lists the same article under two titles, the rows are de-duplicated on the resolved page and the run reports how many it removed. Optional layers cost one extra request per company, so leave them off for big sweeps unless you need them.

### Integrations

**JavaScript** (`apify-client`):

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('foxlabs/wikipedia-company-scraper').call({
  mode: 'category', categories: ['Companies listed on the New York Stock Exchange'], maxResults: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

**Python** (`apify-client`):

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("foxlabs/wikipedia-company-scraper").call(run_input={
    "mode": "lookup", "companies": ["Apple Inc.", "Siemens"], "includeInfobox": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["companyName"], item.get("lei"), item.get("isin"))
```

Also works with **Make / n8n / Zapier**, scheduled runs, webhooks and the **Apify MCP server**.

### Data quality (measured 2026-07-31)

Category sweep, "Companies listed on the New York Stock Exchange", n = 598 (every row a distinct company — verified 0 duplicate pages):

| Field | Fill |
|---|---|
| Company name, summary | **100%** |
| Wikidata QID | **99.8%** |
| Official website | **96%** |
| Headquarters | 94% |
| Ticker symbol | 92% |
| Founding date | 91% |
| Country | 89% |
| Industry | 76% |
| ISIN | 73% |
| LEI | 68% |
| Employees | 21% |

**Read those honestly:** identifiers exist where Wikidata's editors recorded them. Big listed companies are well covered; employee counts are the weakest field at 21% because few company entities carry one. Nothing is inferred or guessed — an empty field means the source is empty. Every row carries its `license` string, because Wikipedia and Wikidata text is CC BY-SA 4.0 and attribution travels with the data.

### Joining this data to the rest of your stack

The identifier fields exist so the output slots straight into other datasets — that's the whole point:

| You have | Join on | Where it goes next |
|---|---|---|
| `lei` | Legal Entity Identifier | [LEI Company Ownership](https://apify.com/foxlabs/lei-company-ownership) for the registered legal entity, parent chain and registration status |
| `isin` / `tickerSymbol` | Security identifiers | Any market-data source; [SEC EDGAR Financials](https://apify.com/foxlabs/sec-edgar-financials) for US filers |
| `officialWebsite` → domain | The most reliable cross-source key | [Company Data Enrichment](https://apify.com/foxlabs/company-enrichment) and [Owler Intelligence](https://apify.com/foxlabs/owler-intelligence) — match on domain rather than name, which is where most enrichment goes wrong |
| `wikidataQid` | Wikidata entity | The wider open-data graph — every other identifier Wikidata holds for that company |
| `companyName` + `country` | Registry lookup | The foXLabs registry suite ([UK](https://apify.com/foxlabs/uk-company-data), [France](https://apify.com/foxlabs/france-company-data), [India](https://apify.com/foxlabs/indian-company-data), [Estonia](https://apify.com/foxlabs/estonia-company-data), …) |

A practical recipe: run category mode over your sector, keep the rows that carry an `lei`, and use those as the spine of your company list — LEI is a regulator-issued identifier, so it survives renames and acquisitions in a way company names do not.

### Pricing

**Pay per result** — billed per company record, with an Apify **free tier** to evaluate. The underlying endpoints are free, so there are no proxy or third-party costs.

### FAQ

**Where does the data come from?** The official [Wikipedia action API](https://www.mediawiki.org/wiki/API:Main_page), [Wikidata](https://www.wikidata.org) and the Wikimedia pageviews API. No key, no login.

**Why Wikidata rather than just the infobox?** Infoboxes are prose in a table; Wikidata is structured and carries the identifiers (LEI, ISIN, ticker, QID) that let you join records across datasets. Infobox parsing is still available for revenue and income figures Wikidata rarely stores.

**Can I get every company in an industry or country?** That's what category mode is for. Wikipedia's category system is the index — one category returned 598 companies in the measured run, and continuation keeps going until the category is exhausted.

**Why is `employees` often empty?** Because most Wikidata company entities don't record it (21% in the measured sweep). The infobox layer sometimes fills the gap.

**What does `inception` look like?** Whatever precision Wikidata holds: `1866`, `1866-03` or `1976-04-01`. Year-only dates are returned as a year rather than a fake full date.

**Is this legal / can I reuse it?** Wikipedia and Wikidata content is published under CC BY-SA 4.0 (Wikidata's structured data is CC0). Attribution is required for Wikipedia text — each row carries a `license` field to make that easy.

**Does it work for non-English companies?** Yes, if the company has an English Wikipedia article; the Wikidata layer is language-independent. Use the English title (e.g. "Nestlé", "Volkswagen Group").

### Troubleshooting

- **A company came back empty / was skipped** → the title didn't resolve to an English Wikipedia article. Check the exact spelling on Wikipedia (the run log names every skipped title), or pass the full article URL.
- **Fewer rows than the category has** → raise `maxResults` (0 = unlimited).
- **No `infobox` object** → that article has no infobox, or its rows use labels this Actor doesn't map; `infoboxStatus` says which.
- **No pageviews** → very new or rarely visited articles can have no data for the window.

### Notes, limits & legal

- Content belongs to Wikipedia/Wikidata contributors and is CC BY-SA 4.0 (structured Wikidata claims: CC0). Attribution is included in every row; keep it when you redistribute.
- Coverage mirrors Wikipedia's own coverage: large, listed and notable companies are well described; small private firms are usually absent entirely.
- The Actor sends a descriptive User-Agent with contact details, as Wikimedia's API etiquette asks.

### Support

Questions, a field you'd like added, or a custom build? Open the **Issues** tab, or e-mail **info@foxlabs.com.tr**. We reply fast.

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

### Changelog

#### 0.2 — 2026-07-31

- **Wikidata identifiers** (QID, LEI, ISIN, ticker, exchange, website) plus industry, country, HQ, inception, employees, parent, subsidiaries and founders, with referenced entities resolved to readable labels.
- **Category mode** — walk an entire Wikipedia category with continuation (measured: 598 companies in 68 seconds).
- **Optional layers** — infobox financials and monthly pageviews.
- **Three data bugs caught by pre-release testing:** ticker symbol lives as a qualifier on the stock-exchange statement, not as its own claim (fill 0% → 92%); year-only dates were emitted as invalid `1866-00-00` and now respect Wikidata's precision flag; and the article API caps extracts at 20 pages per request regardless of batch size, which had left `summary` ~40% filled — batching at 20 took it to 100%.

#### 0.1 — 2026-05-20

- Initial release: Wikipedia infobox HTML parsing for a supplied list of articles.

***

Part of the **[foXLabs data platform](https://data.foxlabs.com.tr/)** — official public-data company, ownership, registry & market intelligence scrapers. Browse the full suite at **[data.foxlabs.com.tr](https://data.foxlabs.com.tr/)**.

# Actor input Schema

## `mode` (type: `string`):

Look up companies = you provide the names or Wikipedia URLs. Browse a category = the Actor walks a Wikipedia category (e.g. every company listed on the NYSE) and returns all of them — that's the high-volume mode.

## `companies` (type: `array`):

Lookup mode. Company names as they appear on Wikipedia ("Apple Inc.", "Nestlé") or full article URLs. Up to 50 are resolved per request, so long lists stay fast.

## `categories` (type: `array`):

Category mode. Category names with or without the "Category:" prefix, e.g. "Companies listed on the New York Stock Exchange" or "Software companies of the United States". Each is walked page by page.

## `categoryDepth` (type: `integer`):

Category mode. 0 = only the category itself (recommended). 1-3 also walks subcategories, which multiplies the result count fast.

## `includeWikidata` (type: `boolean`):

Adds the joinable identifiers — Wikidata QID, LEI, ISIN, ticker, official website — plus industry, country, headquarters, inception, employees, parent, subsidiaries and founders, with QIDs resolved to readable labels.

## `includeInfobox` (type: `boolean`):

Also parses the article's infobox for figures Wikidata usually lacks — revenue, operating/net income, total assets, key people, products. Costs one extra page fetch per company.

## `pageviewMonths` (type: `integer`):

Adds monthly Wikipedia pageviews for each company — a public-attention signal you can trend over time. 0 = off. One extra request per company.

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

Hard cap on dataset rows. Set 0 for unlimited (a large category can hold thousands of companies).

## Actor input object example

```json
{
  "mode": "lookup",
  "companies": [
    "Apple Inc.",
    "Shopify",
    "Siemens",
    "Nestlé"
  ],
  "categories": [
    "Companies listed on the New York Stock Exchange"
  ],
  "categoryDepth": 0,
  "includeWikidata": true,
  "includeInfobox": true,
  "pageviewMonths": 12,
  "maxResults": 200
}
```

# Actor output Schema

## `companies` (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 = {
    "mode": "lookup",
    "companies": [
        "Apple Inc.",
        "Shopify",
        "Siemens",
        "Nestlé"
    ],
    "categories": [
        "Companies listed on the New York Stock Exchange"
    ],
    "categoryDepth": 0,
    "includeWikidata": true,
    "includeInfobox": true,
    "pageviewMonths": 12,
    "maxResults": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("foxlabs/wikipedia-company-scraper").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 = {
    "mode": "lookup",
    "companies": [
        "Apple Inc.",
        "Shopify",
        "Siemens",
        "Nestlé",
    ],
    "categories": ["Companies listed on the New York Stock Exchange"],
    "categoryDepth": 0,
    "includeWikidata": True,
    "includeInfobox": True,
    "pageviewMonths": 12,
    "maxResults": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("foxlabs/wikipedia-company-scraper").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 '{
  "mode": "lookup",
  "companies": [
    "Apple Inc.",
    "Shopify",
    "Siemens",
    "Nestlé"
  ],
  "categories": [
    "Companies listed on the New York Stock Exchange"
  ],
  "categoryDepth": 0,
  "includeWikidata": true,
  "includeInfobox": true,
  "pageviewMonths": 12,
  "maxResults": 200
}' |
apify call foxlabs/wikipedia-company-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/NfmTr6hzXeDmLud4m/builds/FVOgQnr6iyTKay0fK/openapi.json
