// docs

Airbnb PLP

Extrai listagem de acomodacoes do Airbnb por destino e periodo.

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 '{
  "address": "curitiba",
  "startDate": "2026-02-20",
  "endDate": "2026-02-22",
  "numAdults": 2,
  "page": 1,
  "type": "plp",
  "target": "airbnb.com.br"
}'

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) Opcional Opcional; quando ausente o gateway monta URL por address/startDate/endDate. - https://www.mercadolivre.com.br/p/MLB123456
address
Endereço de referência usado pelo Google Places para localizar a área da busca.
string Condicional Obrigatorio quando url nao for enviada. - Rua XV de Novembro, 160, Curitiba, PR
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 plp. - pdp
page
Paginação. Em PLP inicia em 1; em MercadoLivre review inicia em 0.
integer Opcional Suportado para PLP; deve ser inteiro >= 1. - 2
startDate
Data inicial da estadia para Airbnb (alias de checkinDate no backend).
string (YYYY-MM-DD) Obrigatório Data inicial da estadia (YYYY-MM-DD). - 2026-03-01
endDate
Data final da estadia para Airbnb (alias de checkoutDate no backend).
string (YYYY-MM-DD) Obrigatório Data final da estadia (YYYY-MM-DD), posterior a startDate. - 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 quantidade de adultos. 2 2

Exemplos de request

PLP por destino + datas

Fluxo recomendado sem URL explicita; o gateway monta a URL canonica.

PLP por destino + datas
{
  "address": "curitiba",
  "startDate": "2026-02-20",
  "endDate": "2026-02-22",
  "numAdults": 2,
  "page": 1,
  "type": "plp",
  "target": "airbnb.com.br"
}

PLP com URL opcional

Tambem aceita URL de busca diretamente quando necessario.

PLP com URL opcional
{
  "url": "https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2",
  "target": "airbnb.com.br",
  "type": "plp",
  "page": 1
}

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.url": "string",
  "data.requestUrl": "string",
  "data.extractedAt": "string (iso datetime)",
  "data.address": "string",
  "data.query": "string",
  "data.startDate": "string (YYYY-MM-DD)",
  "data.endDate": "string (YYYY-MM-DD)",
  "data.numAdults": "number",
  "data.totalResults": "number",
  "data.primaryResults": "number",
  "data.page": "number",
  "data.resultsPerPage": "number",
  "data.offset": "number",
  "data.nextPage": "number",
  "data.nextPageUrl": "string",
  "data.items[].position": "number",
  "data.items[].listingId": "string",
  "data.items[].url": "string",
  "data.items[].title": "string",
  "data.items[].name": "string",
  "data.items[].category": "string",
  "data.items[].city": "string",
  "data.items[].latitude": "number",
  "data.items[].longitude": "number",
  "data.items[].thumbnail": "string",
  "data.items[].images[].url": "string",
  "data.items[].currency": "string",
  "data.items[].currencyRaw": "string",
  "data.items[].price": "number",
  "data.items[].regularPrice": "number",
  "data.items[].totalPriceLabel": "string",
  "data.items[].aggregateRating.rating": "number",
  "data.items[].aggregateRating.reviewCount": "number",
  "data.items[].badges[]": "string",
  "data.items[].highlights[]": "string",
  "data.items[].superhost": "boolean",
  "data.items[].guestFavorite": "boolean"
}

Exemplo de response

responseExample
{
  "requestId": "bbbb1111-1111-4111-8111-bbbbbbbbbbbb",
  "executionId": "bbbb2222-2222-4222-8222-bbbbbbbbbbbb",
  "data": {
    "source": "airbnb.com.br",
    "type": "plp",
    "url": "https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2",
    "requestUrl": "https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2",
    "extractedAt": "2026-02-17T20:40:00.000Z",
    "address": "curitiba",
    "query": "curitiba",
    "startDate": "2026-02-20",
    "endDate": "2026-02-22",
    "numAdults": 2,
    "totalResults": 812,
    "primaryResults": 18,
    "page": 1,
    "resultsPerPage": 18,
    "offset": 0,
    "nextPage": 2,
    "nextPageUrl": "https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2&items_offset=18",
    "items": [
      {
        "position": 1,
        "listingId": "1501379416546185177",
        "url": "https://www.airbnb.com.br/rooms/1501379416546185177?adults=2&check_in=2026-02-20&check_out=2026-02-22",
        "title": "Apartamento em Curitiba ⋅ Centro",
        "name": "Loft elegante no centro de Curitiba",
        "category": "Apartamento em Curitiba",
        "city": "Centro",
        "latitude": -25.4294,
        "longitude": -49.2719,
        "thumbnail": "https://a0.muscache.com/im/pictures/sample/thumb.jpg",
        "images": [
          {
            "url": "https://a0.muscache.com/im/pictures/sample/thumb.jpg"
          },
          {
            "url": "https://a0.muscache.com/im/pictures/sample/inside.jpg"
          }
        ],
        "currency": "BRL",
        "currencyRaw": "R$",
        "price": 298,
        "regularPrice": 332,
        "totalPriceLabel": "R$ 596 no total, incluindo taxas",
        "aggregateRating": {
          "rating": 4.95,
          "reviewCount": 87
        },
        "badges": [
          "Preferido dos hospedes",
          "Superhost"
        ],
        "highlights": [
          "2 hospedes",
          "1 quarto",
          "Wi-Fi"
        ],
        "superhost": true,
        "guestFavorite": true
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.address string Campo data.address retornado no payload de resposta. curitiba
data.endDate string (YYYY-MM-DD) Campo data.endDate retornado no payload de resposta. 2026-02-22
data.extractedAt string (iso datetime) Campo data.extractedAt retornado no payload de resposta. 2026-02-17T20:40:00.000Z
data.items[].aggregateRating.rating number Campo data.items[].aggregateRating.rating retornado no payload de resposta. 4.95
data.items[].aggregateRating.reviewCount number Campo data.items[].aggregateRating.reviewCount retornado no payload de resposta. 87
data.items[].badges[] string Campo data.items[].badges[] retornado no payload de resposta. Preferido dos hospedes
data.items[].category string Campo data.items[].category retornado no payload de resposta. Apartamento em Curitiba
data.items[].city string Campo data.items[].city retornado no payload de resposta. Centro
data.items[].currency string Campo data.items[].currency retornado no payload de resposta. BRL
data.items[].currencyRaw string Campo data.items[].currencyRaw retornado no payload de resposta. R$
data.items[].guestFavorite boolean Campo data.items[].guestFavorite retornado no payload de resposta. true
data.items[].highlights[] string Campo data.items[].highlights[] retornado no payload de resposta. 2 hospedes
data.items[].images[].url string Campo data.items[].images[].url retornado no payload de resposta. https://a0.muscache.com/im/pictures/sample/thumb.jpg
data.items[].latitude number Campo data.items[].latitude retornado no payload de resposta. -25.4294
data.items[].listingId string Campo data.items[].listingId retornado no payload de resposta. 1501379416546185177
data.items[].longitude number Campo data.items[].longitude retornado no payload de resposta. -49.2719
data.items[].name string Campo data.items[].name retornado no payload de resposta. Loft elegante no centro de Curitiba
data.items[].position number Campo data.items[].position retornado no payload de resposta. 1
data.items[].price number Campo data.items[].price retornado no payload de resposta. 298
data.items[].regularPrice number Campo data.items[].regularPrice retornado no payload de resposta. 332
data.items[].superhost boolean Campo data.items[].superhost retornado no payload de resposta. true
data.items[].thumbnail string Campo data.items[].thumbnail retornado no payload de resposta. https://a0.muscache.com/im/pictures/sample/thumb.jpg
data.items[].title string Campo data.items[].title retornado no payload de resposta. Apartamento em Curitiba ⋅ Centro
data.items[].totalPriceLabel string Campo data.items[].totalPriceLabel retornado no payload de resposta. R$ 596 no total, incluindo taxas
data.items[].url string Campo data.items[].url 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.nextPage number Campo data.nextPage retornado no payload de resposta. 2
data.nextPageUrl string Campo data.nextPageUrl retornado no payload de resposta. https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2&items_offset=18
data.numAdults number Campo data.numAdults retornado no payload de resposta. 2
data.offset number Campo data.offset retornado no payload de resposta. 0
data.page number Campo data.page retornado no payload de resposta. 1
data.primaryResults number Campo data.primaryResults retornado no payload de resposta. 18
data.query string Campo data.query retornado no payload de resposta. curitiba
data.requestUrl string Campo data.requestUrl retornado no payload de resposta. https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2
data.resultsPerPage number Campo data.resultsPerPage retornado no payload de resposta. 18
data.source string Campo data.source retornado no payload de resposta. airbnb.com.br
data.startDate string (YYYY-MM-DD) Campo data.startDate retornado no payload de resposta. 2026-02-20
data.totalResults number Campo data.totalResults retornado no payload de resposta. 812
data.type string Campo data.type retornado no payload de resposta. plp
data.url string Campo data.url retornado no payload de resposta. https://www.airbnb.com.br/s/curitiba/homes?refinement_paths%5B%5D=%2Fhomes&date_picker_type=calendar&checkin=2026-02-20&checkout=2026-02-22&adults=2
executionId string (uuid) Campo executionId retornado no payload de resposta. bbbb2222-2222-4222-8222-bbbbbbbbbbbb
requestId string (uuid) Campo requestId retornado no payload de resposta. bbbb1111-1111-4111-8111-bbbbbbbbbbbb

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