// docs

Tripadvisor Search

Pesquisa hotéis, restaurantes e atrações no Tripadvisor por palavra-chave, com filtro opcional de categoria e resultados normalizados.

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": "search",
  "keyword": "MASP"
}'

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_search

Auth

Bearer ou X-API-Key

tripadvisor_com_br_search tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "tripadvisor_com_br_search",
    "arguments": {
      "keyword": "MASP",
      "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
keyword
Palavra-chave para buscas PLP. Em Google Search ela representa a query enviada ao Google; em Booking PLP é obrigatória; em outros PLPs pode substituir a URL.
string Obrigatório Texto livre pesquisado no Tripadvisor. - iphone 15 pro max
placeType
Categoria de local no Tripadvisor. É obrigatória no PLP, opcional na busca geral e inferida automaticamente da URL em PDP e Review.
"hotel" | "restaurant" | "attraction" Opcional Filtra os resultados por hotel, restaurant ou attraction. - attraction
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 search. - pdp

Exemplos de request

Pesquisar em todas as categorias

Retorna os locais encontrados para a palavra-chave, independentemente da categoria.

Pesquisar em todas as categorias
{
  "target": "tripadvisor.com.br",
  "type": "search",
  "keyword": "MASP"
}

Pesquisar apenas atrações

Restringe os resultados normalizados a atrações.

Pesquisar apenas atrações
{
  "target": "tripadvisor.com.br",
  "type": "search",
  "keyword": "museus em São Paulo",
  "placeType": "attraction"
}

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": "\"search\"",
  "data.requestUrl": "string (URL)",
  "data.extractedAt": "string (ISO datetime)",
  "data.keyword": "string",
  "data.placeType": "\"hotel\" | \"restaurant\" | \"attraction\" | null",
  "data.totalResults": "number",
  "data.items[].locationId": "number",
  "data.items[].geoId": "number | null",
  "data.items[].url": "string (URL)",
  "data.items[].name": "string",
  "data.items[].placeType": "\"hotel\" | \"restaurant\" | \"attraction\"",
  "data.items[].address": "string | null",
  "data.items[].latitude": "number | null",
  "data.items[].longitude": "number | null",
  "data.items[].rating.rating": "number | null",
  "data.items[].rating.reviewCount": "number | null",
  "data.items[].ranking": "string | null",
  "data.items[].priceLevel": "string (optional)",
  "data.items[].categories[]": "string",
  "data.items[].thumbnail": "string (URL) | null",
  "data.items[].openNow": "boolean | null",
  "data.items[].openStatus": "string | null",
  "data.items[].sponsored": "boolean"
}

Exemplo de response

responseExample
{
  "requestId": "8dad333d-ae0c-47d7-bdd7-6de811a25d99",
  "executionId": "01K1TRIPADVISORSEARCH000001",
  "data": {
    "source": "tripadvisor.com.br",
    "type": "search",
    "requestUrl": "https://www.tripadvisor.com.br/Search?q=MASP",
    "extractedAt": "2026-07-27T18:00:00.000Z",
    "keyword": "MASP",
    "placeType": "attraction",
    "totalResults": 1,
    "items": [
      {
        "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
      }
    ]
  }
}

Referência completa de campos

Path Tipo Descrição Exemplo
data.extractedAt string (ISO datetime) Data e hora UTC da extração. 2026-07-27T18:00:00.000Z
data.items[].address string | null Endereço publicado no resultado. Avenida Paulista, 1578, São Paulo, SP
data.items[].categories[] string Categorias públicas do local. Museus de arte
data.items[].geoId number | null Identificador geográfico do destino no Tripadvisor. 303631
data.items[].latitude number | null Latitude publicada para o local. -23.5614
data.items[].locationId number Identificador público do estabelecimento no Tripadvisor. 311968
data.items[].longitude number | null Longitude publicada para o local. -46.6559
data.items[].name string Nome público do local. Museu de Arte de São Paulo Assis Chateaubriand - MASP
data.items[].openNow boolean | null Indica se o local está aberto. true
data.items[].openStatus string | null Texto público do status de funcionamento. Aberto agora
data.items[].placeType "hotel" | "restaurant" | "attraction" Categoria normalizada do local. attraction
data.items[].priceLevel string (optional) Faixa de preço textual quando publicada. N/A
data.items[].ranking string | null Posição no ranking do destino. #7 de 1149 coisas para fazer em São Paulo
data.items[].rating.rating number | null Nota agregada do local. 4.5
data.items[].rating.reviewCount number | null Quantidade pública de avaliações. 8072
data.items[].sponsored boolean Indica se o resultado foi identificado como patrocinado. false
data.items[].thumbnail string (URL) | null Imagem principal exibida no resultado. https://dynamic-media-cdn.tripadvisor.com/media/photo-o/masp.jpg
data.items[].url string (URL) URL pública 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.keyword string Palavra-chave recebida na requisição. MASP
data.placeType "hotel" | "restaurant" | "attraction" | null Categoria aplicada à busca ou null quando todas foram aceitas. attraction
data.requestUrl string (URL) URL pública equivalente à pesquisa solicitada. https://www.tripadvisor.com.br/Search?q=MASP
data.source string Fonte pública consultada. tripadvisor.com.br
data.totalResults number Quantidade de resultados retornados nesta busca. 1
data.type "search" Tipo de extração executado. search
executionId string (uuid) Identificador idempotente da execução. 01K1TRIPADVISORSEARCH000001
requestId string (uuid) Identificador da requisição na GeckoAPI. 8dad333d-ae0c-47d7-bdd7-6de811a25d99

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.