Hostelworld Scraper - Hostels, Hotels, Prices, Reviews & Events avatar

Hostelworld Scraper - Hostels, Hotels, Prices, Reviews & Events

Pricing

from $1.10 / 1,000 result rows

Go to Apify Store
Hostelworld Scraper - Hostels, Hotels, Prices, Reviews & Events

Hostelworld Scraper - Hostels, Hotels, Prices, Reviews & Events

Scrape Hostelworld hostels, hotels, guesthouses, B&Bs, apartments and campsites by city, property URL or ID. Extract prices, ratings, rooms, facilities, full reviews, Linkups events and attendee details.

Pricing

from $1.10 / 1,000 result rows

Rating

5.0

(1)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

2

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

Hostelworld Scraper: Hostels, Hotels, Prices, Reviews & Events

Hostelworld Scraper turns Hostelworld into a clean travel data API. Search any city for hostels, hotels, guesthouses, B&Bs, apartments or campsites, and get dorm and private-room prices, ratings, full guest reviews, Linkups events, who's going, room boards with bookable prices, facilities, policies and check-in times, by search, property URL or property ID, then export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Three ways in. Search a city by name (in any property type), paste property or city-search URLs, or give numeric property IDs. No URL building needed.
  • One row, everything inside. Each property carries its card data plus optional full details, the room board with per-night prices, its guest reviews and its Linkups events.
  • Reviews-only mode. Flip reviewsOnly and the dataset holds nothing but review rows, full text, per-category ratings, traveller details and owner replies.
  • Linkups events. Pub crawls, city walks and meetups hosted at each property, inside a date window you control.
  • Who's going. The traveller nationality mix heading to each property, as shown on the site.
  • Sorted output. Re-order listings by price, rating, review count or name, the website's own order is preserved on request.
  • Built for schedules. Incremental mode returns only new and changed properties on recurring runs, and a refused run fails loudly instead of returning an empty dataset.

Use Cases

  • Hostel and hotel market research: track dorm and private prices, ratings and review volumes across cities and property types.
  • Revenue and competitor monitoring: watch room boards, promotions and free-cancellation terms for a set of properties on a schedule.
  • Guest-experience analysis: collect full review text with per-category ratings (staff, security, location, atmosphere, cleanliness, facilities, value) and owner replies.
  • Event-led travel tools: surface Linkups events at hostels in the coming days, with participant counts.
  • Travel apps and AI agents: feed clean JSON into your booking assistant, map app or MCP-connected workspace.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
type"property" (reviews-only runs emit "review" rows)
propertyId / propertyName703 / "Circus Hostel"
propertyType"HOSTEL" (also "HOTEL", "GUESTHOUSE", …)
propertyUrlHostelworld page link
city / country / continent"Berlin" / "Germany" / "Europe"
address / addressFull"Weinbergsweg 1a" / "Weinbergsweg 1a, 10119"
latitude / longitude52.530147 / 13.401918
avgRating / numberReviews9.26 / 8087
sharedMinPrice / privateMinPricedorm / private from-price
lowestDormPricePerNight / lowestPrivatePricePerNightbookable prices from the room board
currency"EUR"
checkInFrom / checkInUntil / latestCheckOut0 / 23 / "12:00"
depositPercentage / freeCancellation15 / true
cancellationPolicy / cancellationPoliciesListpolicy text and labelled list
paymentMethods / facilities / roomsaccepted cards, facility names, room board with prices
description / hostelworldSays / directionsfull descriptive text
peopleGoing / peopleGoingCounttravellers heading there (nationality + avatar)
events / eventsCountLinkups events: name, description, schedule, participants, price
reviews / reviewsCount / reviewsSummarynested reviews, count and statistics
badges / imageUrls / sustainabilityawards and free-WiFi badges, photo gallery, tier
reviewsOnly output rowsreviewId, reviewDate, ratingOverall (0-10), ratingStaff, ratingSecurity, …, reviewText, ownerReply, reviewerNickname, reviewerNationality, travellerGroupType

Review rows are also exposed one-per-line in the Reviews output tab, and events in the Events tab, without any post-processing.

How to Use

  1. Pick a mode: search (by location) or url (paste property or city-search links). Property IDs work in both.
  2. Choose the property type and the enrichment you need (details, reviews, events, who's going).
  3. Set Max items to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search a city for hostels:

{
"mode": "search",
"locations": ["Berlin"],
"propertyType": "hostel",
"maxItems": 20
}

Hotels only, cheapest first, no reviews:

{
"mode": "search",
"locations": ["Lisbon"],
"propertyType": "hotel",
"sortBy": "price_low",
"includeReviews": false,
"maxItems": 50
}

Paste property or city-search links:

{
"mode": "url",
"startUrls": [
"https://www.hostelworld.com/hostels/p/703/circus-hostel/",
"https://www.hostelworld.com/hostels/europe/germany/berlin/"
]
}

Reviews only, top rated first:

{
"mode": "url",
"propertyIds": ["703"],
"reviewsOnly": true,
"reviewSort": "topRated",
"maxReviewsPerProperty": 100,
"maxItems": 100
}

All of these link shapes work in URL mode (one example of each is in the input's default):

  • Property page: https://www.hostelworld.com/hostels/p/703/circus-hostel/
  • Mobile share / deep link: https://www.hostelworld.com/st/hostel/703/circus-hostel/
  • City search, any property type: https://www.hostelworld.com/hostels/europe/germany/berlin/ or https://www.hostelworld.com/hotels/europe/germany/berlin/
  • Paginated search: the same with ?page=2 (walk starts there and moves forward)

City-search links walk forward page by page; property links and IDs fetch just that property.

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/hostelworld-scraper").call(run_input={
"mode": "search", "locations": ["Berlin"], "maxItems": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["propertyName"], item["avgRating"], item["sharedMinPrice"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/hostelworld-scraper').call({
mode: 'search', locations: ['Berlin'], maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset ID and the actor skips everything already collected there, so you don't pay twice.
  • Incremental mode (incrementalMode) is for scheduled runs over the same scope. Each property (or review, in reviews-only output) is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED or EXPIRED (only after a run that scanned the whole scope, only with emitExpired, and capped by the run's remaining Max items so a tombstone wave can never overspend it). stateKey names or shares the stored state. What drives UPDATED: price, rating, review-count, description/details text, rooms, facilities, events and people changes. What never does: the availability flag, the booked-today counter, rotating image URLs and scrape timestamps, override or extend that with ignoreFieldsForChanges.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch (by location) or url (paste links).
locationsarray["Berlin"]Cities to search (search mode).
propertyTypestringhostelhostel, hotel, guesthouse, bed-and-breakfast, apartment, campsite or accommodation.
districtstring(none)Narrow the search to one district.
sortBystringrecommendedrecommended, price_low, price_high, rating, reviews or name.
startUrlsarraysampleProperty or city-search URLs (url mode).
propertyIdsarray(none)Numeric property IDs; works in both modes.
maxItemsinteger20Stop after this many rows (properties, or reviews in reviews-only output).
maxPagesinteger500Safety bound for search-page walking; listings stop at maxItems regardless.
includeDetailsbooleantrueFull details per property (billed per property).
includeReviewsbooleantrueGuest reviews (billed per review).
maxReviewsPerPropertyinteger20Cap on reviews per property.
reviewSortstringnewestnewest, oldest, topRated or lowestRated.
allLanguagesbooleanfalseInclude machine-translated reviews in other languages.
includeEventsbooleantrueLinkups events (billed per event).
eventsDaysAheadinteger7Days to look ahead for events.
eventsPageSizeinteger8Cap on events per property.
includePeoplebooleantrueWho's going (nationality mix), included with details.
reviewsOnlybooleanfalseOutput only review rows.
currencystringEURISO code prices are returned in.
resumeFromRunIdstring(none)Continue one interrupted run.
incrementalModebooleanfalseReturn only new and changed rows on scheduled runs.
stateKeystring(none)Name or share an incremental-mode state.
emitUnchangedbooleanfalseAlso return (and bill) unchanged rows.
emitExpiredbooleanfalseAlso return (and bill) rows that disappeared.
ignoreFieldsForChangesarray(none)Extra fields that must never mark a row UPDATED.
proxyobjectApify ProxyConnection settings; datacenter works out of the box.
mcpConnectorsarray(none)Optional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which records are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"type": "property",
"propertyId": 703,
"propertyName": "Circus Hostel",
"propertyType": "HOSTEL",
"propertyUrl": "https://www.hostelworld.com/hostels/p/703/circus-hostel/",
"city": "Berlin",
"country": "Germany",
"addressFull": "Weinbergsweg 1a, 10119",
"latitude": 52.530147,
"longitude": 13.401918,
"avgRating": 9.26,
"numberReviews": 8087,
"sharedMinPrice": 21.24,
"privateMinPrice": 149.44,
"currency": "EUR",
"checkInFrom": 0,
"latestCheckOut": "12:00",
"facilities": ["Free WiFi", "Luggage Storage", "Self-Catering Kitchen"],
"rooms": [
{ "roomType": "4 Bed Mixed Dorm", "category": "dorms", "capacity": 4, "pricePerNight": 36.11 }
],
"reviewsCount": 20,
"reviews": [
{ "review_reviewId": "16686493", "review_ratingOverall": 5.1, "review_reviewText": "…", "review_ownerReply": null }
],
"eventsCount": 6,
"events": [
{ "eventId": 5487030, "name": "BVG Crawl", "totalParticipants": 12 }
],
"peopleGoingCount": 30,
"reviewsSummary": { "positiveCount": 251, "negativeCount": 5, "soloPercentage": 91.24 },
"scrapedAt": "2026-10-07T12:00:00+00:00"
}

Plan Requirement

The default connection (Apify datacenter) works out of the box: Hostelworld's own JSON gateway answers plain datacenter exits. If the default connection is refused, the actor automatically probes and fails over to a backup connection, tells you once when it does, and pins the results it could read. If every connection is refused, the run fails with a clear message instead of returning an empty result: a paid Apify plan (which includes proxy access) is required.

FAQ

How much does it cost?

Listing rows themselves carry no per-row surcharge. You pay per property whose full details you switch on, per review collected, and per Linkups event found. The Pricing tab shows the current rates. Use Max items and the per-property caps to control the cost of any run.

This actor collects only publicly available accommodation data. You are responsible for how you use it: follow Hostelworld's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Prices and ratings are generally facts, but photos and review text may be subject to third-party rights.

Can I get only the reviews of a property?

Yes. Turn on Output reviews only (reviewsOnly) and the dataset contains nothing but review rows, each with the property's name, city and ratings denormalized onto it. Use it together with reviewSort and maxReviewsPerProperty.

Can I get only new or changed properties on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated properties, and unchanged ones are not billed.

Why did my run fail instead of returning an empty dataset?

If the site refuses every request, the run stops with a clear message so "no matches" is never confused with "nothing could be read". Run it again in a few minutes. If only some sources could be read, you still get what was found.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

🔗 Want more travel data?

Pair this actor with these related scrapers from the same team:

🏨 Booking.com Hotels, Prices and Reviews Scraper
Scrape booking.com hotels, apartments, villas and hostels. Search any destination with...
🏨 Expedia Hotels Scraper
From $1/1K. Scrape Expedia.com hotel listings and reviews for any destination. Extract...
🏨 Vrbo Scraper
Extract vacation rental data from Vrbo.com by location, region, coordinates, property...
🏨 Airbnb Scraper
Scrape Airbnb stays by destination or link: nightly and total price, rating breakdown...
🏨 Caterer.com Scraper
Scrape UK hospitality jobs from Caterer.com, including chef, hotel, restaurant, bar, and...
🏨 Doc To Markdown MCP Server
An MCP server that converts documents to clean Markdown. Convert PDFs, Word docs, Excel...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.