WikiVoyage Travel Guides Scraper avatar

WikiVoyage Travel Guides Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
WikiVoyage Travel Guides Scraper

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

Crawler Bros

Maintained by Community

Actor stats

7

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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 }


Get highlighted/featured destination articles from Wikivoyage.

Example: { "mode": "featured", "maxItems": 25 }


Input Parameters

FieldTypeDescriptionDefault
modeselectOperation mode: search, getGuide, listCountries, listCities, featuredsearch
searchQuerystringDestination keyword (mode=search)
destinationsstring[]Destination names to fetch (mode=getGuide)
startUrlsstring[]Wikivoyage article URLs (mode=getGuide)
countrystringCountry name for city listing (mode=listCities)
languageselectLanguage edition: en, de, fr, es, it, pt, nl, sv, pl, ru, jaen
includeFullContentbooleanParse and include full article sectionsfalse
maxItemsintegerMaximum records to return (1–500)50

Output Fields

Each record in the dataset contains:

FieldTypeDescription
titlestringDestination name
descriptionstringShort description or article extract
urlstringCanonical Wikivoyage article URL
typestringArticle type: city, region, country, continent, itinerary, or guide
thumbnailUrlstringThumbnail image URL (when available)
coordinatesobject{ lat, lon } GPS coordinates (when available)
countrystringCountry name (mode=listCities)
languagestringLanguage code (e.g. en)
scrapedAtstringISO 8601 timestamp
sectionsarray[{ 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:

CodeLanguageWikivoyage articles
enEnglish~30,000
deGerman~25,000
frFrench~15,000
esSpanish~10,000
itItalian~8,000
ptPortuguese~7,000
nlDutch~5,000
svSwedish~3,000
plPolish~3,000
ruRussian~3,000
jaJapanese~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 article
  • region — a regional destination (e.g., Tuscany, Patagonia)
  • country — a country-level guide
  • continent — a continent-level guide
  • itinerary — a travel route or road trip guide
  • guide — 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)