// docs

Tripadvisor PDP

Extrai os detalhes de um hotel, restaurante ou atração do Tripadvisor, incluindo reputação, endereço, contatos, horários, fotos e campos específicos da categoria.

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.

Quando a entidade consultada não existe na origem, o extract e a tool MCP retornam 200 com data: null e notFound: true. Esse caso é tratado como resposta concluída, não como erro de servidor.

Chamada HTTP

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "tripadvisor.com.br",
  "type": "pdp",
  "url": "https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html"
}'

Chamada MCP

A mesma seam também aparece no MCP hospedado como uma tool dedicada. Os argumentos reaproveitam os campos do extract, mas target e type já ficam fixos pela tool.

Ver guia completo do MCP

Endpoint

POST /v1/mcp

Tool name

tripadvisor_com_br_pdp

Auth

Bearer ou X-API-Key

tripadvisor_com_br_pdp tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "tripadvisor_com_br_pdp",
    "arguments": {
      "url": "https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html",
      "executionId": "exec_example_123"
    }
  }
}

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 pública Hotel_Review, Restaurant_Review ou Attraction_Review em tripadvisor.com.br ou tripadvisor.com. - https://www.mercadolivre.com.br/p/MLB123456
target
Fonte alvo da extração.
enum Obrigatório Sempre obrigatório e deve ser tripadvisor.com.br. - mercadolivre.com.br
type
Tipo da extração: pdp, idp, plp, ilp, quote, review ou places.
enum Obrigatório Sempre obrigatório e deve ser pdp. - pdp

Exemplos de request

Detalhes de uma atração

A categoria e os identificadores são inferidos automaticamente da URL.

Detalhes de uma atração
{
  "target": "tripadvisor.com.br",
  "type": "pdp",
  "url": "https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html"
}

Aceitar uma URL internacional

URLs de tripadvisor.com também são aceitas e normalizadas para tripadvisor.com.br.

Aceitar uma URL internacional
{
  "target": "tripadvisor.com.br",
  "type": "pdp",
  "url": "https://www.tripadvisor.com/Hotel_Review-g303631-d123456-Reviews-Hotel_Exemplo-Sao_Paulo.html"
}

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": "\"pdp\"",
  "data.requestUrl": "string (URL normalizada)",
  "data.extractedAt": "string (ISO datetime)",
  "data.data.locationId": "number",
  "data.data.geoId": "number | null",
  "data.data.url": "string (URL)",
  "data.data.name": "string",
  "data.data.placeType": "\"hotel\" | \"restaurant\" | \"attraction\"",
  "data.data.address": "string | null",
  "data.data.latitude": "number | null",
  "data.data.longitude": "number | null",
  "data.data.rating.rating": "number | null",
  "data.data.rating.reviewCount": "number | null",
  "data.data.ranking": "string | null",
  "data.data.priceLevel": "string (optional)",
  "data.data.categories[]": "string",
  "data.data.description": "string | null",
  "data.data.phone": "string | null",
  "data.data.email": "string (optional)",
  "data.data.website": "string (URL) | null",
  "data.data.openingHours.isOpenNow": "boolean | null",
  "data.data.openingHours.status": "string | null",
  "data.data.openingHours.schedule": "object<string, string[]>",
  "data.data.awards": "string[]",
  "data.data.ratingHistogram": "object<\"1\" | \"2\" | \"3\" | \"4\" | \"5\", number | null>",
  "data.data.photos[].id": "number | null",
  "data.data.photos[].url": "string (URL)",
  "data.data.photos[].caption": "string | null",
  "data.data.hotel": "object (optional)",
  "data.data.restaurant": "object (optional)",
  "data.data.attraction": "object (optional)"
}

Exemplo de response

responseExample
{
  "requestId": "5adc7a31-6663-4dc8-b27c-20ff88ddcb15",
  "executionId": "01K1TRIPADVISORPDP00000001",
  "data": {
    "source": "tripadvisor.com.br",
    "type": "pdp",
    "requestUrl": "https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html",
    "extractedAt": "2026-07-27T18:02:00.000Z",
    "data": {
      "locationId": 311968,
      "geoId": 303631,
      "url": "https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html",
      "name": "Museu de Arte de São Paulo Assis Chateaubriand - MASP",
      "placeType": "attraction",
      "address": "Avenida Paulista, 1578, São Paulo, SP",
      "latitude": -23.5614,
      "longitude": -46.6559,
      "rating": {
        "rating": 4.5,
        "reviewCount": 8072
      },
      "ranking": "#7 de 1149 coisas para fazer em São Paulo",
      "categories": [
        "Museus de arte"
      ],
      "thumbnail": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/masp.jpg",
      "openNow": true,
      "openStatus": "Aberto agora",
      "sponsored": false,
      "description": "Museu de arte localizado na Avenida Paulista.",
      "phone": "+55 11 3149-5959",
      "website": "https://masp.org.br/",
      "openingHours": {
        "isOpenNow": true,
        "status": "Aberto agora",
        "schedule": {
          "terça-feira": [
            "10:00–20:00"
          ]
        }
      },
      "awards": [],
      "ratingHistogram": {
        "1": 76,
        "2": 96,
        "3": 604,
        "4": 2316,
        "5": 3919
      },
      "photos": [
        {
          "id": 123456,
          "url": "https://dynamic-media-cdn.tripadvisor.com/media/photo-o/masp-gallery.jpg",
          "caption": "Vista do museu",
          "width": 1200,
          "height": 800
        }
      ],
      "attraction": {
        "attractionTypes": [
          "Museus de arte"
        ],
        "suggestedDuration": "1 a 2 horas",
        "accessibility": []
      }
    }
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.data.address string | null Endereço público exibido pelo Tripadvisor. Avenida Paulista, 1578, São Paulo, SP
data.data.attraction object (optional) Campos específicos de atração. {"attractionTypes":["Museus de arte"],"suggestedDuration":"1 a 2 horas","accessibility":[]}
data.data.awards string[] Prêmios e reconhecimentos publicados. []
data.data.categories[] string Categorias atribuídas ao local. Museus de arte
data.data.description string | null Descrição pública do local. Museu de arte localizado na Avenida Paulista.
data.data.email string (optional) E-mail público quando disponível. N/A
data.data.geoId number | null Identificador geográfico do destino. 303631
data.data.hotel object (optional) Campos específicos de hospedagem. N/A
data.data.latitude number | null Latitude publicada para o local. -23.5614
data.data.locationId number Identificador público do local no Tripadvisor. 311968
data.data.longitude number | null Longitude publicada para o local. -46.6559
data.data.name string Nome público do estabelecimento ou atração. Museu de Arte de São Paulo Assis Chateaubriand - MASP
data.data.openingHours.isOpenNow boolean | null Indica se o local está aberto no momento da extração. true
data.data.openingHours.schedule object<string, string[]> Agenda semanal agrupada por dia. {"terça-feira":["10:00–20:00"]}
data.data.openingHours.status string | null Texto público do status de funcionamento. Aberto agora
data.data.phone string | null Telefone público do estabelecimento. +55 11 3149-5959
data.data.photos[].caption string | null Legenda pública da foto. Vista do museu
data.data.photos[].id number | null Identificador da foto quando disponível. 123456
data.data.photos[].url string (URL) URL pública da foto. https://dynamic-media-cdn.tripadvisor.com/media/photo-o/masp-gallery.jpg
data.data.placeType "hotel" | "restaurant" | "attraction" Categoria inferida da URL. attraction
data.data.priceLevel string (optional) Faixa de preço textual quando publicada. N/A
data.data.ranking string | null Posição do local no ranking do destino. #7 de 1149 coisas para fazer em São Paulo
data.data.rating.rating number | null Nota agregada do local. 4.5
data.data.rating.reviewCount number | null Quantidade pública de avaliações. 8072
data.data.ratingHistogram object<"1" | "2" | "3" | "4" | "5", number | null> Quantidade de avaliações por nota de 1 a 5. {"1":76,"2":96,"3":604,"4":2316,"5":3919}
data.data.restaurant object (optional) Campos específicos de restaurante. N/A
data.data.url string (URL) URL pública canônica do local. https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html
data.data.website string (URL) | null Site público vinculado ao perfil. https://masp.org.br/
data.extractedAt string (ISO datetime) Data e hora UTC da extração. 2026-07-27T18:02:00.000Z
data.requestUrl string (URL normalizada) URL canônica em tripadvisor.com.br usada na extração. https://www.tripadvisor.com.br/Attraction_Review-g303631-d311968-Reviews-Museu_de_Arte_de_Sao_Paulo_Assis_Chateaubriand_MASP-Sao_Paulo_State_of_Sao_Paulo.html
data.source string Fonte pública consultada. tripadvisor.com.br
data.type "pdp" Tipo de extração executado. pdp
executionId string (uuid) Identificador idempotente da execução. 01K1TRIPADVISORPDP00000001
requestId string (uuid) Identificador da requisição na GeckoAPI. 5adc7a31-6663-4dc8-b27c-20ff88ddcb15

Erros comuns

Respostas com notFound: true não entram nesta tabela, porque retornam sucesso HTTP 200.

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.