Travelstart Flights Scraper | Africa OTA Fares
Pricing
from $3.00 / 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 $3.00 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day 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.
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 |
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"}
Field presence depends on mode and what the public page exposes for that run.
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
- Default run memory is 1024 MB (thin Actor; browser work runs on the 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.