// docs

Airbnb PDP

Extrai dados detalhados de uma pagina de acomodacao no Airbnb.

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.airbnb.com.br/rooms/1501379416546185177?adults=2&check_in=2026-02-20&check_out=2026-02-22",
  "target": "airbnb.com.br",
  "type": "pdp"
}'

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 URL da acomodacao Airbnb (ex: /rooms/{listingId}). - https://www.mercadolivre.com.br/p/MLB123456
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatorio no payload e deve ser airbnb.com.br. - mercadolivre.com.br
type
Tipo da extração: pdp, plp, review ou places.
enum Obrigatório Sempre obrigatorio no payload e deve ser pdp. - pdp
startDate
Data inicial da estadia para Airbnb (alias de checkinDate no backend).
string (YYYY-MM-DD) Opcional Opcional para definir check-in no contexto da pagina. - 2026-03-01
endDate
Data final da estadia para Airbnb (alias de checkoutDate no backend).
string (YYYY-MM-DD) Opcional Opcional para definir check-out no contexto da pagina. - 2026-03-02
checkinDate
Data de check-in para Booking PDP/PLP. Deve ser maior que hoje.
string (YYYY-MM-DD) Condicional Alias de startDate; use um ou outro. - 2026-03-01
checkoutDate
Data de check-out para Booking PDP/PLP. Deve ser maior que checkinDate.
string (YYYY-MM-DD) Condicional Alias de endDate; use um ou outro. - 2026-03-02
numAdults
Quantidade de adultos para Booking e Airbnb.
integer (1-30) Opcional Opcional para contexto de ocupacao. 2 2

Exemplos de request

PDP por URL

Fluxo direto para extracao de detalhes da acomodacao.

PDP por URL
{
  "url": "https://www.airbnb.com.br/rooms/1501379416546185177?adults=2&check_in=2026-02-20&check_out=2026-02-22",
  "target": "airbnb.com.br",
  "type": "pdp"
}

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.listingId": "string",
  "data.data.startDate": "string (YYYY-MM-DD)",
  "data.data.endDate": "string (YYYY-MM-DD)",
  "data.data.numAdults": "number",
  "data.data.name": "string",
  "data.data.title": "string",
  "data.data.propertyType": "string",
  "data.data.city": "string",
  "data.data.latitude": "number",
  "data.data.longitude": "number",
  "data.data.personCapacity": "number",
  "data.data.roomType": "string",
  "data.data.isSuperhost": "boolean",
  "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.badges[]": "string",
  "data.data.highlights[]": "string",
  "data.data.amenities[]": "string",
  "data.data.host.name": "string",
  "data.data.host.isSuperhost": "boolean",
  "data.data.host.avatarUrl": "string",
  "data.data.host.highlights[]": "string",
  "data.data.cancellationPolicy": "string"
}

Exemplo de response

responseExample
{
  "requestId": "aaaa1111-1111-4111-8111-aaaaaaaaaaaa",
  "executionId": "aaaa2222-2222-4222-8222-aaaaaaaaaaaa",
  "data": {
    "source": "airbnb.com.br",
    "type": "pdp",
    "requestUrl": "https://www.airbnb.com.br/rooms/1501379416546185177?adults=2&check_in=2026-02-20&check_out=2026-02-22",
    "extractedAt": "2026-02-17T20:30:00.000Z",
    "data": {
      "url": "https://www.airbnb.com.br/rooms/1501379416546185177",
      "listingId": "1501379416546185177",
      "startDate": "2026-02-20",
      "endDate": "2026-02-22",
      "numAdults": 2,
      "name": "Loft elegante no centro de Curitiba",
      "title": "Loft elegante no centro de Curitiba",
      "propertyType": "Apartamento inteiro",
      "city": "Curitiba",
      "latitude": -25.4294,
      "longitude": -49.2719,
      "personCapacity": 2,
      "roomType": "Entire home/apt",
      "isSuperhost": true,
      "aggregateRating": {
        "rating": 4.95,
        "reviewCount": 87
      },
      "mainImage": {
        "url": "https://a0.muscache.com/im/pictures/sample/main.jpg"
      },
      "image": [
        {
          "url": "https://a0.muscache.com/im/pictures/sample/main.jpg"
        },
        {
          "url": "https://a0.muscache.com/im/pictures/sample/room.jpg"
        }
      ],
      "description": "Loft moderno com cozinha equipada, wifi rapido e localizacao central.",
      "badges": [
        "Superhost",
        "Preferido dos hospedes"
      ],
      "highlights": [
        "2 hospedes",
        "1 quarto",
        "1 cama",
        "1 banheiro"
      ],
      "amenities": [
        "Wi-Fi",
        "Cozinha",
        "Ar-condicionado",
        "Smart TV"
      ],
      "host": {
        "name": "Camila",
        "isSuperhost": true,
        "avatarUrl": "https://a0.muscache.com/im/pictures/user/avatar.jpg",
        "highlights": [
          "10 anos hospedando",
          "Resposta rapida"
        ]
      },
      "cancellationPolicy": "Cancelamento gratuito ate 48 horas antes do check-in"
    }
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.data.aggregateRating.rating number Campo data.data.aggregateRating.rating retornado no payload de resposta. 4.95
data.data.aggregateRating.reviewCount number Campo data.data.aggregateRating.reviewCount retornado no payload de resposta. 87
data.data.amenities[] string Campo data.data.amenities[] retornado no payload de resposta. Wi-Fi
data.data.badges[] string Campo data.data.badges[] retornado no payload de resposta. Superhost
data.data.cancellationPolicy string Campo data.data.cancellationPolicy retornado no payload de resposta. Cancelamento gratuito ate 48 horas antes do check-in
data.data.city string Campo data.data.city retornado no payload de resposta. Curitiba
data.data.description string Campo data.data.description retornado no payload de resposta. Loft moderno com cozinha equipada, wifi rapido e localizacao central.
data.data.endDate string (YYYY-MM-DD) Campo data.data.endDate retornado no payload de resposta. 2026-02-22
data.data.highlights[] string Campo data.data.highlights[] retornado no payload de resposta. 2 hospedes
data.data.host.avatarUrl string Campo data.data.host.avatarUrl retornado no payload de resposta. https://a0.muscache.com/im/pictures/user/avatar.jpg
data.data.host.highlights[] string Campo data.data.host.highlights[] retornado no payload de resposta. 10 anos hospedando
data.data.host.isSuperhost boolean Campo data.data.host.isSuperhost retornado no payload de resposta. true
data.data.host.name string Campo data.data.host.name retornado no payload de resposta. Camila
data.data.image[].url string Campo data.data.image[].url retornado no payload de resposta. https://a0.muscache.com/im/pictures/sample/main.jpg
data.data.isSuperhost boolean Campo data.data.isSuperhost retornado no payload de resposta. true
data.data.latitude number Campo data.data.latitude retornado no payload de resposta. -25.4294
data.data.listingId string Campo data.data.listingId retornado no payload de resposta. 1501379416546185177
data.data.longitude number Campo data.data.longitude retornado no payload de resposta. -49.2719
data.data.mainImage.url string Campo data.data.mainImage.url retornado no payload de resposta. https://a0.muscache.com/im/pictures/sample/main.jpg
data.data.name string Campo data.data.name retornado no payload de resposta. Loft elegante no centro de Curitiba
data.data.numAdults number Campo data.data.numAdults retornado no payload de resposta. 2
data.data.personCapacity number Campo data.data.personCapacity retornado no payload de resposta. 2
data.data.propertyType string Campo data.data.propertyType retornado no payload de resposta. Apartamento inteiro
data.data.roomType string Campo data.data.roomType retornado no payload de resposta. Entire home/apt
data.data.startDate string (YYYY-MM-DD) Campo data.data.startDate retornado no payload de resposta. 2026-02-20
data.data.title string Campo data.data.title retornado no payload de resposta. Loft elegante no centro de Curitiba
data.data.url string Campo data.data.url retornado no payload de resposta. https://www.airbnb.com.br/rooms/1501379416546185177
data.extractedAt string (iso datetime) Campo data.extractedAt retornado no payload de resposta. 2026-02-17T20:30:00.000Z
data.requestUrl string Campo data.requestUrl retornado no payload de resposta. https://www.airbnb.com.br/rooms/1501379416546185177?adults=2&check_in=2026-02-20&check_out=2026-02-22
data.source string Campo data.source retornado no payload de resposta. airbnb.com.br
data.type string Campo data.type retornado no payload de resposta. pdp
executionId string (uuid) Campo executionId retornado no payload de resposta. aaaa2222-2222-4222-8222-aaaaaaaaaaaa
requestId string (uuid) Campo requestId retornado no payload de resposta. aaaa1111-1111-4111-8111-aaaaaaaaaaaa

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.
5xx UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente.
WhatsApp