# Wikipedia Article Extractor (`receptional_blender/wikipedia-article-extractor`) Actor

Extract clean, structured Wikipedia articles as JSON — summary, description, canonical URL, thumbnail, geo-coordinates and optional full text — for any list of titles or a search query, in any language edition. Powered by Wikipedia's free public APIs; no key, login or proxy required.

- **URL**: https://apify.com/receptional\_blender/wikipedia-article-extractor.md
- **Developed by:** [Assia Fadli](https://apify.com/receptional_blender) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 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/platform/actors/running/actors-in-store#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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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 Article Extractor

Turn a list of titles — or a single search query — into **clean, structured Wikipedia articles**. For every article you get a flat JSON row with the summary, short description, canonical URL, thumbnail, language, page type and (when available) geo-coordinates, plus the **full article text** on demand.

Built on Wikipedia's **free public [REST API](https://en.wikipedia.org/api/rest_v1/) and [Action API](https://www.mediawiki.org/wiki/API:Main_page)** — no API key, no login and no proxy required.

### Why use it

- **Ready-to-use data.** Each article is flattened into predictable fields, so it drops straight into a spreadsheet, database or downstream model.
- **Titles or search — or both.** Feed exact titles, a search query, or a mix; results are merged and de-duplicated.
- **Any language edition.** Point it at `en`, `de`, `fr`, `es`, or any other Wikipedia edition.
- **Optional full text.** Flip one switch to also pull the complete plain-text body (truncated to ~5000 characters).
- **Robust by design.** Redirects are followed, missing pages are handled gracefully, and one bad title never fails the whole run — it is recorded with an `error` field instead.

### Pricing

This actor runs on a **pay-per-event** model: you are charged once per successfully extracted article (`article-scraped`). Rows that fail (for example, a title that does not exist) are written to the dataset but are **never** charged.

### Input

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `titles` | array | `["Web scraping", "Instagram"]` | Exact Wikipedia article titles to extract. Redirects are followed automatically. |
| `searchQuery` | string | — | Optional. Search Wikipedia and extract the matching articles. |
| `language` | string | `en` | Wikipedia language edition code. |
| `fullText` | boolean | `false` | Also extract the full plain-text body (adds one request per article). |
| `maxResults` | integer | `20` | Maximum number of articles to output (titles + search results combined). |

Provide at least one of `titles` or `searchQuery`.

#### Example input

```json
{
  "titles": ["Web scraping", "Instagram"],
  "language": "en",
  "fullText": false,
  "maxResults": 20
}
````

Or search instead:

```json
{
  "searchQuery": "web scraping",
  "maxResults": 5
}
```

### Output

Each dataset record looks like this:

```json
{
  "title": "Web scraping",
  "description": "Data scraping used for extracting data from websites",
  "extract": "Web scraping, web harvesting, or web data extraction is data scraping used for extracting data from websites…",
  "url": "https://en.wikipedia.org/wiki/Web_scraping",
  "thumbnail": null,
  "lang": "en",
  "type": "standard",
  "coordinates": null
}
```

| Field | Description |
| --- | --- |
| `title` | The resolved article title. |
| `description` | Short one-line description. |
| `extract` | Plain-text summary of the article. |
| `url` | Canonical desktop URL of the article. |
| `thumbnail` | Thumbnail image URL, or `null`. |
| `lang` | Language edition code. |
| `type` | Page type (`standard`, `disambiguation`, etc.). |
| `coordinates` | `{ lat, lon }` for geo-located articles, or `null`. |
| `fullText` | Full plain-text body (only when `fullText` is enabled). |

If an article can't be extracted (e.g. the page doesn't exist), the row is `{ "title": "<title>", "error": "<message>" }` instead.

### Data source

This actor uses Wikipedia's official public APIs:

- Summary (REST v1): `https://<lang>.wikipedia.org/api/rest_v1/page/summary/<title>`
- Full text & search (Action API): `https://<lang>.wikipedia.org/w/api.php`

The APIs are free and require no authentication. Per Wikipedia's [API etiquette](https://www.mediawiki.org/wiki/API:Etiquette), every request sends a descriptive `User-Agent` header.

### License

MIT © Assia Fadli

# Actor input Schema

## `titles` (type: `array`):

Exact Wikipedia article titles to extract (e.g. "Web scraping"). Redirects are followed automatically. Combine with a search query below if you like.

## `searchQuery` (type: `string`):

Optional. Search Wikipedia and extract the matching articles. Merged with any titles above and capped at Max results.

## `language` (type: `string`):

Wikipedia language edition code, e.g. "en", "de", "fr", "es".

## `fullText` (type: `boolean`):

Also extract the full plain-text article body (truncated to ~5000 characters). Adds one extra request per article.

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

Maximum number of articles to output (across titles and search results combined).

## Actor input object example

```json
{
  "titles": [
    "Web scraping",
    "Instagram"
  ],
  "language": "en",
  "fullText": false,
  "maxResults": 20
}
```

# 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 = {
    "titles": [
        "Web scraping",
        "Instagram"
    ],
    "language": "en",
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("receptional_blender/wikipedia-article-extractor").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 = {
    "titles": [
        "Web scraping",
        "Instagram",
    ],
    "language": "en",
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("receptional_blender/wikipedia-article-extractor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "titles": [
    "Web scraping",
    "Instagram"
  ],
  "language": "en",
  "maxResults": 20
}' |
apify call receptional_blender/wikipedia-article-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=receptional_blender/wikipedia-article-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wikipedia Article Extractor",
        "description": "Extract clean, structured Wikipedia articles as JSON — summary, description, canonical URL, thumbnail, geo-coordinates and optional full text — for any list of titles or a search query, in any language edition. Powered by Wikipedia's free public APIs; no key, login or proxy required.",
        "version": "1.0",
        "x-build-id": "Rfh10DLIuWkmkfTS4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/receptional_blender~wikipedia-article-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-receptional_blender-wikipedia-article-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/receptional_blender~wikipedia-article-extractor/runs": {
            "post": {
                "operationId": "runs-sync-receptional_blender-wikipedia-article-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/receptional_blender~wikipedia-article-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-receptional_blender-wikipedia-article-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "titles": {
                        "title": "Article titles",
                        "type": "array",
                        "description": "Exact Wikipedia article titles to extract (e.g. \"Web scraping\"). Redirects are followed automatically. Combine with a search query below if you like.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Search query (optional)",
                        "type": "string",
                        "description": "Optional. Search Wikipedia and extract the matching articles. Merged with any titles above and capped at Max results."
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Wikipedia language edition code, e.g. \"en\", \"de\", \"fr\", \"es\".",
                        "default": "en"
                    },
                    "fullText": {
                        "title": "Include full text",
                        "type": "boolean",
                        "description": "Also extract the full plain-text article body (truncated to ~5000 characters). Adds one extra request per article.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of articles to output (across titles and search results combined).",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
