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
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Travelstart Flights Scraper | Africa & Global OTA
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 inventory from Travelstart OTAs without running your own anti-bot browser fleet. Give it a route (for example JNB → CPT), 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 a managed Cloud Run worker (
travelstart-com) that completes the Angular flight search with residential egress - Reads guest-visible
flightResults/ suggestion payloads 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 search | Airport suggestions |
|---|---|---|
| Itinerary id / amount / currency | ✅ | — |
| Airline code / name | ✅ | — |
| Segments (times, airports, flight no.) | ✅ | — |
| Stops / duration | ✅ | — |
| Outbound + inbound (unbundled domestic) | ✅ | — |
| Fare breakdown signals | ✅ | — |
| IATA / city / locationId | — | ✅ |
| Country / countryIata | — | ✅ |
| Country site | ✅ | ✅ |
Not shipped as successful scrapes (schema waivers): hotelsSearch (Travelstart hotel subdomain was infrastructure-unavailable during recon), carsSearch (Meili + Turnstile), buses, packages — selecting these returns a clear failure instead of fake empty success.
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, airportSuggest (plus unsupported waivers) |
countrySite | travelstart.com (default), .co.za, .com.ng, .co.ke |
from / to | Origin and destination IATA or city text for flights |
query | Text for airport / city suggestions |
departureDate / returnDate | YYYY-MM-DD (return empty for one-way) |
tripType | return, oneway, multicity (roundtrip normalized to return) |
cabin | ECONOMY, PREMIUM, BUSINESS, FIRST |
adults / children / infants / youngAdults | Traveller counts |
maxResults | Cap on emitted Dataset rows |
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 (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 Search was closed by a Cloudflare 522 timeout during recon. The Actor reports that acquisition failure instead of emitting an empty hotel success. A current Hotel Detail business surface remains
未验证. - Cars Search, buses, and packages do not have a verified result/detail contract in this version. The visible car landing-page provider names do not prove contact data on a car result.
- The accepted live check was the single GO route
ACC→LOS, runfZt5MVbcbd8nHAMFd, with three rows. The smoke helper first drew a KE Suggestions cell even though the matrix marked all cellssmokeEligible=false; the saved input was constrained to the opened GO flight path before that one run. This is validation history, not a promise that every country-site flight shape was measured. - Resource figures describe different layers: the Apify Actor API may report a 512 MB default, the accepted Actor run explicitly used 1024 MB, and the browser worker deployment used 4 GiB / 2 CPU.
Coverage matrix
| Dimension | Coverage |
|---|---|
| Country sites | travelstart.com (default) + .co.za / .com.ng / .co.ke |
| Modes shipped | flightsSearch · suggestions / airportSuggest |
| Waivers | Hotels UNAVAILABLE · cars / buses / packages UNSUPPORTED |
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
- The thin Actor accepts up to 1024 MB. Its API default may still display 512 MB; the accepted live run explicitly used 1024 MB. Browser work runs on the separate 4 GiB / 2 CPU worker.
Architecture and proxy ownership
Apify Actor (input, Dataset, free tier, Standby, PPE)│ HTTPS + WORKER_AUTH▼Cloud Run worker travelstart-com (Patchright session, parse, OpenAPI)▼Travelstart public flight shopping / suggestion APIs
WORKER_PROVIDES_PROXY=1 is enabled by default. The Actor does not mint or transmit proxyUrl; proxy/egress is configured on the worker (including egress-control). 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, proxy source, 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 hotels or cars?
Hotels were unavailable (Cloudflare 522 on the hotel subdomain during recon). Cars use a third-party Meili embed with Turnstile. Those modes stay visible and fail with clear waiver errors.
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