# Wikivoyage Travel Articles Scraper (`parseforge/wikivoyage-articles-scraper`) Actor

Pull travel guide articles from Wikivoyage. Returns destination title, description, full extract, thumbnail, language, page ID, geo coordinates (when available), content URLs, last revision timestamp. Look up specific destinations or search by keyword. Useful for travel apps and tourism research.

- **URL**: https://apify.com/parseforge/wikivoyage-articles-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Travel, Education, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🌍 Wikivoyage Travel Article Scraper

> 🚀 **Pull Wikivoyage city and country articles with description, image, geo-coordinates, language metadata, Wikidata link. Lookup or search.**

> 🕒 **Last updated:** 2026-05-08 · **📊 29 fields** per record · **Wikivoyage travel articles** · 30+ languages · description, extract, image, lat/lng, Wikidata link, revision · lookup or search

The **Wikivoyage Travel Article Scraper** pulls structured travel-article summaries from Wikivoyage (the Wikipedia for travel guides). Output includes thumbnail and original-image URLs (with widths and heights), page ID, title fields (raw, display, normalized, canonical), description and description source, summary extract (plain + HTML), page type, namespace, Wikibase item ID, language code and direction, last-modified timestamp, revision ID, geographic coordinates, and desktop / mobile / edit / revisions URLs.

Two modes in one Actor: lookup by article title (one per line - cities, countries, regions, parks, etc), and search via the opensearch API. The dataset covers Wikivoyage in 30+ languages.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Travel apps, content marketers, journalists, education platforms, ML researchers, hospitality tools | Travel-app destination summaries, content marketing, multi-language travel content, ML training, education |

---

### 📋 What the Wikivoyage Travel Article Scraper does

Five filtering workflows in a single run:

- 🔍 **Lookup mode.** One title per line, returns rich summary per place.
- 🔍 **Search mode.** Wikivoyage opensearch with ranked matches.
- 🌍 **30+ languages.** English, Spanish, French, German, Italian, Russian, Chinese, Japanese, etc.
- 🗺️ **Coordinates included.** Lat / lng for places when geo-tagged.
- 🔗 **Wikidata link.** Direct Wikibase item ID for cross-language joins.

> 💡 **Why it matters:** clean, server-side filtering and fresh data on every run.

---
### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan up to 1,000,000.</td></tr>
<tr><td><code>mode</code></td><td>string</td><td><code>"lookup"</code></td><td>lookup or search.</td></tr>
<tr><td><code>titles</code></td><td>string</td><td><code>""</code></td><td>Newline-separated article titles (lookup mode).</td></tr>
<tr><td><code>query</code></td><td>string</td><td><code>""</code></td><td>Search term (search mode).</td></tr>
<tr><td><code>language</code></td><td>string</td><td><code>"en"</code></td><td>Wikivoyage language code (en, es, fr, de, it, ru, zh, ja, etc).</td></tr>
</tbody>
</table>

**Example: look up cities.**

```json
{
    "maxItems": 50,
    "mode": "lookup",
    "titles": "Tokyo\nParis\nBarcelona\nNew York City\nKyoto\nLondon\nRome\nBerlin\nMadrid\nAmsterdam",
    "language": "en"
}
````

**Example: search Spanish destinations.**

```json
{
    "maxItems": 30,
    "mode": "search",
    "query": "playa",
    "language": "es"
}
```

***

### 📊 Output

Each record contains **29 fields**. Download as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🖼️ `thumbnailUrl` | string | `"https://upload.wikimedia.org/.../thumb.jpg"` |
| 📐 `thumbnailWidth` | number | `320` |
| 📐 `thumbnailHeight` | number | `213` |
| 🆔 `pageId` | number | `9651` |
| 📛 `title` | string | `"Tokyo"` |
| 📛 `displayTitle` | string | `"Tokyo"` |
| 📜 `description` | string | `"Capital of Japan and one of the world's largest cities"` |
| 📝 `extract` | string | `"Tokyo is the capital of Japan..."` |
| 📝 `extractHtml` | string | `"<p><b>Tokyo</b> is the capital of Japan..."` |
| 🏷️ `type` | string | `"standard"` |
| 🌐 `language` | string | `"en"` |
| 🔤 `languageCode` | string | `"en"` |
| 🔗 `wikibaseItem` | string | `"Q1490"` |
| 🗺️ `coordinatesLat` | number | `35.689` |
| 🗺️ `coordinatesLng` | number | `139.692` |
| 📅 `timestamp` | string | `"2026-04-29T14:32:11Z"` |
| 🆔 `revisionId` | number | `4823651` |
| 🌐 `desktopUrl` | string | `"https://en.wikivoyage.org/wiki/Tokyo"` |
| 📱 `mobileUrl` | string | `"https://en.m.wikivoyage.org/wiki/Tokyo"` |
| ✏️ `editDesktopUrl` | string | `"https://en.wikivoyage.org/wiki/Tokyo?action=edit"` |

#### 📦 Sample records

<details>
<summary><strong>🗼 Tokyo</strong></summary>

```json
{"pageId":9651,"title":"Tokyo","description":"Capital of Japan","coordinatesLat":35.689,"coordinatesLng":139.692,"wikibaseItem":"Q1490"}
```

</details>

<details>
<summary><strong>🗼 Paris</strong></summary>

```json
{"title":"Paris","coordinatesLat":48.857,"coordinatesLng":2.351,"wikibaseItem":"Q90"}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🌍 | **Travel-focused content.** Wikivoyage is the open-source Lonely Planet, with travel-relevant write-ups. |
| 🗺️ | **Coordinates per place.** Lat / lng for cities, parks, landmarks. |
| 🔗 | **Wikidata link.** Cross-language and external knowledge-graph joins. |
| 🌐 | **30+ languages.** Same Actor pulls summaries from any Wikivoyage language. |
| 🆓 | **No auth.** Wikivoyage REST is open. |

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ This Actor** | $5 free credit | **Wikivoyage** | Live per run | 2 modes | ⚡ 2 min |
| Wikivoyage REST direct | Free | Same | Live | DIY | 🐢 Code |
| Lonely Planet (paid) | $$ | Larger | Static | No | 🐢 Manual |
| Manual scraping | Free | All | Live | DIY | 🐢 Days |

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Find the Wikivoyage Travel Article Scraper on the Apify Store.
3. 🎯 **Set input.** Pick filters and `maxItems`.
4. 🚀 **Run it.** Click **Start**.
5. 📥 **Download.** Grab results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### ✈️ Travel Apps

- Destination summary cards
- Multi-language guides
- Itinerary builders
- Location-based discovery

</td>
<td width="50%" valign="top">

#### 📰 Travel Content

- Travel-blog backbones
- Newsletter destinations
- City-guide aggregators
- Multi-language SEO content

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🎓 Education + Geography

- Geography lesson materials
- Travel-vocabulary corpora
- Reproducible travel snapshots
- Learning-app destinations

</td>
<td width="50%" valign="top">

#### 🤖 ML + Localization

- Travel-text embeddings
- Multi-language translation training
- Location-extraction models
- Tourism datasets

</td>
</tr>
</table>

***

### 🔌 Automating Wikivoyage Travel Article Scraper

Control the scraper programmatically:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Travel-studies datasets
- Cross-language tourism corpora
- Reproducible destination snapshots
- Travel-vocabulary studies

</td>
<td width="50%">

#### 🎨 Personal and creative

- Personal travel logs
- Trip-planning side projects
- Travel-blog backbones
- Bucket-list apps

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Free travel-information resources
- Tourist-info kiosks
- Educational travel content
- Community wiki contributions

</td>
<td width="50%">

#### 🧪 Experimentation

- Train travel-summarization
- Prototype itinerary agents
- Build location-aware bots
- Test multilingual pipelines

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Wikivoyage%20Travel%20Article%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20Wikivoyage%20Travel%20Article%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20Wikivoyage%20Travel%20Article%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20Wikivoyage%20Travel%20Article%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick lookup or search mode and supply titles or a query. The Actor calls the Wikivoyage REST API and returns one record per article.

#### 📊 How many fields per record?

29, including thumbnail (with dimensions), page ID, title fields, description, extract (plain + HTML), language metadata, Wikibase item, coordinates, timestamps, and URLs.

#### 🌍 Which languages are supported?

Any Wikivoyage language. Set the language input to the standard code (`en`, `es`, `fr`, `de`, `it`, `ru`, `zh`, `ja`, etc).

#### 🗺️ Are geo-coordinates always present?

Only on geo-tagged articles (most cities, parks, landmarks). Topic articles may have null.

#### 🔗 What's the wikibaseItem field?

The Wikidata Q-number for the entity. Lets you join across languages and other knowledge bases.

#### 📜 Is the full guide returned?

No, only the summary lead. Use Wikivoyage's full-content API for the whole guide (Get In, See, Eat, Sleep, etc).

#### 🆓 Do I need an API key?

No. Wikivoyage REST is open.

#### 🔁 Can I schedule runs?

Yes. Schedule daily to refresh destination summaries.

#### ⚖️ Is this data free to use?

Yes. Wikivoyage content is licensed CC-BY-SA. Attribution required for redistribution.

#### 💳 Do I need a paid Apify plan?

No. The free plan covers preview runs (10 records).

***

### 🔌 Integrate with any app

Wikivoyage Travel Article Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets to Sheets

***

### 🔗 Recommended Actors

- [**🌍 REST Countries Reference Data**](https://apify.com/parseforge/rest-countries-scraper) - Every country with flag, capital, currency, languages
- [**🌍 GeoNames Places + Postal Codes**](https://apify.com/parseforge/geonames-places-scraper) - 12M+ places with admin hierarchy, lat/lng, alternate names
- [**📚 Wikipedia Article Summary**](https://apify.com/parseforge/wikipedia-rest-summaries-scraper) - Pull Wikipedia summaries with thumbnail, extract, geo and Wikidata link
- [**🌐 Wikidata Entity Search**](https://apify.com/parseforge/wikidata-entity-search-scraper) - 100M+ open knowledge-graph entities
- [**🧠 Open Trivia DB Questions**](https://apify.com/parseforge/opentdb-trivia-scraper) - Trivia questions across 24 categories with answers

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Wikimedia Foundation, Wikivoyage editors, or any individual contributor. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

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

lookup = direct titles; search = OpenSearch + summary fetch.

## `titles` (type: `string`):

Wikivoyage destination titles, one per line.

## `query` (type: `string`):

Free-text destination search.

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

ISO 639-1 (en, es, fr, de, it, pt, ru, ja, zh, etc.).

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "lookup",
  "titles": "Tokyo\nParis\nBarcelona\nNew York City\nKyoto",
  "query": "Italy",
  "language": "en"
}
```

# Actor output Schema

## `overview` (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 = {
    "maxItems": 10,
    "mode": "lookup",
    "titles": `Tokyo
Paris
Barcelona
New York City
Kyoto`,
    "query": "Italy",
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/wikivoyage-articles-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 = {
    "maxItems": 10,
    "mode": "lookup",
    "titles": """Tokyo
Paris
Barcelona
New York City
Kyoto""",
    "query": "Italy",
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/wikivoyage-articles-scraper").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 '{
  "maxItems": 10,
  "mode": "lookup",
  "titles": "Tokyo\\nParis\\nBarcelona\\nNew York City\\nKyoto",
  "query": "Italy",
  "language": "en"
}' |
apify call parseforge/wikivoyage-articles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/wikivoyage-articles-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wikivoyage Travel Articles Scraper",
        "description": "Pull travel guide articles from Wikivoyage. Returns destination title, description, full extract, thumbnail, language, page ID, geo coordinates (when available), content URLs, last revision timestamp. Look up specific destinations or search by keyword. Useful for travel apps and tourism research.",
        "version": "1.0",
        "x-build-id": "ZLPy1UlqqWtpOtXbw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~wikivoyage-articles-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-wikivoyage-articles-scraper",
                "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/parseforge~wikivoyage-articles-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-wikivoyage-articles-scraper",
                "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/parseforge~wikivoyage-articles-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-wikivoyage-articles-scraper",
                "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": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "lookup",
                            "search"
                        ],
                        "type": "string",
                        "description": "lookup = direct titles; search = OpenSearch + summary fetch.",
                        "default": "lookup"
                    },
                    "titles": {
                        "title": "Article titles (lookup mode)",
                        "type": "string",
                        "description": "Wikivoyage destination titles, one per line."
                    },
                    "query": {
                        "title": "Search query (search mode)",
                        "type": "string",
                        "description": "Free-text destination search."
                    },
                    "language": {
                        "title": "Wikivoyage language code",
                        "type": "string",
                        "description": "ISO 639-1 (en, es, fr, de, it, pt, ru, ja, zh, etc.)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
