Traveloka Scraper | Hotels Flights Activities SEA avatar

Traveloka Scraper | Hotels Flights Activities SEA

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Traveloka Scraper | Hotels Flights Activities SEA

Traveloka Scraper | Hotels Flights Activities SEA

Scrape Traveloka hotels, flights, activities, car rental, airport transfer & trains across SEA locales. Extract hotel IDs, prices, ratings & detail enrich. Export Excel/CSV/JSON. Unofficial — not affiliated with Traveloka.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

14

Total users

5

Monthly active users

7 days ago

Last modified

Share

Traveloka Scraper — Hotels, Flights & Activities (SEA)

Scrape Traveloka hotels with live prices for your dates, room rates, details and guest reviews — plus flight search results and the activities, car rental, airport transfer and train pages — across Southeast Asia. Download the results as Excel, CSV or JSON.

Use this Actor as a practical Traveloka hotels / flights data API for SEA price monitoring, OTA competitive research and travel catalogs. Type a destination such as Bali, Ubud, Bangkok or Singapore, pick your dates and get one billed Dataset row per entity: a hotel, a room offer, a guest review, a flight or another service result.

  • Hotels by destination name — Bali, Ubud, Jakarta, Bangkok… are looked up on Traveloka; no ids needed
  • Live prices for your dates — price per room per night (with and without taxes), crossed-out original price, total for the stay, in the locale's currency
  • Hotel details and rooms (enrichDetails) — hotel details stay on the hotel row; every bookable room is a separate room row with price, breakfast, refund and cancellation terms
  • Guest reviews (includeReviews) — up to 20 recent review rows per hotel plus the rating summary on the hotel
  • Whole area directories (hotelListUrl) — every hotel of a Traveloka area page (Ubud has 4,000+)
  • Flights for IATA routes, and the activities / car rental / airport transfer / trains pages
  • Locales for Indonesia, Malaysia, Singapore, Philippines, Thailand, Vietnam, Australia, Japan, Korea
  • Pay per event — Actor start + each entity row; platform usage is included

Unofficial tool. This Actor is not affiliated with, endorsed by, or sponsored by Traveloka or its affiliates. It collects publicly reachable shopping data and does not complete bookings, log in, or access private accounts.


What does the Traveloka Scraper do?

Give it a service, a destination (or flight route) and dates, then start a run. The Actor:

  1. Validates your input (dates must be in the future, check-out after check-in, at most 30 nights)
  2. Enforces free-tier caps when you are on a free Apify plan
  3. Sends the search to a managed worker that reads Traveloka's own hotel search (hotels) or opens the Traveloka pages (flights and the other services) over residential connections
  4. Turns the results into clean Dataset rows (one entity per row, numbers as numbers, prices in real currency units)
  5. Writes RUN_SUMMARY (and ERROR_SUMMARY on failure) to the key-value store

What Traveloka data can I extract?

DataHotels+ Details & rooms+ ReviewsHotel list URLFlightsActivities / Car / Transfer / Trains
Name, Traveloka id, URL✅✅✅✅✅✅ (link text + URL)
Price for your dates (per night, before tax, taxes, was-price, stay total)✅✅✅—✅ fare—
Traveloka "from" price———✅——
Stars, rating /10, review count, area, coordinates, photos✅✅✅✅——
Free cancellation, pay at hotel, deal label, sponsored flag✅✅✅———
Address, city, province, postal code, check-in/out time, rooms/floors, year built—✅————
Facilities, policies, description—✅————
Separate room rows: name, price, size, max guests, breakfast, refund & cancellation, rooms left—✅————
Separate review rows: score, text (+ original language), date, source; rating summary & tags—summary✅———
Airline, times, airports, duration, stops————✅—

Why scrape Traveloka?

Traveloka is one of the largest online travel platforms in Southeast Asia. Teams scrape Traveloka to:

  • Monitor hotel prices and availability by destination and stay dates
  • Compare room rates and cancellation terms across hotels
  • Track guest reviews and ratings over time
  • Compare flight fares on popular SEA routes (for example CGK–DPS)
  • Feed BI dashboards, pricing tools, or AI agents with structured SEA OTA rows


More Actors like this

Need another OTA or a different vertical? Use a dedicated Actor below for structured fields. Stay on Traveloka Scraper for Traveloka hotels and flights across SEA / regional locales.

Similar travel & stays scrapers

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

Jobs & Freelance

E-commerce

Real Estate

Social & Content

Ads Intelligence

Local & Maps

General tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape Traveloka (no code required)

  1. Create a free Apify account
  2. Open Traveloka Scraper
  3. Keep service = hotels and type a destination (default Bali), or choose flights and enter origin + destination IATA codes
  4. (Optional) Set check-in / check-out, adults, children's ages, rooms
  5. (Optional) Turn on Hotel details and rooms and/or Hotel reviews
  6. Click Start and download the Dataset as JSON, CSV, Excel, or JSONL

Start with maxResults: 5–10 to check the query, then scale up.


How much does it cost to scrape Traveloka?

This Actor uses pay-per-event pricing. You are charged for:

EventPrice
Actor Start (apify-actor-start)$0.005 per start
Entity row (apify-default-dataset-item)$3.00 / 1,000 rows ($0.003 each)

Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above.

Example cost estimates

Entity rows collectedApprox. event cost*
100~$0.31
1,000~$3.01
10,000~$30.01

*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).

Free Apify trial credit can cover a small test run — try maxResults: 5 first.

Free-tier caps (Actor developer limits)

CapValue
Free Apify-plan runs of this Actor10 total
Free rows / run200
Paying Apify usersUnlimited runs (schema max still applies)

These limits are enforced in Actor code (set by the Actor developer, not Apify). When the run cap is hit, the Actor finishes successfully with RUN_SUMMARY.status = FREE_TIER_LIMIT and a clear status message.


Input

Open the Input tab for the full form. Common fields:

FieldDescription
servicehotels (default), flights, activities, car_rental, airport_transfer, trains
destinationHotels: city / region / area name (Bali, Ubud, Bangkok). Flights: IATA code
geoIdHotels, optional: Traveloka's area id (e.g. 102746 = Bali) instead of a name
hotelListUrlHotels, optional: a Traveloka hotel area page to list completely
checkin / checkoutStay dates YYYY-MM-DD (default: 21 days ahead, 2 nights)
adults / childAges / roomsGuests and rooms; one age per child
enrichDetailsHotel details + separate bookable room rows (first 100 hotels across the run; default false)
includeReviews / maxReviewsUp to 20 separate recent review rows per hotel
origin / departureDate / tripType / cabinClassFlights
localeSite language and currency (en-sg = SGD, en-id = IDR, …)
maxResultsRows for this destination, geo ID, hotel-list URL, route, or other scalar target (default 70, Store prefill 3). Larger values continue in parts of 70; all row types share the input budget, and the run stops at your maximum total charge

Hotels example (default)

{
"service": "hotels",
"destination": "Bali",
"locale": "en-sg",
"checkin": "2026-11-20",
"checkout": "2026-11-22",
"adults": 2,
"maxResults": 50
}

Hotels with rooms and reviews

{
"service": "hotels",
"destination": "Ubud",
"locale": "en-id",
"checkin": "2026-11-20",
"checkout": "2026-11-21",
"childAges": [7],
"enrichDetails": true,
"includeReviews": true,
"maxReviews": 5,
"maxResults": 10
}

A whole area (Traveloka "from" prices)

{
"service": "hotels",
"hotelListUrl": "https://www.traveloka.com/en-id/hotel/indonesia/area/ubud-102771",
"maxResults": 200
}

Flights example

{
"service": "flights",
"locale": "en-sg",
"origin": "CGK",
"destination": "DPS",
"departureDate": "2026-11-20",
"maxResults": 10
}

Output

You can download the dataset extracted by Traveloka Scraper in JSON, HTML, CSV, Excel, or JSONL.

Example hotel row (live search, en-sg, 2 nights):

{
"rowType": "hotel",
"id": "148997",
"service": "hotels",
"type": "hotel",
"hotelId": "148997",
"name": "Aston Kuta Hotel & Residence",
"url": "https://www.traveloka.com/en-sg/hotel/indonesia/aston-kuta-hotel--residence-148997",
"accommodationType": "Hotels",
"starRating": 4.0,
"rating": 8.7,
"ratingScale": 10,
"reviewCount": 3271,
"area": "Kuta, Badung",
"latitude": -8.736414,
"longitude": 115.165602,
"price": 55.01,
"priceBeforeTaxes": 45.46,
"taxesAndFees": 9.55,
"totalPrice": 110.02,
"currency": "SGD",
"priceType": "per_room_per_night",
"freeCancellation": true,
"payAtHotel": false,
"rank": 1,
"checkin": "2026-11-20",
"checkout": "2026-11-22",
"nights": 2,
"destination": "Bali, Indonesia",
"geoId": "102746"
}

Every row has stable rowType and id fields. With enrichDetails, the hotel row also has address, postalCode, checkInTime, facilities, policies, description and reviewSources; it does not embed rooms. Each room is a separate rowType: "room" row with parentId, parentName, parentUrl, parentLocation, roomId, name, price, breakfast, refundable, cancellationPolicy and remainingRooms. With includeReviews, each review is a separate rowType: "review" row with the same parent hotel fields plus reviewId, rating, text, originalText, date and reviewSource.

maxResults counts all of those rows together for the run's single scalar search input. For example, maxResults: 3 may return one hotel and two room/review rows. Once that input's shared budget is full, the run stops; it does not collect maxResults children for every hotel. enrichDetails and includeReviews both default to false; enable them only when you want separately billed room or review rows. Attribute lists such as photos, facilities and policies remain on their entity row and are capped at 50 items. Rows from a hotelListUrl have priceType: "seo_from_price": that is Traveloka's "from" price for the hotel, not a price for your dates.


Tips for reliable Traveloka hotel scrapes

  1. Type the destination the way Traveloka names it (Ubud, Bali, Bangkok). If a name matches several places, pass geoId (shown in RUN_SUMMARY.diagnostics.destination).
  2. Use future dates; Traveloka prices change with dates and occupancy.
  3. enrichDetails makes extra requests only while rows can still fit the shared budget; it covers at most the first 100 hotels across the run.
  4. Sponsored hotels Traveloka places between the results are kept and marked sponsored: true.
  5. Do not attempt login, booking, or payment automation with this Actor.

Our scrapers are ethical and do not extract private account data. They only extract what is shown on publicly reachable shopping pages. Results may still contain personal data in some markets; personal data is protected by the GDPR and other regulations. You should not scrape personal data unless you have a legitimate reason. If you are unsure, consult your lawyers. This Actor is unofficial and not affiliated with Traveloka.


FAQ

Do I need a geoId for hotels?
No. Type a destination name; the Actor looks it up on Traveloka. geoId is there when you want an exact area.

Are hotel prices for my dates?
Yes for normal searches: price is per room per night for your dates and guests, totalPrice is the whole stay. Only hotelListUrl rows carry Traveloka's "from" price (priceType: "seo_from_price").

Can this Actor book hotels or log in?
No. Search, detail and review data only.

What about flights?
Flight results come from the Traveloka flight search page and can occasionally be empty when the search does not finish; the run then fails with a clear message instead of returning wrong rows.

Where can I get help?
Open an Issue on the Actor page with your input JSON (redact secrets) and the run URL.


All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss