Travelstart Flights Scraper | Africa OTA Fares
Pricing
from $2.20 / 1,000 results
Travelstart Flights Scraper | Africa OTA Fares
Scrape Travelstart flight search results & airport suggestions across .com / .co.za / .com.ng / .co.ke. Extract fares, airlines, segments. Export Excel/CSV/JSON. Unofficial — not affiliated with Travelstart.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Travelstart Flights Scraper | Africa & Global OTA
Every Dataset row has a stable string id and rowType: flight_itinerary,
hotel, bus_trip, bus_location, or opt-in room. maxResults is the most
rows for each search route/query or each hotel ID (default 70), and is shared
across all row types for that input. Larger values are collected in parts of up
to 70 rows; the whole run stops at your maximum total charge. includeRooms=false
by default; when enabled, room/rate offers become separately billed rows while
the hotel retains room count and minimum/maximum room price.
Scrape Travelstart flight search results and airport / city suggestions across Africa and global Travelstart sites — then download structured itineraries as Excel, CSV, or JSON.
Use this Actor as a practical Travelstart flights data API for South Africa, Nigeria, Kenya, and the global .com market. Pick a country site, enter origin / destination IATA codes (or city text), set dates and cabin, and get Dataset rows with prices, airlines, segments, stops, and trip metadata.
- Scrape Travelstart flight search (return, one-way, multi-city style trips)
- Resolve airports / cities via suggestions (
lc.jsonautocomplete) - Cover hosts such as travelstart.com, travelstart.co.za, travelstart.com.ng, travelstart.co.ke
- Extract fares, airlines, segments, baggage flags, and outbound / inbound itineraries
- Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or the Apify API
- Pay per event — Actor start + each Dataset result; platform usage is included (you do not pay separate Apify compute on top)
Unofficial tool. This Actor is not affiliated with, endorsed by, or sponsored by Travelstart. It collects publicly reachable shopping surfaces and does not complete bookings or access private accounts.
What does the Travelstart Flights Scraper do?
Travelstart Flights Scraper lets you extract structured flight, hotel and bus inventory from Travelstart without running your own anti-bot browser fleet. Give it a route (for example JNB → CPT) or a city, dates, and a mode, then start a run.
Under the hood, the Actor:
- Validates your input (mode, country site, route, dates, cabin, travellers)
- Enforces free-tier caps when you are on a free Apify plan
- Calls the control-plane broker, which dispatches to the managed worker (
travelstart-com) on ns515786 - Reads Travelstart's own guest search answers (flights, hotels with prices, bus trips, suggestions) into normalized records
- Pushes Dataset rows ready for Excel / CSV / JSON export
- Writes
RUN_SUMMARY(andERROR_SUMMARYon failure) to the key-value store
You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.
What Travelstart data can I extract?
| Data | Flights | Hotels | Buses | Suggestions |
|---|---|---|---|---|
| Price / currency | ✅ total + fare breakdown | ✅ per stay, taxes, commission, discount | ✅ | — |
| Carrier / property | airline code + name | hotel name, type, stars, rating, reviews | bus line, service, class | — |
| Times / places | per-leg segments, airports, terminals, stops, duration | address, suburb, city, coordinates, distance | departure / arrival station and time | IATA, city, airport, locationId |
| Extras | baggage, cheapest / fastest flags, deep link | free cancellation, meal plans, images; details: hotel phone, postal code, policies, facilities, room offers | available seats | country |
| Trip types / options | return, one-way, multi-city; 4 cabins; 20+ markets | rooms, adults, children ages, currency | one-way / return | — |
Closed (clear failure, never a fake empty success): carsSearch (Travelstart's car pages sit behind Cloudflare Turnstile and the car API gateway answers 403) and packages (no package data endpoint).
Why scrape Travelstart?
Travelstart is a major African / global flight OTA with strong coverage in markets such as South Africa, Nigeria, and Kenya. Teams scrape Travelstart to:
- Monitor flight prices and availability on popular African routes
- Compare airline / fare signals for JNB, CPT, DUR, LOS, ABV, NBO, and more
- Enrich catalogs with airport / city suggestions (IATA + locationId)
- Feed BI dashboards, pricing tools, or AI agents with structured OTA rows
Compared with generic Google Flights or Skyscanner scrapers, this Actor targets Travelstart-specific shopping results across multiple Travelstart country sites in one input surface.
More Actors like this
Need another travel OTA or a different vertical? Use a dedicated Actor below for structured fields. Use this Actor for Travelstart flight search and airport suggestions across Africa sites.
Similar travel & stays Actors
- Booking.com Hotels Scraper
- Airbnb Listings Scraper
- Expedia Scraper
- Booking.com & Airbnb Scraper
- Agoda Scraper
- Trip.com Scraper
- Traveloka Scraper
- Despegar Scraper
- TripAdvisor Scraper
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
- LinkedIn Jobs Scraper
- Indeed Jobs Scraper
- Upwork Jobs Scraper
- Glassdoor Scraper
- Fiverr Gigs Scraper
- Bayt Jobs Scraper
E-commerce
- Walmart Product Scraper
- Amazon Search Scraper
- Shopee Search Scraper
- Etsy Scraper
- SHEIN Product Scraper
- Temu Product Scraper
- Allegro Scraper
- Cdiscount Product Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- Apartments.com Rental Scraper
- Rightmove Scraper
- Idealista Scraper
- realestate.com.au Scraper
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 Travelstart flights (no code required)
- Create a free Apify account
- Open Travelstart Flights Scraper
- Choose a mode:
flightsSearch(default) orsuggestions/airportSuggest - Choose a country site (default
travelstart.com) - Enter from + to (flights) or query (suggestions)
- (Optional) Set
departureDate/returnDate,tripType,cabin, travellers - Click Start and download the Dataset as JSON, CSV, Excel, or JSONL
Start with maxResults: 5–10 to verify the query, then scale up.
How much does it cost to scrape Travelstart?
This Actor uses pay-per-event pricing. You are charged for:
| Event | Price |
|---|---|
Actor Start (apify-actor-start) | $0.005 per start |
Result (apify-default-dataset-item) | $3.00 / 1,000 results ($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 (User pays platform usage costs = No).
Example cost estimates
| Results collected | Approx. 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)
| Cap | Value |
|---|---|
| Free Apify-plan runs of this Actor | 10 total |
| Free results / run | 200 |
| Paying Apify users | Unlimited 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:
| Field | Description |
|---|---|
mode | flightsSearch, suggestions, hotelsSearch, hotelDetails, hotelsRecommended, buses, busLocations (carsSearch / packages are closed) |
countrySite | travelstart.com (default), .co.za, .com.ng, .co.ke, or a market code (AE, EG, GH, TZ, BW, …) |
from / to | Flights: IATA or city. Buses: city names (IATA codes are turned into their city) |
query | Suggestions text; hotel city / place; bus stop name |
departureDate / returnDate | YYYY-MM-DD (return empty for one-way) |
tripType | return, oneway, multi (fill legs); roundtrip / multicity accepted |
legs | Multi-city: [{"from","to","departureDate"}, …] |
cabin | ECONOMY, PREMIUM, BUSINESS, FIRST |
adults / children / infants / youngAdults | Traveller counts (hotels: adults per room; buses: passengers) |
checkin / checkout / rooms / childrenAges / currency | Hotel stay (default check-in in 24 days, 1 night, ZAR) |
hotelIds | hotelDetails: ids from a hotel search (e.g. lp2a8f4) |
scrapeDetails | hotelsSearch: also read each hotel's details (its own phone, postal code, policies) |
includeRooms | Opt in to separately billed room/rate rows (default false) |
maxResults | Rows per search route/query or hotel ID, up to 1000 (default 70; collected in parts of up to 70) |
workerBaseUrl | Advanced allowlisted worker override (optional) |
Input example (flights)
{"mode": "flightsSearch","countrySite": "travelstart.co.za","from": "JNB","to": "CPT","tripType": "return","departureDate": "2026-08-20","returnDate": "2026-08-27","cabin": "ECONOMY","adults": 1,"maxResults": 20}
Input example (hotels in a city)
{"mode": "hotelsSearch","query": "Cape Town","checkin": "2026-11-10","checkout": "2026-11-12","adults": 2,"scrapeDetails": true,"maxResults": 30}
Input example (bus trips)
{"mode": "buses","from": "Johannesburg","to": "Cape Town","tripType": "oneway","departureDate": "2026-11-10","maxResults": 50}
Input example (suggestions)
{"mode": "suggestions","query": "Johannesburg","countrySite": "travelstart.com","maxResults": 8}
Output
You can download the dataset extracted by Travelstart Flights Scraper in formats such as JSON, HTML, CSV, or Excel.
Each Dataset item includes mode / site metadata plus fields such as:
| Field | Description |
|---|---|
mode / countrySite | Collection mode and Travelstart host |
direction | outbound, inbound, or bundled |
id | Itinerary id when present |
airlineCode / airlineName | Marketing / validating carrier signals |
amount / currencyCode / priceText | Price signals |
segments | Leg details (times, airports, flight numbers) |
stops / durationMs | Route complexity |
origin / destination | Requested route |
iata / locationId | Suggestion fields |
phones / emails | Business contact arrays; empty when the opened entity surface has no such contact |
address / geo | Structured location clues; area-level geography is not promoted to a street address |
person / org / web | Named contact, business identity, and entity-owned website/social links |
leadSource / leadReveal | Where the lead came from and how it was exposed |
leadAbsences | Per-field reason for missing lead data: 本站无, 闸门锁, or 未验证 |
capturedAt | Capture timestamp |
Output example
{"type": "flight_itinerary","mode": "flightsSearch","direction": "outbound","id": 0,"amount": 849,"currencyCode": "ZAR","priceText": "ZAR849","airlineCode": "FA","airlineName": "FlySafair","stops": 0,"origin": "JNB","destination": "DUR","countrySite": "travelstart.co.za","source": "travelstart_flightResults","phones": [],"emails": [],"address": {"street": null,"unit": null,"locality": null,"region": null,"postalCode": null,"country": null,"full": null},"geo": null,"person": null,"org": {"name": "FlySafair","id": "FA"},"web": {"website": null,"socials": []},"leadSource": "search","leadReveal": "visible","leadAbsences": {"phones": "本站无","emails": "本站无","geo": "本站无","address.street": "本站无","address.unit": "本站无","address.locality": "未验证","address.region": "本站无","address.postalCode": "本站无","address.country": "未验证","address.full": "本站无","person": "本站无","web.website": "本站无","web.socials": "本站无"}}
Field presence depends on mode and what the public page exposes for that run.
Lead and contact fields
Every emitted flight or suggestion row includes the complete lead shape below. Empty values are intentional only when leadAbsences explains why they are missing.
| Field | Type | Travelstart meaning |
|---|---|---|
phones | [{value, type, e164?}] | Entity-owned mobile, landline, WhatsApp, or similar numbers. Opened airport, airline, and car-provider surfaces did not expose these. |
emails | [{value, type}] | Entity-owned contact email. Travelstart support mailboxes are deliberately excluded from business rows. |
address | {street, unit, locality, region, postalCode, country, full} | Structured entity location. unit is the street/building number (门牌). City or airport-area text may populate locality/country, but it is not a full address. |
geo | {lat, lng} or null | Coordinates that supplement an address. Coordinates do not replace a missing street or unit. |
person | {name, role?} or null | Named person attached to the airport, airline, or provider. None was exposed on the opened business surfaces. |
org | {name, id?} or null | Airport, airline, or provider identity. The accepted flight run returned APG Airlines (A1) and Air Peace (P4). |
web | {website, socials[]} | Entity-owned website and social links. Travelstart corporate links are isolated and are not copied onto airline, airport, or provider rows. |
leadSource | search|detail|entity|contact|reveal-xhr | Surface that supplied the lead. Flights use search; airport/city suggestions use entity. Both come from guest-visible data. |
leadReveal | visible|click|xhr|gated|image|absent | How the lead became available. Current opened flight and suggestion fields use visible; no contact reveal click or XHR is required. |
leadAbsences | object | Per-field explanation using 本站无 (not present on the opened surface), 闸门锁 (blocked), or 未验证 (not established by the measured path). |
Suggestions may preserve only the parent area, for example Accra, even when recon observed the more specific airport organization Kotoka International Airport. The Actor keeps the upstream entity and geography as returned. It does not hardcode the recon sample or turn area-level text into a street, unit, postal code, or full address.
Reveal cost
- Flight organization fields come from the guest flight result payload (
sessionStorage.flightResults) and visible result/detail data. No booking, login, traveller, or payment step is opened. - Airport/city organization fields come from the public suggestions JSON. Suggestions have no pager and need no reveal click.
- Recon found no valid phone/email/address reveal control on the opened business surfaces, so the worker does not spend an extra click or XHR to manufacture contact fields.
- Browser work and residential egress run in the managed worker. The thin Actor only validates input, calls the worker, and writes Dataset rows.
Honest limitations
- On the opened airport, airline, and car-provider surfaces, entity phone, email, full street/unit address, named person, entity website, and entity social links are
本站无. These empty fields are accompanied byleadAbsences. - Flight rows may leave
address.localityandaddress.countryas未验证when the itinerary payload does not bind an area to the airline entity. - Travelstart Contact/About phone numbers, mailboxes, legal organization details, and corporate social accounts describe the platform itself. They are never attached to an airport, airline, itinerary, or car-provider lead.
- Hotel rows carry the hotel's own phone only after its details page is read (
scrapeDetailsorhotelDetails); until thenleadAbsences.phonesis未验证. Hotels have no email or website on Travelstart. - Hotel search prices are for the whole stay in the chosen currency; the old host
hotel.travelstart.comis dead (Cloudflare 522) and is not used. - Buses: Intercape, Carma and Eldo answer. intercity, Computicket and autopax are listed by Travelstart's stop search but its booking backend answers "Unknown provider" for them.
- Flight prices come in the market's currency; markets other than ZA / GO / KE search on travelstart.com with their own country code.
- Cars and packages are closed: Turnstile + 403 car API gateway; no package data endpoint.
Coverage matrix
| Dimension | Coverage |
|---|---|
| Country sites | travelstart.com (default) + .co.za / .com.ng / .co.ke + market codes (AE, BH, BW, DZ, EG, GH, JO, KW, LY, MA, ME, MW, NA, OM, PK, QA, SA, TN, TT, TZ) |
| Modes | flightsSearch · suggestions / airportSuggest · hotelsSearch · hotelDetails · hotelsRecommended · buses · busLocations |
| Measured 2026-10-09 | flights ZA / GO / KE / NG / AE / EG / GH / TZ / BW, multi-city, BUSINESS / PREMIUM; hotels Durban (443) and Cape Town (1017); buses JHB → CPT (Intercape 23, Eldo 17, Carma 2) |
| Closed | cars (Turnstile) · packages (no data endpoint) |
Tips for best results
- Prefer IATA codes (
JNB,CPT) over ambiguous city strings when possible - Use
maxResults: 2–5for first smoke tests, then raise the cap - Domestic South African routes often return separate outbound + inbound lists (
isBundled=false) - Do not rely on README sample inputs for production monitoring — rotate routes and dates
- Hotels: one city search returns the whole city (hundreds of hotels) in 5–30 s;
scrapeDetailsadds about a second per 4 hotels
Architecture and proxy ownership
Apify Actor (input, Dataset, free tier, Standby, PPE)│ HTTPS + WORKER_AUTH▼Control-plane broker /b/travelstart-com (event delivery)▼ns515786 worker travelstart-com (plain HTTP: guest search credential, parse, OpenAPI)▼Travelstart public flight / hotel / bus search APIs
The Actor never uses Apify proxies and does not send any proxy to the worker. The worker calls Travelstart directly and only falls back to the control plane's exit when a call is refused. Set WORKER_BASE_URL and secret WORKER_AUTH in Actor settings.
Run artifacts
| Key | Purpose |
|---|---|
INPUT_ECHO | Normalized non-secret input and resolved worker source |
RUN_SUMMARY | Worker, market, egress counts, search ids (correlation id / place / bus lines), free-tier, and record metrics |
ERROR_SUMMARY | Structured failure before valid records are emitted |
Integrations & API
- Schedule recurring Travelstart flight pulls from Apify Console
- Call the Actor from Python, Node.js, or
curlvia the Apify API - Connect to Make, n8n, Zapier, Google Sheets, or your BI stack
API example
curl -X POST "https://api.apify.com/v2/acts/lentic_clockss~travelstart-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "flightsSearch","countrySite": "travelstart.com","from": "JNB","to": "CPT","maxResults": 20}'
FAQ
Is login required?
No. The Actor targets publicly reachable Travelstart shopping / suggestion surfaces via the managed worker.
Can it book flights?
No. Booking, payment, and traveller checkout flows are intentionally excluded.
Why not cars or packages?
Travelstart's car pages are a third-party Meili embed behind Cloudflare Turnstile and its car API gateway answers 403; there is no package data endpoint. Those modes stay visible and fail with a clear reason. Hotels and buses are supported.
Do I pay Apify platform usage separately?
No for this Actor’s configured PPE plan — User pays platform usage costs = No. You pay the event prices above; platform usage is covered by the Actor developer.
How is this different from Google Flights scrapers?
This Actor scrapes Travelstart OTA results (Africa / global Travelstart hosts), not Google Flights aggregates. Use it when you need Travelstart-specific prices and suggestion IDs.
Legal & responsible use
Use this Actor only for lawful purposes and in line with Travelstart terms and applicable laws. You are responsible for how you store and use the data. Prefer low-volume smoke inputs first (maxResults: 2–5).
Our scrapers target publicly shared shopping / suggestion data. Results may still contain personal or business data depending on what the site exposes. Do not scrape personal data unless you have a legitimate reason. If unsure, consult your counsel.
Support
Questions or feature requests: open an issue on the Actor page in Apify Console or contact the developer through Apify.
Related Actors
All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Bayt Jobs Scraper
- Fiverr Gigs Scraper
- Freelancer.com Scraper
- Glassdoor Scraper
- Himalayas Jobs Scraper
- Indeed Jobs Scraper
- Jobicy Remote Jobs Scraper
- RemoteOK Jobs Scraper
- SEEK Jobs Scraper
- Upwork Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- 99.co Scraper
- Realtor.com Agents Scraper
- Apartments.com Rental Scraper
- Bayut Scraper
- Craigslist Housing Scraper
- Daft.ie Scraper
- Dot Property Scraper
- FINN.no Scraper
- Funda Scraper
- Hepsiemlak Scraper
- Idealista Scraper
- Immobiliare.it Scraper
- ImmoScout24 Scraper
- Naver Land Scraper
- OpenSooq Scraper
- Otodom Scraper
- Property Finder Scraper
- PropertyGuru Scraper
- realestate.com.au Scraper
- Realtor.ca Scraper
- Rightmove Scraper
- SeLoger Scraper
- SUUMO Scraper
- Zillow Group Scraper
E-commerce
- Shopee Search Scraper
- E-commerce Scraper
- 1688 Global Product Search Scraper
- Allegro Scraper
- Amazon Search Scraper
- ASOS Product Scraper
- Cdiscount Product Scraper
- Costco Product Scraper
- Coupang Product Scraper
- Etsy Scraper
- Lazada Scraper
- MercadoLibre Scraper
- Mercari Japan Scraper
- Rakuten Japan Scraper
- SHEIN Product Scraper
- Target Product Scraper
- Temu Product Scraper
- Walmart Product Scraper
Travel & Stays
- Booking.com & Airbnb Scraper
- Agoda Scraper
- Airbnb Listings Scraper
- Booking.com Hotels Scraper
- Despegar Scraper
- Expedia Scraper
- Traveloka Scraper
- Travelstart Flights Scraper
- Trip.com Scraper
- TripAdvisor Scraper
Social & Content
Ads Intelligence
Local & Maps
General Tools
→ Browse the full profile: apify.com/lentic_clockss