WikiVoyage Travel Guides Scraper
Pricing
from $3.00 / 1,000 results
WikiVoyage Travel Guides Scraper
Scrape Wikivoyage, the free travel guide with 30,000+ destination articles. Search destinations, get full travel guides with sections, list countries/cities, and browse featured destinations. Supports 11 languages. No auth or proxy required.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(7)
Developer
Crawler Bros
Maintained by CommunityActor stats
7
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape travel guides from Wikivoyage — the free, open-content travel guide with 30,000+ destination articles in multiple languages. No authentication, no proxy, and no API key required.
What It Does
This actor fetches structured travel guide data from the public Wikivoyage/Wikimedia REST API, including destination descriptions, coordinates, thumbnail images, and full article sections. It works reliably on the Apify free plan.
Data Source
Wikivoyage is a Wikimedia project — a freely licensed travel guide written by volunteers. All data is available under the Creative Commons Attribution-ShareAlike 3.0 license.
API endpoints used (all public, no auth):
- Search:
https://{lang}.wikivoyage.org/w/rest.php/v1/search/page - Summary:
https://{lang}.wikivoyage.org/api/rest_v1/page/summary/{title} - Content:
https://{lang}.wikivoyage.org/w/rest.php/v1/page/{title}/with_html - Category:
https://{lang}.wikivoyage.org/w/api.php(MediaWiki action API)
Modes
search (default)
Search for destinations by keyword. Returns matching travel guide articles.
Required input: searchQuery
Example: { "mode": "search", "searchQuery": "Paris", "maxItems": 10 }
getGuide
Fetch the full travel guide for one or more specific destinations.
Required input: destinations (list of names) and/or startUrls (list of Wikivoyage URLs)
Example:
{"mode": "getGuide","destinations": ["Tokyo", "Rome", "Barcelona"],"includeFullContent": true}
listCountries
List all country-level travel guide articles from Wikivoyage.
Example: { "mode": "listCountries", "maxItems": 200 }
listCities
List city articles for a specific country.
Required input: country
Example: { "mode": "listCities", "country": "France", "maxItems": 100 }
featured
Get highlighted/featured destination articles from Wikivoyage.
Example: { "mode": "featured", "maxItems": 25 }
Input Parameters
| Field | Type | Description | Default |
|---|---|---|---|
mode | select | Operation mode: search, getGuide, listCountries, listCities, featured | search |
searchQuery | string | Destination keyword (mode=search) | — |
destinations | string[] | Destination names to fetch (mode=getGuide) | — |
startUrls | string[] | Wikivoyage article URLs (mode=getGuide) | — |
country | string | Country name for city listing (mode=listCities) | — |
language | select | Language edition: en, de, fr, es, it, pt, nl, sv, pl, ru, ja | en |
includeFullContent | boolean | Parse and include full article sections | false |
maxItems | integer | Maximum records to return (1–500) | 50 |
Output Fields
Each record in the dataset contains:
| Field | Type | Description |
|---|---|---|
title | string | Destination name |
description | string | Short description or article extract |
url | string | Canonical Wikivoyage article URL |
type | string | Article type: city, region, country, continent, itinerary, or guide |
thumbnailUrl | string | Thumbnail image URL (when available) |
coordinates | object | { lat, lon } GPS coordinates (when available) |
country | string | Country name (mode=listCities) |
language | string | Language code (e.g. en) |
scrapedAt | string | ISO 8601 timestamp |
sections | array | [{ heading, content }] — only with includeFullContent: true |
All fields are omit-empty: no null, empty strings, or empty arrays will appear in any record.
Example Output
{"title": "Paris","description": "Capital city of France, known for the Eiffel Tower.","url": "https://en.wikivoyage.org/wiki/Paris","type": "city","thumbnailUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_août_2014_%282%29.jpg/1200px-La_Tour_Eiffel_vue_de_la_Tour_Saint-Jacques%2C_Paris_août_2014_%282%29.jpg","coordinates": { "lat": 48.8566, "lon": 2.3522 },"language": "en","scrapedAt": "2026-05-17T10:00:00+00:00"}
Multi-Language Support
Change the language parameter to scrape any of 11 Wikivoyage language editions:
| Code | Language | Wikivoyage articles |
|---|---|---|
en | English | ~30,000 |
de | German | ~25,000 |
fr | French | ~15,000 |
es | Spanish | ~10,000 |
it | Italian | ~8,000 |
pt | Portuguese | ~7,000 |
nl | Dutch | ~5,000 |
sv | Swedish | ~3,000 |
pl | Polish | ~3,000 |
ru | Russian | ~3,000 |
ja | Japanese | ~2,000 |
Use Cases
- Travel planning apps — build destination databases from open content
- Chatbots and AI assistants — enrich travel queries with real guide data
- Research and datasets — aggregate travel information at scale
- SEO content — discover destination articles and related topics
- Map applications — extract coordinates for destinations worldwide
FAQs
Does this require an API key or account? No. Wikivoyage is an open Wikimedia project and all API endpoints are public.
Is there a rate limit? Wikivoyage APIs are generous for reasonable use. The actor includes automatic retry with backoff on 429/5xx responses.
Can I scrape non-English guides?
Yes — use the language parameter to switch to any of 11 supported Wikivoyage language editions.
How fresh is the data? Wikivoyage is continuously updated by volunteers. Data is fetched live on each run.
What is includeFullContent?
When enabled, the actor fetches the full article HTML and parses it into sections (e.g., "Understand", "Get in", "See", "Do", "Buy", "Eat", "Drink", "Stay safe"). This is slower but provides complete travel guide text.
What does the type field mean?
city— a city or town articleregion— a regional destination (e.g., Tuscany, Patagonia)country— a country-level guidecontinent— a continent-level guideitinerary— a travel route or road trip guideguide— other article types not matching the above
Technical Notes
- Pure HTTP (
httpx) — no browser or proxy needed - Works on the Apify free plan with zero configuration
- Output is omit-empty at every depth: no null fields in any record
- Respects Wikimedia API best practices (User-Agent header, retry on 429)