Skip to content

// docs

LATAM: Search flights

Extracts flight options and cash fares from LATAM by origin/destination airport, dates and passengers in structured JSON.

latamairlines.com:plp · 5 credits per request

Standard credit cost. Your account pricing is shown in the sandbox.

Try this operation in the sandbox

Source-specific limitations

Some requests can take up to 1 minute to respond. This is expected for this operation; wait for the request to complete.

HTTP request

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "latamairlines.com",
  "type": "plp",
  "from": "GRU",
  "to": "GIG",
  "departureDate": "2026-05-17",
  "numAdults": 1,
  "numChildren": 0,
  "numInfants": 0
}'

Keep your API key on your server. See the quickstart for authentication and response handling.

MCP request

The hosted MCP tool fixes target and type for this operation. Its remaining arguments use the same input rules as Extract.

POST /v1/mcp · Bearer or X-API-Key authentication

latamairlines_com_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "latamairlines_com_plp",
    "arguments": {
      "from": "GRU",
      "to": "GIG",
      "departureDate": "2026-05-17",
      "numAdults": 1,
      "numChildren": 0,
      "numInfants": 0,
      "executionId": "exec_example_123"
    }
  }
}

Supported inputs

Conditional fields depend on the alternatives and constraints in the rule column. Fields marked unsupported are omitted.

FieldTypeRequirementRuleDefaultExample
url
URL extraction target. For some PLPs it can be omitted when API assembles URL from other fields.
string (URL) Optional Optional. When informed, it must be a URL flight offer from LATAM on latamairlines.com. Without URL, send from, to and departureDate. - https://www.latamairlines.com/br/pt/oferta-voos?origin=GRU&outbound=2026-05-17T00:00:00.000Z&destination=GIG&adt=1&chd=0&inf=0&trip=OW&cabin=Economy&redemption=false&sort=RECOMMENDED
from
Code IATA of the airport of origin for searching PLP of Decolar, GOL, Azul, LATAM, Trip.com, KAYAK, MaxMilhas and 123Milhas.
string (IATA 3 letters) Required Code IATA of the airport of origin with letters 3 (ex: GRU). Mandatory when url is not sent. - GRU
to
Destination airport code IATA for search PLP of Decolar, GOL, Azul, LATAM, Trip.com, KAYAK, MaxMilhas and 123Milhas.
string (IATA 3 letters) Required Code IATA of the destination airport with letters 3 (ex: GIG). Mandatory when url is not sent. - GIG
departureDate
Departure date for searching PLP from ClickBus, Decolar, GOL, Azul, LATAM, Trip.com, KAYAK, MaxMilhas and 123Milhas.
string (YYYY-MM-DD) Required Departure date in YYYY-MM-DD format. Mandatory when url is not sent. - 2026-05-17
returnDate
Optional return date for PLP search of ClickBus, Decolar, GOL, Azul, LATAM, Trip.com, KAYAK, MaxMilhas, and 123Milhas.
string (YYYY-MM-DD) Optional Return date in YYYY-MM-DD format. Must be greater than or equal to departureDate. - 2026-06-15
target
Target source for extraction.
enum Required Always mandatory and must be latamairlines.com. - latamairlines.com
type
Extraction type: pdp, idp, plp, ilp, quote, review or places.
enum Required Always mandatory and must be plp. - plp
numAdults
Quantity of adults for Booking, Airbnb, Hoteis.com, Trivago, Decolar, GOL, Azul, LATAM and Trip.com.
integer (1-30) Optional Number of adults. Must be an integer between 1 and 9. 1 1
numChildren
Number of children for Booking, Hoteis.com, Trivago, Decolar, GOL, Azul, LATAM and Trip.com.
integer (0-30) Optional Number of children. Must be an integer between 0 and 9. 0 0
numInfants
Number of babies for GOL, Azul, LATAM and Trip.com PLP. It must be less than or equal to the number of adults.
integer (0-9) Optional Number of babies. Must be an integer between 0 and 9 and less than or equal to numAdults. 0 0

Request examples

Search LATAM - one way

One-way search for IATA airports with adults, children and babies.

Search LATAM - one way
{
  "target": "latamairlines.com",
  "type": "plp",
  "from": "GRU",
  "to": "GIG",
  "departureDate": "2026-05-17",
  "numAdults": 1,
  "numChildren": 0,
  "numInfants": 0
}

Search LATAM - round trip

Round-trip search for airports IATA with return data.

Search LATAM - round trip
{
  "target": "latamairlines.com",
  "type": "plp",
  "from": "BSB",
  "to": "SDU",
  "departureDate": "2026-06-10",
  "returnDate": "2026-06-15",
  "numAdults": 2,
  "numChildren": 1,
  "numInfants": 0
}

Search LATAM - by URL

Search using a URL public flight offer from LATAM.

Search LATAM - by URL
{
  "target": "latamairlines.com",
  "type": "plp",
  "url": "https://www.latamairlines.com/br/pt/oferta-voos?origin=GRU&outbound=2026-05-17T00:00:00.000Z&destination=GIG&adt=1&chd=0&inf=0&trip=OW&cabin=Economy&redemption=false&sort=RECOMMENDED"
}

Response schema

Leaf paths and expected types. Field names and enum values are part of the API contract.

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "data.source": "string",
  "data.type": "string",
  "data.parser": "\"1.0.0\"",
  "data.url": "string",
  "data.requestUrl": "string",
  "data.capturedOffersUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.searchType": "string (ONE_WAY | ROUND_TRIP)",
  "data.from": "string",
  "data.to": "string",
  "data.departureDate": "string (YYYY-MM-DD)",
  "data.returnDate": "string",
  "data.numAdults": "number",
  "data.numChildren": "number",
  "data.numInfants": "number",
  "data.cabin": "string",
  "data.redemption": "boolean",
  "data.sort": "string",
  "data.success": "boolean",
  "data.listing.totalElements": "number",
  "data.listing.numberOfElements": "number",
  "data.listing.captureStatusCode": "number",
  "data.requestUsage.renderedRequests": "number",
  "data.requestUsage.retriedWithWait": "boolean",
  "data.totalFlightOptions": "number",
  "data.totalResults": "number",
  "data.items[].recordType": "string",
  "data.items[].position.flightOption": "number",
  "data.items[].position.brand": "number",
  "data.items[].route.originIata": "string",
  "data.items[].route.destinationIata": "string",
  "data.items[].route.departure": "string",
  "data.items[].route.arrival": "string",
  "data.items[].flight.flightCode": "string",
  "data.items[].flight.durationMinutes": "number",
  "data.items[].flight.stops": "number",
  "data.items[].flight.segments[].flightNumber": "string",
  "data.items[].fare.brandId": "string",
  "data.items[].fare.brandText": "string",
  "data.items[].fare.cabinLabel": "string",
  "data.items[].price.currency": "string",
  "data.items[].price.amount": "number",
  "data.items[].price.display": "string",
  "data.items[].price.total": "number"
}

Example response

Illustrative response. Product names, reviews and other source content retain their original language. Missing and null values do not imply zero stock, free shipping or zero reviews.

responseExample
{
  "requestId": "99999999-1111-4111-8111-999999999999",
  "executionId": "99999999-2222-4222-8222-999999999999",
  "data": {
    "source": "latamairlines.com",
    "type": "plp",
    "parser": "1.0.0",
    "url": "https://www.latamairlines.com/br/pt/oferta-voos?origin=GRU&outbound=2026-05-17T00:00:00.000Z&destination=GIG&adt=1&chd=0&inf=0&trip=OW&cabin=Economy&redemption=false&sort=RECOMMENDED&exp_id=99999999-3333-4333-8333-999999999999",
    "requestUrl": "https://www.latamairlines.com/br/pt/oferta-voos?origin=GRU&outbound=2026-05-17T00:00:00.000Z&destination=GIG&adt=1&chd=0&inf=0&trip=OW&cabin=Economy&redemption=false&sort=RECOMMENDED&exp_id=99999999-3333-4333-8333-999999999999",
    "capturedOffersUrl": "https://www.latamairlines.com/bff/air-offers/offers/search?origin=GRU&destination=GIG",
    "extractedAt": "2026-05-04T18:00:00.000Z",
    "searchType": "ONE_WAY",
    "from": "GRU",
    "to": "GIG",
    "departureDate": "2026-05-17",
    "returnDate": "",
    "numAdults": 1,
    "numChildren": 0,
    "numInfants": 0,
    "cabin": "Economy",
    "redemption": false,
    "sort": "RECOMMENDED",
    "success": true,
    "listing": {
      "totalElements": 1,
      "numberOfElements": 1,
      "captureStatusCode": 200
    },
    "requestUsage": {
      "renderedRequests": 1,
      "retriedWithWait": false
    },
    "totalFlightOptions": 1,
    "totalResults": 1,
    "items": [
      {
        "recordType": "flight_price",
        "position": {
          "flightOption": 1,
          "brand": 1
        },
        "route": {
          "originIata": "GRU",
          "destinationIata": "GIG",
          "departure": "2026-05-17T10:00:00.000Z",
          "arrival": "2026-05-17T11:10:00.000Z"
        },
        "flight": {
          "flightCode": "LA1234",
          "durationMinutes": 70,
          "stops": 0,
          "segments": [
            {
              "flightNumber": "1234"
            }
          ]
        },
        "fare": {
          "brandId": "LIGHT",
          "brandText": "Light",
          "cabinLabel": "Economy"
        },
        "price": {
          "currency": "BRL",
          "amount": 399.9,
          "display": "R$ 399,90",
          "total": 399.9
        }
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
data.cabin string Cabin requested. Economy
data.capturedOffersUrl string URL BFF captured with the offers JSON. https://www.latamairlines.com/bff/air-offers/offers/search?origin=GRU&destination=GIG
data.departureDate string (YYYY-MM-DD) Departure date sent in the request. 2026-05-17
data.extractedAt string (iso datetime) Extraction time in ISO 8601. 2026-05-04T18:00:00.000Z
data.from string Airport IATA of origin. GRU
data.items[].fare.brandId string Tariff brand identifier. LIGHT
data.items[].fare.brandText string Readable name of the tariff mark. Light
data.items[].fare.cabinLabel string Fare booth. Economy
data.items[].flight.durationMinutes number Duration in minutes. 70
data.items[].flight.flightCode string Flight code summarized by LATAM. LA1234
data.items[].flight.segments[].flightNumber string Flight number in the segment. 1234
data.items[].flight.stops number Number of scales. 0
data.items[].position.brand number Position of the tariff mark within the option. 1
data.items[].position.flightOption number Position of the flight option in the response. 1
data.items[].price.amount number Numerical value of the fare. 399.9
data.items[].price.currency string Price currency. BRL
data.items[].price.display string Price formatted by LATAM. R$ 399,90
data.items[].price.total number Total informed by price breakdown. 399.9
data.items[].recordType string Normalized item type. flight_price
data.items[].route.arrival string Arrival date/time. 2026-05-17T11:10:00.000Z
data.items[].route.departure string Departure date/time. 2026-05-17T10:00:00.000Z
data.items[].route.destinationIata string Destination airport. GIG
data.items[].route.originIata string Airport of origin. GRU
data.listing.captureStatusCode number HTTP status of the captured call BFF. 200
data.listing.numberOfElements number Number of options returned on the captured page. 1
data.listing.totalElements number Total options reported by BFF. 1
data.numAdults number Number of adults used in the search. 1
data.numChildren number Number of children used in the search. 0
data.numInfants number Number of babies used in the search. 0
data.parser "1.0.0" Stable version of the API response format. 1.0.0
data.redemption boolean Indicates whether search and rescue. In the supported flow of cash fares, the value is false. false
data.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://www.latamairlines.com/br/pt/oferta-voos?origin=GRU&outbound=2026-05-17T00:00:00.000Z&destination=GIG&adt=1&chd=0&inf=0&trip=OW&cabin=Economy&redemption=false&sort=RECOMMENDED&exp_id=99999999-3333-4333-8333-999999999999
data.requestUsage.renderedRequests number Number of rendered requests used. 1
data.requestUsage.retriedWithWait boolean Indicates whether there was a retry with waiting. false
data.returnDate string Return date sent in the request, if any.
data.searchType string (ONE_WAY | ROUND_TRIP) ONE_WAY when there is no returnDate; ROUND_TRIP when there is a return. ONE_WAY
data.sort string Order sent to LATAM. RECOMMENDED
data.source string Source consulted. latamairlines.com
data.success boolean Indicates whether offer JSON has been captured. true
data.to string Destination airport IATA. GIG
data.totalFlightOptions number Number of flight options before expanding fare brands. 1
data.totalResults number Number of rate lines returned. 1
data.type string Type of the executed API. plp
data.url string URL publishes canonical search query LATAM. https://www.latamairlines.com/br/pt/oferta-voos?origin=GRU&outbound=2026-05-17T00:00:00.000Z&destination=GIG&adt=1&chd=0&inf=0&trip=OW&cabin=Economy&redemption=false&sort=RECOMMENDED&exp_id=99999999-3333-4333-8333-999999999999
executionId string (uuid) Idempotent execution identifier. 99999999-2222-4222-8222-999999999999
requestId string (uuid) Request identifier at the GeckoAPI gateway. 99999999-1111-4111-8111-999999999999

Errors and missing data

When supported by this operation, an entity not found upstream can return HTTP 200 with data: null and notFound: true. Check the documented response fields before interpreting an empty result. Source-specific behavior and exceptions are described above.

HTTP statusError codeMeaning
400INVALID_PAYLOADInvalid JSON or a request that violates the documented validation rules.
401UNAUTHORIZEDMissing authorization or an invalid API key or token.
402INSUFFICIENT_CREDITSThe account has insufficient credits for this operation.
403FORBIDDENThe account does not have access, or the API is temporarily disabled.
409EXECUTION_CONFLICTThe execution identifier conflicts with an incompatible execution state.
429RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTSA rate limit or simultaneous request limit was exceeded.
5xxUPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_FUNCTION_ERRORAn upstream, worker or gateway failure. Failed requests follow the platform refund policy.