Hostelworld Scraper – Hostels, Dorm Prices & Reviews avatar

Hostelworld Scraper – Hostels, Dorm Prices & Reviews

Pricing

from $1.50 / 1,000 property rows

Go to Apify Store
Hostelworld Scraper – Hostels, Dorm Prices & Reviews

Hostelworld Scraper – Hostels, Dorm Prices & Reviews

Search Hostelworld by city and get one row per hostel: name, type, 0-100 rating breakdown, lowest dorm and private prices, every photo, facilities, geo, address and policies. Add a check-in date for room-level availability. Reviews included. No Hostelworld account or API key needed.

Pricing

from $1.50 / 1,000 property rows

Rating

0.0

(0)

Developer

R.L.

R.L.

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

6

Monthly active users

2 days ago

Last modified

Categories

Share

Hostelworld Scraper searches Hostelworld by city and extracts every property it lists — all images, facilities, dorm and private room prices, the full ratings breakdown, geo, address, policies and reviews — from the app's own mobile API. It reads Hostelworld's API directly, so it's fast, reliable and complete — no flaky HTML parsing, no headless browser. Export to JSON, CSV, Excel, or an API.


Why use this Hostelworld Scraper?

  • No code required — set your input, click Start, download your data.
  • Fast & accurate — reads Hostelworld's own mobile API and returns structured JSON, not scraped HTML.
  • Rich, structured data — every field below, clean and ready to use.
  • A whole city in one run — Hostelworld returns a city's entire property list in a single response, so there are no pagination gaps to worry about.
  • Transparent pay-per-result pricing — pay only for the rows you get.
  • Export anywhere — JSON, CSV, Excel, XML, or pull it live via the Apify API.

What can you do with Hostelworld data?

  • Market & competitor research — compare every hostel in a city on price, rating and facilities.
  • Price & availability monitoring — set a check-in date and track dorm and private rates over time.
  • Data science & trend analysis — build clean datasets of hostel pricing and ratings.
  • Lead generation & enrichment — feed hostel names, addresses and geo into your own tools.

What data does the Hostelworld Scraper extract?

Each row is one property and includes id, name, type, url, overallRating, numberOfRatings, ratingBreakdown, pricePerNight, dormPricePerNight, privatePricePerNight, currency, city, country, district, address1, address2, latitude, longitude, distanceFromCentreKm, overview, images, imagesGallery, facilities — plus detail, rooms, reviews and reviewStatistics when enrichment runs. See the full field table below.


How do I scrape Hostelworld? (3 steps)

  1. Set the location — put a city (or a specific property name) in q.
  2. Pick options — a maxItems cap, currency, guests, and a dateStart if you want room-level prices.
  3. Run & export — click Start, then download the dataset as JSON/CSV/Excel or fetch it via the API.

What inputs does it take?

FieldTypeDefaultDescription
qstringLisbonA location to search: a city, neighbourhood, or property name (e.g. 'Lisbon'). Resolved via Hostelworld's own mobile autocomplete.
maxItemsinteger50Maximum number of properties to return (0 = all in the location).
numberOfGuestsinteger2Guests for pricing/availability.
dateStartstring–Check-in date YYYY-MM-DD (optional; enables live room prices).
numNightsinteger2Number of nights (1-31) for availability pricing.
currencystringEURISO currency code for prices (EUR, USD, GBP, ...).
includeDetailsbooleantrueFetch full detail + reviews for each property, and room/dorm availability when dateStart is set (slower, more requests).
proxyConfigurationobjectApify ProxyRoute requests through a proxy (Apify Proxy by default).

About q: it's resolved through Hostelworld's own autocomplete. The actor prefers a city match among the suggestions and otherwise takes the first result. A city name (e.g. "Lisbon") returns every property in that city (capped by maxItems); a specific property name (e.g. "Lisbon Calling") returns just that one property. If your query is ambiguous (a common word, a typo), you may get the wrong match — use the full, distinctive property or city name to be safe, and check the returned name/url match what you expected.

Example input

{
"q": "Lisbon",
"maxItems": 50,
"numberOfGuests": 2,
"dateStart": "2026-10-15",
"numNights": 2,
"currency": "EUR",
"includeDetails": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

What does a Hostelworld row look like?

Each result is a JSON object like this:

{
"id": 98483,
"name": "Avenue Hostel and Suites",
"type": "HOSTEL",
"url": "https://www.hostelworld.com/hostels/p/98483/avenue-hostel-and-suites/",
"overallRating": 91,
"numberOfRatings": "2100",
"pricePerNight": "15.70",
"dormPricePerNight": "15.70",
"privatePricePerNight": null,
"averagePricePerNight": null,
"originalPricePerNight": null,
"currency": "EUR",
"city": "Lisbon",
"country": "Portugal",
"district": { "id": "422", "name": "Rossio Square" },
"address1": "Beco dos Apostolos 6",
"latitude": 38.7185,
"longitude": -9.1447,
"distanceFromCentreKm": 1.36,
"distanceUnits": "km",
"starRating": 0,
"overview": "Avenue Hostel and Suites is located in the heart of Lisbon …",
"isFeatured": true,
"isPromoted": false,
"isNew": false,
"hostelworldRecommends": false,
"freeCancellationAvailable": false,
"freeCancellationAvailableUntil": "2026-07-10T13:17:28+01:00",
"promotions": [],
"images": [
"https://a.hwstatic.com/propertyimages/9/98483/rp6yw0yummxjw3i3lcys.jpg",
"…+3 more"
],
"imagesGallery": ["https://a.hwstatic.com/propertyimages/9/98483/xcy3ivw4o38qhbyvkyxu.jpg", "…+3 more"],
"ratingBreakdown": {
"ratingsCount": 122,
"security": 97, "location": 88, "staff": 93, "fun": 91,
"clean": 94, "facilities": 92, "value": 93, "average": 93
},
"facilities": [
{ "name": "General", "id": "FACILITYCATEGORYGENERAL", "facilities": [ "…" ] },
{ "name": "Services", "id": "FACILITYCATEGORYSERVICES", "facilities": [ "…" ] },
"…+11 more"
],
"rooms": {
"dorms": [ "…8 room types" ],
"privates": [ "…3 room types" ],
"cancellationPolicies": [ "…" ],
"depositPercentage": 15,
"vat": 0,
"promotions": [ "…" ],
"lowestPricePerNight": { "value": "30.01", "currency": "EUR" },
"lowestDormPricePerNight": { "value": "30.01", "currency": "EUR" },
"lowestPrivatePricePerNight": { "value": "105.16", "currency": "EUR" }
},
"detail": { "…": "description, about, directions, checkIn, policies, taxInfo, videos, raw, …" },
"reviews": [ "…" ],
"reviewStatistics": { "…": "…" }
}

Which fields are in each row?

FieldTypeDescription
id, name, typetextHostelworld property ID, name, and property type (e.g. HOSTEL)
urllinkProperty page on hostelworld.com
overallRatingnumberOverall score on Hostelworld's 0-100 scale
numberOfRatingstextHow many guest ratings the score is based on
ratingBreakdownobjectPer-category scores: security, location, staff, fun, clean, facilities, value, average, plus ratingsCount
pricePerNighttextLowest nightly price across all room types
dormPricePerNight / privatePricePerNighttextLowest dorm bed / private room nightly price
averagePricePerNight / averageDormPricePerNight / averagePrivatePricePerNighttextAverage nightly price over the stay (when Hostelworld exposes it)
originalPricePerNight / originalDormPricePerNight / originalPrivatePricePerNighttextPre-discount price (when a promotion applies)
currencytextCurrency of every price on the row
city, countrytextCity and country names
districtobjectNeighbourhood {id, name} — e.g. {"id": "422", "name": "Rossio Square"}
address1, address2textStreet address lines
latitude, longitudenumberCoordinates
distanceFromCentreKm / distanceUnitsnumber / textDistance from the city centre and its unit
starRatingnumberHotel-style star rating (0 for most hostels)
overviewtextShort property blurb, HTML stripped
promotionsarrayActive promotions/discounts on the property
isFeatured / isPromoted / isNew / hostelworldRecommendsbooleanPlacement and editorial flags
freeCancellationAvailable / freeCancellationAvailableUntilboolean / textFree-cancellation eligibility and deadline
images / imagesGalleryarrayFull-size property photo URLs and the extended gallery
facilitiesarrayFacilities grouped into categories (see the table below)
detailobjectFull detail projection: description, about, directions, hostelworldSays, checkIn, latestCheckOut, policies, cancellationPolicy, thingsToNote, paymentMethods, feeInfo, taxInfo, videos, maxNumberOfGuestsPerBooking, and the raw payload
roomsobjectRoom-level availability: dorms, privates, cancellationPolicies, depositPercentage, vat, promotions, and lowest total/dorm/private prices. Only present when dateStart is set.
reviews / reviewStatisticsarray / objectGuest reviews and their summary statistics

Any field can be null when Hostelworld doesn't expose it for a given property.


Which facility categories does Hostelworld report?

Facilities arrive grouped. These are the categories seen on a Lisbon property:

CategoryCategory
GeneralBedroom
ServicesFood & Drinks
EntertainmentSafety & Security
LaundrySocial Areas
Available for a FeeWellness
FreeKitchen
Hostelworld Policies

Each category carries its own list of individual facilities, so you can filter for things like a bar, free breakfast or lockers by checking the entries inside a category rather than parsing free text.


What do Hostelworld's price and rating terms mean?

  • Dorm vs private — a dorm price is per bed in a shared room; a private price is for the whole room. dormPricePerNight and privatePricePerNight are the cheapest of each, and pricePerNight is the cheaper of the two.
  • Lowest vs average vs original — lowest is the cheapest single night found, average is the mean across the nights of your stay, and original is the pre-discount price shown when a promotion applies. All three are strings with the currency in currency.
  • 0-100 rating — Hostelworld scores properties out of 100, not out of 5 or 10. 94 means 9.4/10 in the app's display.
  • starRating — the hotel-style star count, which is 0 for most hostels. Use overallRating for quality, not this.
  • Distance from centre — straight-line distance from the city centre, in the unit given by distanceUnits (km).

Pricing — pay per result

This actor uses pay-per-event pricing: you pay only for the rows it delivers.

EventPriceWhen charged
Property row$1.50 per 1,000 rowsEvery property returned.
Detailed profile+$1.50 per 1,000 rowsExtra, only when includeDetails is on and the property's detail payload was fetched successfully.

With includeDetails: true (the default), expect ~$3.00 per 1,000 properties. Set includeDetails: false to get listing-only data at $1.50 per 1,000.


How do I run it from the API?

Run it programmatically with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/hostelworld-api-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"q": "Lisbon",
"maxItems": 50,
"numberOfGuests": 2,
"numNights": 2,
"currency": "EUR",
"includeDetails": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}'

Or with the Apify CLI: apify call hostelworld-api-scraper -i input.json -o.


FAQ

Do I need a Hostelworld account or API key? No. The actor talks to Hostelworld's mobile API for you — you only need an Apify account.

How do I get dorm and private room prices per room type? Set dateStart (and numNights). The rooms object — every dorm and private room type with its rates, deposit percentage, VAT and cancellation policies — comes from Hostelworld's availability endpoint, which needs a date. Without dateStart you still get the property-level pricePerNight, dormPricePerNight and privatePricePerNight.

Can I scrape a whole city, not just the first page? Yes. Hostelworld's city endpoint returns the city's entire property list in one response, so a run with maxItems: 0 gets every property in that city. There is no page-by-page crawl to stall halfway.

Does it return guest reviews? Yes — reviews and reviewStatistics are fetched for each property when includeDetails is on.

Can I schedule it? Yes. Use Apify's Schedules to run it hourly or daily and append to the same dataset — the usual setup for tracking hostel prices for a city over time.

How is cost bounded? Set maxItems. You are charged per property row delivered, plus one detail charge per property when includeDetails is on, so maxItems is a hard ceiling on run cost. Turning includeDetails off halves it.

What happens if one property fails? Detail, availability and review fetches are best-effort per property: a failure is recorded on that record and the run continues, so one bad property never kills the run.

Do I need a proxy? A proxy is recommended for reliable runs; set proxyConfiguration (Residential is safest for geo-restricted or bot-protected sites).


How does it work?

The actor impersonates Hostelworld's official Android app and calls the same mobile API endpoints it does: autocomplete to resolve your location, the city properties endpoint to list it, then per-property detail, availability and reviews. Each response is normalised into the flat record above. No browser, no HTML scraping — just clean, structured data.


Good to know

  • Scrape only public listing data and respect Hostelworld.com's Terms of Service and robots policy.
  • For personal data (reviews carry reviewer details), comply with GDPR/CCPA and applicable law — you are the data controller.
  • Records are de-duplicated by property id, so the same hostel is never pushed twice.

Travel & booking toolkit

Part of the Travel & booking toolkit — search and pricing data across accommodation, transport, and travel-planning sites worldwide:

Did you find this useful?

Rate this actor on Apify! Your feedback helps other users find it and helps us keep improving it.