// docs

Booking PDP

Extrai detalhes completos de hotel (PDP) do Booking.

Nota importante: alguns campos podem retornar null em produção, dependendo da página de origem. Nesta documentação, os exemplos de output são preenchidos intencionalmente com valores não nulos para facilitar integração.

Chamada HTTP

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.booking.com/hotel/br/pavilhao-egipcio.pt-br.html",
  "target": "booking.com.br",
  "type": "pdp",
  "checkinDate": "2026-02-27",
  "checkoutDate": "2026-02-28",
  "numAdults": 2,
  "numChildren": 0,
  "numRooms": 1,
  "lang": "pt-br",
  "currency": "BRL"
}'

Possibilidades de input

Campos suportados nesta API do POST /v1/extract, com regras específicas de obrigatoriedade e condicionais.

Campo Tipo Status Regra Default Exemplo
url
URL alvo da extração. Para alguns PLPs pode ser omitida quando a API monta a URL a partir de outros campos.
string (URL) Obrigatório Obrigatorio para PDP. - https://www.mercadolivre.com.br/p/MLB123456
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio no payload e deve combinar com o seam. - mercadolivre.com.br
type
Tipo da extração: pdp, plp ou review.
enum Obrigatório Sempre obrigatorio no payload e deve combinar com o seam. - pdp
checkinDate
Data de check-in para Booking PDP/PLP. Deve ser maior que hoje.
string (YYYY-MM-DD) Obrigatório Obrigatorio para Booking; deve ser > hoje. - 2026-03-01
checkoutDate
Data de check-out para Booking PDP/PLP. Deve ser maior que checkinDate.
string (YYYY-MM-DD) Obrigatório Obrigatorio para Booking; deve ser > checkinDate. - 2026-03-02
numAdults
Quantidade de adultos para Booking.
integer (1-30) Opcional Opcional para Booking. 2 2
numChildren
Quantidade de crianças para Booking.
integer (0-30) Opcional Opcional para Booking. 0 0
numRooms
Quantidade de quartos para Booking.
integer (1-15) Opcional Opcional para Booking. 1 1
lang
Idioma para Booking (default no backend: pt-br).
string (ll ou ll-cc) Opcional Opcional para Booking. pt-br pt-br
currency
Moeda para Booking (default no backend: BRL).
string (ISO 4217) Opcional Opcional para Booking. BRL BRL

Exemplos de request

PDP com parametros de hospedagem

Booking exige datas de check-in/check-out para PDP.

PDP com parametros de hospedagem
{
  "url": "https://www.booking.com/hotel/br/pavilhao-egipcio.pt-br.html",
  "target": "booking.com.br",
  "type": "pdp",
  "checkinDate": "2026-02-27",
  "checkoutDate": "2026-02-28",
  "numAdults": 2,
  "numChildren": 0,
  "numRooms": 1,
  "lang": "pt-br",
  "currency": "BRL"
}

Schema de response (leaf paths)

Mapa de paths de saída com tipo esperado para esta API.

responseSchema
{
  "requestId": "string (uuid)",
  "executionId": "string (uuid)",
  "data.source": "string",
  "data.type": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.data.url": "string",
  "data.data.checkinDate": "string (YYYY-MM-DD)",
  "data.data.checkoutDate": "string (YYYY-MM-DD)",
  "data.data.numAdults": "number",
  "data.data.numChildren": "number",
  "data.data.numRooms": "number",
  "data.data.lang": "string",
  "data.data.currency": "string",
  "data.data.name": "string",
  "data.data.address": "string",
  "data.data.aggregateRating.rating": "number",
  "data.data.aggregateRating.reviewCount": "number",
  "data.data.mainImage.url": "string",
  "data.data.image[].url": "string",
  "data.data.description": "string",
  "data.data.features[]": "string",
  "data.data.rooms[].name": "string",
  "data.data.rooms[].numberOfGuests": "number",
  "data.data.rooms[].price": "number",
  "data.data.rooms[].regularPrice": "number",
  "data.data.rooms[].freeBreakfast": "boolean",
  "data.data.rooms[].features[]": "string",
  "data.data.houseRules[].name": "string",
  "data.data.houseRules[].value": "string"
}

Exemplo de response

responseExample
{
  "requestId": "66666666-1111-4111-8111-666666666666",
  "executionId": "66666666-2222-4222-8222-666666666666",
  "data": {
    "source": "booking.com.br",
    "type": "pdp",
    "requestUrl": "https://www.booking.com/hotel/br/pavilhao-egipcio.pt-br.html?checkin=2026-02-27&checkout=2026-02-28&group_adults=2&group_children=0&no_rooms=1&lang=pt-br&selected_currency=BRL",
    "extractedAt": "2026-02-12T09:15:22.100Z",
    "data": {
      "url": "https://www.booking.com/hotel/br/pavilhao-egipcio.pt-br.html",
      "checkinDate": "2026-02-27",
      "checkoutDate": "2026-02-28",
      "numAdults": 2,
      "numChildren": 0,
      "numRooms": 1,
      "lang": "pt-br",
      "currency": "BRL",
      "name": "Pavilhao Egipcio",
      "address": "Rua Lamenha Lins, 3152, Curitiba, CEP 80220-081, Brazil",
      "aggregateRating": {
        "rating": 9.2,
        "reviewCount": 146
      },
      "mainImage": {
        "url": "https://cf.bstatic.com/xdata/images/hotel/max500/729526152.jpg"
      },
      "image": [
        {
          "url": "https://cf.bstatic.com/xdata/images/hotel/max500/729526152.jpg"
        }
      ],
      "description": "Hotel com jardim, lounge compartilhado e restaurante.",
      "features": [
        "Non-smoking rooms",
        "Restaurant",
        "Free Wifi",
        "Breakfast"
      ],
      "rooms": [
        {
          "name": "Deluxe Room with Shared Bathroom",
          "numberOfGuests": 2,
          "price": 220,
          "regularPrice": 247.9,
          "freeBreakfast": false,
          "features": [
            "Towels",
            "Hair Dryer",
            "Dining table"
          ]
        }
      ],
      "houseRules": [
        {
          "name": "Check-in",
          "value": "From 2:00 PM to 11:00 PM"
        }
      ]
    }
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.data.address string Campo data.data.address retornado no payload de resposta. Rua Lamenha Lins, 3152, Curitiba, CEP 80220-081, Brazil
data.data.aggregateRating.rating number Campo data.data.aggregateRating.rating retornado no payload de resposta. 9.2
data.data.aggregateRating.reviewCount number Campo data.data.aggregateRating.reviewCount retornado no payload de resposta. 146
data.data.checkinDate string (YYYY-MM-DD) Campo data.data.checkinDate retornado no payload de resposta. 2026-02-27
data.data.checkoutDate string (YYYY-MM-DD) Campo data.data.checkoutDate retornado no payload de resposta. 2026-02-28
data.data.currency string Campo data.data.currency retornado no payload de resposta. BRL
data.data.description string Campo data.data.description retornado no payload de resposta. Hotel com jardim, lounge compartilhado e restaurante.
data.data.features[] string Campo data.data.features[] retornado no payload de resposta. Non-smoking rooms
data.data.houseRules[].name string Campo data.data.houseRules[].name retornado no payload de resposta. Check-in
data.data.houseRules[].value string Campo data.data.houseRules[].value retornado no payload de resposta. From 2:00 PM to 11:00 PM
data.data.image[].url string Campo data.data.image[].url retornado no payload de resposta. https://cf.bstatic.com/xdata/images/hotel/max500/729526152.jpg
data.data.lang string Campo data.data.lang retornado no payload de resposta. pt-br
data.data.mainImage.url string Campo data.data.mainImage.url retornado no payload de resposta. https://cf.bstatic.com/xdata/images/hotel/max500/729526152.jpg
data.data.name string Campo data.data.name retornado no payload de resposta. Pavilhao Egipcio
data.data.numAdults number Campo data.data.numAdults retornado no payload de resposta. 2
data.data.numChildren number Campo data.data.numChildren retornado no payload de resposta. 0
data.data.numRooms number Campo data.data.numRooms retornado no payload de resposta. 1
data.data.rooms[].features[] string Campo data.data.rooms[].features[] retornado no payload de resposta. Towels
data.data.rooms[].freeBreakfast boolean Campo data.data.rooms[].freeBreakfast retornado no payload de resposta. false
data.data.rooms[].name string Campo data.data.rooms[].name retornado no payload de resposta. Deluxe Room with Shared Bathroom
data.data.rooms[].numberOfGuests number Campo data.data.rooms[].numberOfGuests retornado no payload de resposta. 2
data.data.rooms[].price number Campo data.data.rooms[].price retornado no payload de resposta. 220
data.data.rooms[].regularPrice number Campo data.data.rooms[].regularPrice retornado no payload de resposta. 247.9
data.data.url string Campo data.data.url retornado no payload de resposta. https://www.booking.com/hotel/br/pavilhao-egipcio.pt-br.html
data.extractedAt string (iso datetime) Campo data.extractedAt retornado no payload de resposta. 2026-02-12T09:15:22.100Z
data.requestUrl string Campo data.requestUrl retornado no payload de resposta. https://www.booking.com/hotel/br/pavilhao-egipcio.pt-br.html?checkin=2026-02-27&checkout=2026-02-28&group_adults=2&group_children=0&no_rooms=1&lang=pt-br&selected_currency=BRL
data.source string Campo data.source retornado no payload de resposta. booking.com.br
data.type string Campo data.type retornado no payload de resposta. pdp
executionId string (uuid) Campo executionId retornado no payload de resposta. 66666666-2222-4222-8222-666666666666
requestId string (uuid) Campo requestId retornado no payload de resposta. 66666666-1111-4111-8111-666666666666

Erros comuns

Status errorCode Quando acontece
400 INVALID_PAYLOAD JSON inválido ou violação das regras de validação do payload.
401 UNAUTHORIZED Header Authorization ausente ou token/chave inválida.
402 INSUFFICIENT_CREDITS Saldo de créditos insuficiente para a API solicitada.
403 FORBIDDEN Usuário sem acesso ou API temporariamente desabilitada.
409 EXECUTION_CONFLICT executionId conflita com uma execução em estado incompatível.
429 RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS Limite de taxa ou limite de requisições em voo excedido.
500 WORKER_ERROR / INTERNAL_ERROR Falha interna no worker ou no gateway.