Skiplagged Scraper 💰$2.50/1k — Flights & Hotels
Pricing
from $2.50 / 1,000 result rows
Skiplagged Scraper 💰$2.50/1k — Flights & Hotels
Skiplagged flights, hidden-city fares, flex calendars, and hotel rates in one actor. One JSON or CSV row per itinerary, date, or hotel — airlines, stops, and times included. Search by route, paste a /flights/ or /hotels/ URL, or set destination to anywhere. $2.50 per 1,000 results.
Pricing
from $2.50 / 1,000 result rows
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Skiplagged Scraper — Hidden-City Fares, Calendars, Hotels
Turn a Skiplagged route, /flights/ URL, or hotel city into structured rows: itineraries (price, airlines, stops, hidden-city flag, booking partners), a flexible-date min/max calendar, or hotel nightly rates. One-way, round-trip, anywhere, or a batch of routes. JSON or CSV out. $1 / 1,000 results.
Why Use This Scraper?
- Search by airport/metro code, a batch of routes, a pasted Skiplagged URL, or
destination: anywhere - Hidden-city and self-transfer itineraries, with include/exclude filters
- Flexible-date calendar (
mode: flexible) and Skiplagged hotel rates (mode: hotels) - Time-of-day, airline allow/deny, price band, nonstop, max stops
- Empty fields are omitted from each row
- Pure HTTP — no browser, no login, proxy optional
- $1 / 1,000 results
Overview
Built for fare monitors, travel agencies, and anyone comparing Skiplagged against Google Flights or Skyscanner.
The dataset is itinerary-shaped. A round-trip search returns outbound and inbound rows, each tagged with legType. Combined Skiplagged totals land on outbound rows as minRoundTripPrice.
Skiplagged prices each leg as its own one-way ticket. That is how hidden-city and self-transfer deals are quoted on the site, and the actor mirrors it.
Supported Inputs
| Input | Pattern | Example |
|---|---|---|
| Route fields | IATA or metro code + dates | origin: NYC, destination: LON, departDate: 2026-10-11 |
| Round-trip | add returnDate | 2026-10-18 |
| Batch routes | mode: byRoutes | [{ "origin": "SFO", "destination": "TYO", "departDate": "2026-10-05" }] |
| Skiplagged URL | /flights/{ORIG}/{DEST}/{date}[/{return}] | https://skiplagged.com/flights/NYC/LON/2026-10-11/2026-10-18 |
| Anywhere | destination: anywhere or /flights/NYC/anywhere/{date} | popular dests from the origin |
| Flexible dates | mode: flexible | one calendar row per date (min/max USD) |
| Hotels | mode: hotels + hotelCity | nightly + stay total, stars, reviews |
Metro codes work the same as on skiplagged.com: NYC covers JFK/LGA/EWR, LON covers LHR/LGW/STN/LTN/LCY.
Not supported: account/login URLs, or Skiplagged's official MCP server. This actor reads the public search, flex, and hotel JSON endpoints.
Copy-pasteable startUrls
{"mode": "byUrls","startUrls": ["https://skiplagged.com/flights/NYC/LON/2026-10-11/2026-10-18","https://skiplagged.com/flights/JFK/LAX/2026-10-11"]}
Use Cases
| Who | What they do with the rows |
|---|---|
| Fare-alert products | Track a route over time and fire when price drops |
| Travel agencies | Compare provider quotes across a client batch in one run |
| Corporate travel | Bulk-check employee itineraries |
| Price-comparison tools | Feed live Skiplagged fares into another search product |
| Market research | Airline mix, stop counts, and hidden-city share on a route |
How It Works

- Your input — origin, destination, and dates; a
routesarray; a Skiplagged/flights/or/hotels/URL;anywhere; or hotel city. - Public JSON —
search.php?format=v3for itineraries (polled until complete),flex.phpfor calendars,hotel_search.phpfor hotels. No browser. - Join + flatten — itineraries join to flight segments. Prices (US cents) become USD; durations (seconds) become minutes.
- Filters — nonstop, stops, price, airline allow/deny, hidden-city, depart/arrive clock, sort,
maxItems. - Your dataset — one row per itinerary, calendar date, or hotel. Empty fields are dropped.
Input Configuration
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byRoutes / byUrls / flexible / hotels |
origin | string | NYC | Origin IATA or metro code |
destination | string | LON | Destination IATA, metro code, or anywhere |
departDate | string | 6 weeks out | YYYY-MM-DD |
returnDate | string | — | YYYY-MM-DD; omit for one-way |
routes | array | — | {origin, destination, departDate, returnDate} objects |
startUrls | array | — | Skiplagged /flights/ URLs |
tripType | string | auto | auto / one-way / round-trip |
cabinClass | string | economy | Requested cabin; real fareClass is always on the row |
adults / children / infantsLap / infantsSeat | int | 1 / 0 / 0 / 0 | Passenger mix (see FAQ) |
directOnly | bool | false | Nonstop only |
maxStops | int | — | Drop itineraries with more stops |
minPrice / maxPrice | int | — | USD band |
airlines | array | — | IATA allow-list (AA, BA, …) |
excludeAirlines | array | — | IATA deny-list |
hiddenCityOnly / excludeHiddenCity | bool | false | Keep or drop hidden-city rows |
departAfter / departBefore / arriveAfter / arriveBefore | string | — | Local HH:MM clock filters |
flexDays | int | — | Also search ±N days (max 7) |
hotelCity / rooms | string / int | — | Hotel city (or slug / id) and room count |
sortBy | string | price | price / duration / departureTime / stops |
maxItems | int | 50 | Cap across all routes (1–1000) |
proxy | object | off | Optional; the public API answers without a proxy |
Example: one-way
{"mode": "search","origin": "JFK","destination": "LAX","departDate": "2026-10-11","directOnly": true,"maxItems": 20}
Example: round-trip with a price cap
{"mode": "search","origin": "NYC","destination": "LON","departDate": "2026-10-11","returnDate": "2026-10-18","maxPrice": 800,"sortBy": "duration"}
Example: batch routes
{"mode": "byRoutes","routes": [{ "origin": "NYC", "destination": "LON", "departDate": "2026-10-11" },{ "origin": "SFO", "destination": "TYO", "departDate": "2026-10-05", "returnDate": "2026-10-19" }],"maxItems": 100}
Example: hidden-city only, mornings
{"origin": "JFK","destination": "LAX","departDate": "2026-10-11","hiddenCityOnly": true,"departAfter": "06:00","departBefore": "12:00"}
Example: flexible-date calendar
{"mode": "flexible","origin": "JFK","destination": "LAX","departDate": "2026-10-23","maxItems": 40}
Example: anywhere from NYC
{"origin": "NYC","destination": "anywhere","departDate": "2026-10-23","maxItems": 40}
Example: hotels
{"mode": "hotels","hotelCity": "New York","departDate": "2026-10-23","returnDate": "2026-10-30","rooms": 1,"adults": 2,"maxItems": 30}
Output Overview
recordType is skiplaggedFlight, skiplaggedCalendar, or skiplaggedHotel. Round-trips emit outbound and inbound flight rows. Segments and layovers stay nested; empty fields are omitted.
Prices are USD. Skiplagged's API stores cents; the actor divides by 100.
Output Samples
One-way JFK → LAX (live search, October 2026):
{"flightId": "8b83695","recordType": "skiplaggedFlight","legType": "outbound","originAirport": "JFK","originCity": "New York","destinationAirport": "LAX","destinationCity": "Los Angeles","departureTime": "2026-10-11T06:00:00-04:00","arrivalTime": "2026-10-11T09:11:00-07:00","duration": "6h 11m","durationMinutes": 371,"stops": 0,"direct": true,"hiddenCity": false,"primaryAirline": "American Airlines","airlineCodes": ["AA"],"price": 254,"currency": "USD","fareClass": "economy","bookingProviders": ["FAST"],"sourceUrl": "https://skiplagged.com/flights/JFK/LAX/2026-10-11"}
Connecting NYC → LON (2 stops, round-trip quote on the outbound row):
{"flightId": "001ada3","legType": "outbound","originAirport": "LGA","destinationAirport": "LHR","stops": 2,"direct": false,"duration": "29h","primaryAirline": "Air Canada","price": 298,"minRoundTripPrice": 706,"layovers": [{ "airport": "YUL", "durationMinutes": 915, "duration": "15h 15m" },{ "airport": "YOW", "durationMinutes": 297, "duration": "4h 57m" }]}
Key Output Fields
Route — originAirport, originCity, originState, originCountry, destinationAirport, destinationCity, legType, sourceUrl
Schedule — departureTime, arrivalTime, duration, durationMinutes, stops, direct, segments[], layovers[]
Money — price, currency, minRoundTripPrice, fareClass, requestedCabinClass
Carriers — primaryAirline, airlines[], airlineCodes[], bookingProviders[] (names), bookingProviderCodes[]
Flags — hiddenCity, recordType, flightId, bookingUrl, scrapedAt
Calendar — departDate, returnDate, minPrice, maxPrice
Hotel — hotelId, name, nightlyPrice, price, starRating, reviewScore, photos[]
FAQ
Which Skiplagged URLs are supported?
Flight-search pages: https://skiplagged.com/flights/{ORIG}/{DEST}/{YYYY-MM-DD} (including /anywhere/). Hotel pages: https://skiplagged.com/hotels/{city}/{checkin}/{checkout}. Homepage and account URLs are ignored.
Why does a round-trip return two rows?
Skiplagged prices each leg as its own one-way ticket. Outbound rows carry minRoundTripPrice when Skiplagged quoted a combined total.
What is hiddenCity?
true when the last landing airport is not one of the airports for the destination you asked for — the classic “fly toward X, get off at Y” pattern Skiplagged is known for. Baggage and missed-leg rules still apply; confirm on skiplagged.com before booking.
Why is fareClass still economy when I asked for business?
Skiplagged's public search mostly returns economy inventory. The row always reports the cabin Skiplagged actually sent (fareClass) next to your requestedCabinClass.
Why don't passenger counts change the price?
Passenger counts are sent on the search URL. The logged-out API often still prices 1 adult. Output adults / children / infantsLap / infantsSeat are whatever Skiplagged returned for that itinerary.
What does bookingProviders mean?
Partner names (Fast, Orbitz, Expedia, …) mapped from Skiplagged's source codes. bookingProviderCodes keeps the raw codes (FAST, ORB). bookingUrl is the Skiplagged search or hotel page where you complete the booking — book.php is a POST form, not a GET deep link.
Do I need a proxy?
Locally, usually no. On the Apify platform the actor uses a RESIDENTIAL proxy on its own — Skiplagged 403s datacenter IPs. Override proxy if you want different groups.
How fresh are the prices?
They match what skiplagged.com shows at the moment the run hits the API. Fares move quickly; confirm before booking.
Support
Found a bug or need a field that isn't exposed? Open an issue on the actor's Issues tab or reach out via the Apify Store profile. Include your input JSON and the run ID.
Additional Services
Need a custom flight pipeline, a different source, scheduled delivery, or fare-alert wiring? Custom scraping work is available via the Apify Store profile.
Explore More Scrapers
- Google Flights Scraper — fares, multi-city, booking options
- Skyscanner Flight Scraper — 180+ fields, Best/Cheapest/Fastest tags
- Ryanair Scraper — budget fares Google under-shows
- Award Flights Scraper — miles and points availability
Full list at apify.com/memo23.
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/skiplagged-scraper).
Purpose: Scrapes Skiplagged — one dataset row per priced itinerary, flexible-date calendar cell, or hotel.
Minimal input:
{"origin": "JFK","destination": "LAX","departDate": "2026-10-11","maxItems": 20}
Output: recordType=skiplaggedFlight|skiplaggedCalendar|skiplaggedHotel. Flight rows include flightId, legType, airports, times, duration, stops, hiddenCity, primaryAirline, segments, layovers, price, bookingProviders, bookingUrl, sourceUrl.
Behaviors an agent should know:
- Always set
maxItems(default 50, max 1000). A busy round-trip or hotel city can return hundreds of rows. destination: anywhereexpands to popular dests via hint.php (origin metro/airports dropped).mode=flexiblehits flex.php (min/max per date).mode=hotelshits hotel_search.php.mode=byUrlsreads/flights/…and/hotels/…paths.- Round-trip searches emit separate outbound and inbound rows.
- Billing is pay-per-event: actor start + $0.001 per dataset row ($1 / 1,000).
- No login, no browser. Passenger mix is sent on the URL; logged-out pricing is often still 1 adult.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Skiplagged, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly available Skiplagged flight-search results — no authenticated endpoints, paid features, or content behind a login wall. Users are responsible for ensuring their use complies with skiplagged.com's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.
SEO Keywords
Skiplagged scraper, scrape Skiplagged, Skiplagged API, Skiplagged flight scraper, hidden city flight scraper, Skiplagged.com scraper, Apify Skiplagged, flight fare scraper, cheap flight data API, hidden-city itinerary export, fare monitoring scraper, travel price comparison data, airline route intelligence, self-transfer flight scraper, flight search API