Skip to content

// docs

GOL: Search flights

Extracts itineraries and fares from GOL by origin/destination airport, dates and passengers. API returns flights, segments, fare brands and the lowest available fare per itinerary.

voegol.com.br:plp · 1 credit per request

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

Try this operation in the sandbox

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": "voegol.com.br",
  "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

voegol_com_br_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "voegol_com_br_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
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). - 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). - 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. - 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 voegol.com.br. - voegol.com.br
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 GOL - one way

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

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

Search GOL - round trip

Round-trip search for airports IATA with return data.

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

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)",
  "notFound": "boolean (optional; true when the upstream entity was not found and data is null)",
  "data.source": "string",
  "data.type": "string",
  "data.parser": "\"1.0.0\"",
  "data.url": "string",
  "data.requestUrl": "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 | null (YYYY-MM-DD)",
  "data.numAdults": "number",
  "data.numChildren": "number",
  "data.numInfants": "number",
  "data.success": "boolean | null",
  "data.totalResults": "number",
  "data.itineraries[].position": "number",
  "data.itineraries[].id": "string | null",
  "data.itineraries[].origin": "string | null",
  "data.itineraries[].destination": "string | null",
  "data.itineraries[].departure": "string | null",
  "data.itineraries[].arrival": "string | null",
  "data.itineraries[].stopsCount": "number",
  "data.itineraries[].duration": "string | null",
  "data.itineraries[].segments[].origin": "string | null",
  "data.itineraries[].segments[].destination": "string | null",
  "data.itineraries[].segments[].departure": "string | null",
  "data.itineraries[].segments[].arrival": "string | null",
  "data.itineraries[].segments[].duration": "string | null",
  "data.itineraries[].segments[].flight.airlineCode": "string | null",
  "data.itineraries[].segments[].flight.flightNumber": "string | null",
  "data.itineraries[].segments[].flight.equipmentCode": "string | null",
  "data.itineraries[].offers[].brandId": "string | null",
  "data.itineraries[].offers[].brandLabel": "string | null",
  "data.itineraries[].offers[].cabinClass": "string | null",
  "data.itineraries[].offers[].seatsRemaining": "number | null",
  "data.itineraries[].offers[].total.currency": "string | null",
  "data.itineraries[].offers[].total.amount": "number | null",
  "data.itineraries[].cheapestOffer.brandId": "string | null",
  "data.itineraries[].cheapestOffer.total.amount": "number | null"
}

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": "voegol.com.br",
    "type": "plp",
    "parser": "1.0.0",
    "url": "https://www.voegol.com.br/itineraries?from=GRU&to=GIG&departureDate=2026-05-17&numAdults=1&numChildren=0&numInfants=0",
    "requestUrl": "https://www.voegol.com.br/itineraries?from=GRU&to=GIG&departureDate=2026-05-17&numAdults=1&numChildren=0&numInfants=0",
    "extractedAt": "2026-04-30T18:00:00.000Z",
    "searchType": "ONE_WAY",
    "from": "GRU",
    "to": "GIG",
    "departureDate": "2026-05-17",
    "returnDate": "",
    "numAdults": 1,
    "numChildren": 0,
    "numInfants": 0,
    "success": true,
    "totalResults": 1,
    "itineraries": [
      {
        "position": 1,
        "id": "itinerary-1",
        "origin": "GRU",
        "destination": "GIG",
        "departure": "2026-05-17T13:25:00",
        "arrival": "2026-05-17T14:25:00",
        "stopsCount": 0,
        "duration": "PT1H",
        "segments": [
          {
            "origin": "GRU",
            "destination": "GIG",
            "departure": "2026-05-17T13:25:00",
            "arrival": "2026-05-17T14:25:00",
            "duration": "PT1H",
            "flight": {
              "airlineCode": "G3",
              "flightNumber": "1234",
              "equipmentCode": "738"
            }
          }
        ],
        "offers": [
          {
            "brandId": "LI",
            "brandLabel": "Light",
            "cabinClass": "Economy",
            "seatsRemaining": 9,
            "total": {
              "currency": "BRL",
              "amount": 1168.34
            }
          },
          {
            "brandId": "PL",
            "brandLabel": "Plus",
            "cabinClass": "Economy",
            "seatsRemaining": 9,
            "total": {
              "currency": "BRL",
              "amount": 1394.22
            }
          }
        ],
        "cheapestOffer": {
          "brandId": "LI",
          "brandLabel": "Light",
          "cabinClass": "Economy",
          "seatsRemaining": 9,
          "total": {
            "currency": "BRL",
            "amount": 1168.34
          }
        }
      }
    ]
  }
}

Complete field reference

PathTypeDescriptionExample
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-04-30T18:00:00.000Z
data.from string Airport IATA of origin. GRU
data.itineraries[].arrival string | null Arrival date/time of the last segment. 2026-05-17T14:25:00
data.itineraries[].cheapestOffer.brandId string | null Tariff mark of the lowest offer found. LI
data.itineraries[].cheapestOffer.total.amount number | null Lowest total price found for the itinerary. 1168.34
data.itineraries[].departure string | null Departure date/time of the first segment. 2026-05-17T13:25:00
data.itineraries[].destination string | null Destination of the last segment. GIG
data.itineraries[].duration string | null Total itinerary duration when available. PT1H
data.itineraries[].id string | null Itinerary identifier when upstream reports. itinerary-1
data.itineraries[].offers[].brandId string | null Tariff mark identifier. LI
data.itineraries[].offers[].brandLabel string | null Readable tariff mark name when available. Light
data.itineraries[].offers[].cabinClass string | null Cab class when available. Economy
data.itineraries[].offers[].seatsRemaining number | null Remaining seats when available. 9
data.itineraries[].offers[].total.amount number | null Total bid amount. 1168.34
data.itineraries[].offers[].total.currency string | null Currency of total price. BRL
data.itineraries[].origin string | null Origin of the first segment. GRU
data.itineraries[].position number Position of the route in the response. 1
data.itineraries[].segments[].arrival string | null Segment arrival date/time. 2026-05-17T14:25:00
data.itineraries[].segments[].departure string | null Segment departure date/time. 2026-05-17T13:25:00
data.itineraries[].segments[].destination string | null Segment destination. GIG
data.itineraries[].segments[].duration string | null Segment duration. PT1H
data.itineraries[].segments[].flight.airlineCode string | null Airline code. G3
data.itineraries[].segments[].flight.equipmentCode string | null Aircraft/equipment code when available. 738
data.itineraries[].segments[].flight.flightNumber string | null Flight number. 1234
data.itineraries[].segments[].origin string | null Segment origin. GRU
data.itineraries[].stopsCount number Number of stops calculated from the segments. 0
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.requestUrl string Same value as `data.url`; never exposes the queried internal endpoint. https://www.voegol.com.br/itineraries?from=GRU&to=GIG&departureDate=2026-05-17&numAdults=1&numChildren=0&numInfants=0
data.returnDate string | null (YYYY-MM-DD) 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.source string Source consulted. voegol.com.br
data.success boolean | null Success flag returned by upstream when available. true
data.to string Destination airport IATA. GIG
data.totalResults number Number of structured itineraries in the response. 1
data.type string Type of the executed API. plp
data.url string URL canonical public route search GOL. https://www.voegol.com.br/itineraries?from=GRU&to=GIG&departureDate=2026-05-17&numAdults=1&numChildren=0&numInfants=0
executionId string (uuid) Idempotent identifier of the execution. 99999999-2222-4222-8222-999999999999
notFound boolean (optional; true when the upstream entity was not found and data is null) Present and true when the upstream entity was not found. In this case data is null and the request still completes successfully. N/A
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.