Despegar Scraper - Hotels, Flights & Travel Data avatar

Despegar Scraper - Hotels, Flights & Travel Data

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Despegar Scraper - Hotels, Flights & Travel Data

Despegar Scraper - Hotels, Flights & Travel Data

Extract Despegar destination suggestions, hotels, flight offers and package listings across Latin American country sites. Export rows with prices, ratings and links. Pay per delivered row plus a start fee.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

7

Total users

4

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Despegar Scraper

Extract Despegar destination suggestions, hotel details, flight offers and package listings from Latin American country sites as exportable rows.

  • Destination identifiers and place labels for travel research.
  • Hotel names, prices, ratings and optional review rows.
  • Flight routes and package offer links where available.
  • JSON, CSV and Excel exports for analysis or scheduled checks.
  • Free-plan pricing of $3.00 per 1,000 delivered rows, plus a small start fee.

What does Despegar Scraper do?

Despegar Scraper collects publicly available travel information from Despegar. Choose a country site and one place, hotel or route. Available country settings cover Argentina, Mexico, Colombia, Chile, Brazil, Peru, Ecuador and Uruguay; coverage varies by mode and country.

  • suggestions: find destination identifiers from a place name.
  • hotelsSearch: find hotels for a destination and stay dates.
  • hotelDetail: retrieve one hotel's details by hotelId.
  • flightsSearch: collect offers for an airport-code route.
  • packagesSeo: collect package landing-page offers, not dated booking availability.
  • bffConfig: collect public market config resources (app resources, bottom-bar, shifu, configs, health-check, and nearby cities when a numeric destination gid is given).
  • Optional hotel enrichment uses enrichDetails, off by default. Reviews use maxReviews, default 0; each review is a separate row billed at the same rate as a hotel row.

This is an unofficial tool, not affiliated with Despegar. It does not book travel or access private accounts.

What data can you extract from Despegar?

Rows include mode, countrySite and capturedAt. The tables show representative fields, not guaranteed values. Hotels and reviews have rowType; other rows use type to identify their kind.

Suggestions (type: suggestion)

FieldDescriptionExample
gidDespegar destination identifierCIT_982
displayPlace or lodging labelBuenos Aires, Argentina
targetTypeKind of destinationCITY
addressAvailable parent geography; may contain identifiers{"country":"Argentina"}
geoCoordinates, when available{"lat":-34.60,"lng":-58.38}

Hotels (rowType: hotel)

FieldDescriptionExample
hotelIdHotel identifier289843
nameHotel nameExample Hotel
priceTextDisplayed price, when presentARS 120000
currencyCountry-site currencyARS
productUrlHotel or offer linkhttps://www.despegar.com.ar/
reviewScoreAggregate guest rating8.5
roomGroupsAvailable room descriptions and rate informationnull

Flights (type: flight)

FieldDescriptionExample
originDeparture airport codeEZE
destinationArrival airport codeMIA
departureDateDeparture date2026-12-20
returnDateReturn-date field2026-12-27
tripTypeRequested trip typeroundtrip

Flight rows also carry priceText, currency and productUrl when available. A search-page link is not necessarily a unique itinerary link.

Packages (type: packageSeo)

FieldDescriptionExample
titleOffer heading7 Días / 6 Noches
daysStated duration in days7
nightsStated duration in nights6

Package rows also include route fields, priceText and productUrl. Duration stays empty when the offer does not state it.

Reviews (rowType: review)

FieldDescriptionExample
reviewIdSource identifier or a derived identifier289843:example
reviewIdDerivedWhether the identifier was derivedtrue
ratingIndividual review score9
textReview textComfortable room.
goodCommentPositive comment, if separately suppliedQuiet room.
badCommentNegative comment, if separately suppliednull
hotelResponseProperty's reply, if presentnull

Reviews retain the parent hotelId. Contact fields can be empty; suggestions do not supply phone numbers or email addresses. leadAbsences explains missing contact values rather than filling them with guesses.

How to scrape Despegar

  1. Open Despegar Scraper in Apify Console.
  2. Enter one target, such as query: Argentina, and choose countrySite.
  3. Set maxResults to 3 for a first run.
  4. Click Start and wait for completion.
  5. Download the dataset or read it through the API.

Empty input {} starts an example using query: Argentina, the default country site and at most 3 rows. Normal event charges apply. With mode: auto, the filled target selects the mode. Conflicting targets are resolved in this order: hotelId, destinationGid, query, then the route. This is not a list of separate searches.

Suggestions

Fill query with a place name. Query text alone selects suggestions, not hotel search. Only matching suggestions are kept, so fewer than the requested number may exist.

Set mode: hotelsSearch with query, or fill destinationGid. Optionally enable enrichDetails and set enrichLimit for additional hotel information.

Hotel detail

Fill hotelId. Set maxReviews above zero to request reviews; hotel rows take priority and reviews use the remaining maxResults allowance.

Fill both origin and destination with airport codes. Choose tripType and travel dates. Do not also fill query when relying on automatic mode selection.

Packages

Set mode: packagesSeo and provide origin and destination city slugs. A query is also accepted as a destination; without an origin, the default is bue.

Market config resources

Set mode: bffConfig to read the site's public configuration endpoints (app resources, bottom-bar navigation, shifu marketing config, configs and a health check). One row per endpoint document; when destinationGid is a numeric geo identifier, nearby cities are also returned one per row. Country site chooses the market; query is only used as a nearby-cities geo id when numeric.

What to fill in

FieldWhat to enterDefault
modeAutomatic selection or a mode aboveauto
queryPlace name; form sample is ArgentinaEmpty
hotelIdDespegar hotel identifierEmpty
destinationGidDestination identifier such as CIT_982Empty
originAirport code or package city slugEmpty
destinationAirport code or package city slugEmpty
countrySiteHost selected in the formdespegar.com.ar
maxResultsMaximum rows for the input, 1–20070; form sample 3
checkinStay start, YYYY-MM-DD21 days ahead
checkoutStay end, YYYY-MM-DD7 nights after check-in
departureDateFlight departure, YYYY-MM-DDCheck-in date
returnDateRound-trip return, YYYY-MM-DDCheck-out date
tripTyperoundtrip or onewayroundtrip
adultsAdult count2
childrenChild count; see limitations0
roomsRoom count; see limitations1
currencyLeave empty or use the site's currencySite currency
maxPagesHotel search page limit, 1–201
enrichDetailsAdd hotel details to search rowsfalse
enrichLimitHotels to enrich, 0–203
maxReviewsReviews per hotel, 0–500

Use these examples individually.

Suggestions

{
"query": "Argentina",
"maxResults": 3
}

Hotel search

{
"mode": "hotelsSearch",
"query": "Buenos Aires",
"maxResults": 3
}

Hotel detail with reviews

{
"hotelId": "289843",
"maxReviews": 2,
"maxResults": 3
}

Flights

{
"origin": "EZE",
"destination": "MIA",
"tripType": "roundtrip",
"maxResults": 3
}

Packages

{
"mode": "packagesSeo",
"origin": "bue",
"destination": "brc",
"maxResults": 3
}
  • maxItems and limit are accepted aliases for maxResults.
  • Unknown fields are not rejected solely for being unknown: close misspellings are corrected and other names are ignored with a warning.
  • Supported modes write INPUT_REPORT to the default key-value store, recording inferred, filled, corrected and ignored fields. Unsupported modes are rejected separately and do not write this report.
  • Invalid stay dates stop before collection, for example INVALID_INPUT: checkin — checkin must be today or later (YYYY-MM-DD). No rows are charged for that error; the start fee is separate. Other validation errors can use different wording.
  • Empty stay dates move relative to today on each run. Explicit dates are not automatically shifted. Flight dates inherit stay dates when omitted.

Output example

This illustrative suggestion row uses the actual output field names; it is not a fresh collection result.

{
"type": "suggestion",
"mode": "suggestions",
"countrySite": "despegar.com.ar",
"gid": "CIT_982",
"display": "Buenos Aires, Argentina",
"targetType": "CITY",
"phones": [],
"emails": [],
"person": null,
"org": null,
"web": {"website": null, "socials": []},
"capturedAt": "2026-10-24T10:00:00Z"
}

Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY records the outcome; ERROR_SUMMARY supplies failure details when written.

Why use this Despegar scraper?

  • Pay for delivered rows. Unavailable pages are not billed as result rows; the start fee still applies.
  • Keep delivered data. Rows already in the dataset remain available after a stop. Returned partial results can also be delivered, but an interrupted run is not guaranteed to recover every collected row.
  • Inspect failures. Status messages and saved summaries distinguish invalid input, unavailable data and collection errors.
  • Reuse inputs. Schedule the same place or route for repeated comparisons, checking dates and currency each time.
  • No proxy setup. You do not need to set up proxies.

How much does it cost to scrape Despegar?

Pricing is pay-per-event. The start event costs $0.005 per GB of allocated memory, with a minimum of one event. The default 1024 MB uses one start event. Platform usage is included in these prices.

Apify planStart at 1024 MBPrice per rowPrice per 1,000 rows
Free$0.005$0.003$3.00
Starter$0.005$0.003$3.00
Scale$0.005$0.0026$2.60
Business$0.005$0.0022$2.20

maxResults applies to the single query, hotel or route supplied. Its default is 70, with larger requests collected in parts of 70, up to the schema maximum of 200. All row types share that allowance. Requested counts are ceilings, not promises of available data.

Free Apify plans are capped at 200 rows per run and 10 runs of this Actor. Set Maximum cost per run (maxTotalChargeUsd in the API) to cap the whole run's charges.

Example: 3 delivered rows on the Free plan at 1024 MB cost 3 × $0.003 + $0.005 = $0.014. If reviews replace some hotel rows within that total, the row price stays the same.

What happens when the run timeout is too short

Some searches take longer than the timeout you chose. When an automatic pause is accepted, the run ends early with the message "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It temporarily shows ABORTED.

When results are ready, the same run resumes, reports "Resumed: delivering N rows.", writes to the same dataset and finishes as SUCCEEDED if delivery succeeds. Rows already delivered are skipped, so they are not delivered or charged again. You do not need to restart that paused run yourself.

  • Automatic pauses are limited to 3 per run. Keep the default timeout of 3600 seconds to reduce interruptions.
  • Synchronous endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while a run is paused. For longer searches, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.

Use with AI agents and the API

Apify MCP server

Claude, ChatGPT, Cursor and VS Code clients with remote MCP support can use:

https://mcp.apify.com?tools=lentic_clockss/despegar-scraper

Sign in with Apify using OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; read rows with get-dataset-items.

Clients without remote support can run npx @apify/actors-mcp-server --tools lentic_clockss/despegar-scraper with APIFY_TOKEN set.

Example prompt: "Find up to 3 Despegar destination suggestions for Argentina using despegar.com.ar, and return their labels and identifiers."

Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/despegar-scraper").call(
run_input={"query": "Argentina", "maxResults": 3}
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/despegar-scraper').call({
query: 'Argentina', maxResults: 3
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

For asynchronous HTTP, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~despegar-scraper/runs with an Authorization: Bearer header. Read results with GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json after completion.

Integrations

Use Apify's Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Use Apify Schedules for recurring runs.

En español

Este Actor recopila sugerencias de destinos, datos de hoteles, ofertas de vuelos y paquetes publicados en Despegar. Para empezar, escribe un lugar en query y limita maxResults a 3. Ese dato por sí solo busca sugerencias; para buscar hoteles, selecciona mode: hotelsSearch. También puedes indicar un hotelId o una ruta con origin y destination. Elige el país en countrySite y revisa las fechas antes de ejecutar. Los resultados se cobran por fila, además del cargo de inicio. Las reseñas opcionales cuentan como filas y comparten el límite. No realiza reservas y no garantiza que todos los campos estén disponibles.

FAQ

This Actor targets public data. You are responsible for complying with Despegar's terms and applicable data protection laws. Personal data requires a lawful basis; public availability alone does not settle that question.

Why did my run end as ABORTED?

Check its status message. An automatic pause can resume as described above. A manual abort or another interruption is not a promise of automatic recovery.

How many results can I get?

Request 1–200 rows with maxResults. Actual counts depend on matching data, maxPages, optional reviews and the run's cost limit. Suggestions are not a complete destination directory.

Why are some fields empty?

The source may omit a price, address, rating or contact field. Different modes expose different information. Empty values are not replaced with invented data.

Is login required, and can it book travel?

No Despegar login is requested. The Actor reads public information and does not submit reservations, payments or account forms.

Why is an SEO hotel page different from search results?

Marketing landing pages are not dated accommodation availability. Use hotelsSearch or hotelDetail for stay-specific information; package landing offers are not confirmed booking quotes.

Do cars, transfers or activities work?

No. Those form options are not available and return an explicit error. Choose one of the five documented modes instead.

Can I request another currency?

Use the selected country's currency, such as ARS for Argentina or MXN for Mexico. A different currency is rejected, not converted.

Limitations

  • Country settings do not guarantee identical coverage. Shopping and detail pages may be unavailable even when suggestions work.
  • One query, hotel or route is accepted per run; there is no target-list input.
  • Suggestions can include name matches outside the intended location. Check returned geography before using a row as a local match.
  • Parent geography may contain identifiers instead of readable names. Suggestions do not provide street-level contact completeness.
  • Child ages and detailed room allocation are not represented. Multi-room or child pricing should not be treated as an exact booking quote.
  • Review counts depend on exposed reviews and the remaining row allowance. Complete review histories are not guaranteed.

More travel, hotel and flight scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Report a problem or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.