PDP por URL
Fluxo direto para extracao de detalhes da acomodacao.
{
"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"
} // docs
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.
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"
}'
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 |
Fluxo direto para extracao de detalhes da acomodacao.
{
"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"
} Mapa de paths de saída com tipo esperado para esta API.
{
"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"
} {
"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"
}
}
} | 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 |
| 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. |