Reclamações mais recentes por empresa
Informe o slug da empresa; page inicia em 1 e complaintStatus usa latest por padrão.
{
"target": "reclameaqui.com.br",
"type": "ilp",
"company": "nubank",
"page": 1,
"complaintStatus": "latest"
} // docs
Lista reclamações públicas de uma empresa com paginação, busca textual, aliases de status, filtros de taxonomia e facets para novas consultas. O pageSize é fixo em 5. Custo: 1 crédito por request.
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.
curl -X POST https://api.geckoapi.com.br/v1/extract \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"target": "reclameaqui.com.br",
"type": "ilp",
"company": "nubank",
"page": 1,
"complaintStatus": "latest"
}'
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.
Endpoint
POST /v1/mcp
Tool name
reclameaqui_com_br_ilp
Auth
Bearer ou X-API-Key
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "reclameaqui_com_br_ilp",
"arguments": {
"company": "nubank",
"page": 1,
"complaintStatus": "latest",
"executionId": "exec_example_123"
}
}
}
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) | Condicional | Envie a URL pública /empresa/{shortname}/lista-reclamacoes/ ou informe company. | - | https://www.mercadolivre.com.br/p/MLB123456 |
| 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 | Opcional | Texto buscado nas reclamações da empresa. | - | iphone 15 pro max |
| company Slug amigavel da empresa no Reclame AQUI. Pode substituir a URL nos endpoints de perfil e listagem de reclamacoes. | string (slug) | Condicional | Slug público da empresa. Obrigatório quando url não for enviada. | - | nubank |
| complaintStatus Filtro amigavel da listagem de reclamacoes no Reclame AQUI. O backend traduz os aliases para os filtros da fonte. | "latest" | "unanswered" | "answered" | "evaluated" | "resolved" | "unresolved" | Opcional | Aliases aceitos: latest, unanswered, answered, evaluated, resolved e unresolved. | latest | unanswered |
| categoryId ID de categoria retornado nos facets do Reclame AQUI ILP para refinar a listagem de reclamacoes. | string | Opcional | ID de categoria retornado em facets.categories. | - | 0000000000000003 |
| problemTypeId ID de tipo de problema retornado nos facets do Reclame AQUI ILP. | string | Opcional | ID de tipo de problema retornado em facets.problems. | - | 0000000000000075 |
| productTypeId ID de produto ou servico retornado nos facets do Reclame AQUI ILP. | string | Opcional | ID de produto ou serviço retornado em facets.products. | - | 0000000000000025 |
| additionalInfoId Campanha especial do Reclame AQUI ILP: blackfriday ou coronavirus. | string | Opcional | Campanha especial da fonte. Valores aceitos: blackfriday ou coronavirus. | - | blackfriday |
| target Fonte alvo da extração. | enum | Obrigatório | Sempre obrigatório e deve ser reclameaqui.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 ilp. | - | pdp |
| page Paginacao. Em PLP, inclusive Trivago, e no Reclame AQUI ILP inicia em 1; em review (MercadoLivre, Booking e Hoteis) inicia em 0. O Reclame AQUI ILP aceita ate a pagina 100. | integer | Opcional | Página 1-based. A fonte suporta no máximo a página 100. | 1 | 2 |
Informe o slug da empresa; page inicia em 1 e complaintStatus usa latest por padrão.
{
"target": "reclameaqui.com.br",
"type": "ilp",
"company": "nubank",
"page": 1,
"complaintStatus": "latest"
} Filtra a página de reclamações por termo e pelo alias amigável answered.
{
"target": "reclameaqui.com.br",
"type": "ilp",
"url": "https://www.reclameaqui.com.br/empresa/nubank/lista-reclamacoes/",
"keyword": "pix",
"complaintStatus": "answered",
"page": 2
} Reutilize IDs retornados em facets para categoria, produto e problema; especial aceita blackfriday ou coronavirus.
{
"target": "reclameaqui.com.br",
"type": "ilp",
"company": "nubank",
"categoryId": "0000000000000003",
"productTypeId": "0000000000000025",
"problemTypeId": "0000000000000075",
"additionalInfoId": "blackfriday",
"page": 1
} Mapa de paths de saída com tipo esperado para esta API.
{
"requestId": "string (uuid)",
"executionId": "string (uuid)",
"notFound": "boolean (optional; true quando a empresa não existe e data é null)",
"data.source": "string",
"data.type": "string",
"data.parser": "string",
"data.url": "string (URL)",
"data.requestUrl": "string (URL)",
"data.extractedAt": "string (ISO datetime)",
"data.company.id": "string",
"data.company.name": "string | null",
"data.company.shortname": "string",
"data.company.profileUrl": "string (URL)",
"data.company.logoUrl": "string (URL) | null",
"data.company.verified": "boolean",
"data.company.verificationStatus": "string | null",
"data.company.reputationStatus": "string | null",
"data.company.score": "number | null",
"data.filters.page": "integer",
"data.filters.pageSize": "integer",
"data.filters.keyword": "string | null",
"data.filters.status": "string",
"data.filters.categoryId": "string | null",
"data.filters.productTypeId": "string | null",
"data.filters.problemTypeId": "string | null",
"data.filters.additionalInfoId": "string | null",
"data.pagination.page": "integer",
"data.pagination.pageSize": "integer",
"data.pagination.totalCount": "integer",
"data.pagination.totalPages": "integer",
"data.pagination.hasPreviousPage": "boolean",
"data.pagination.hasNextPage": "boolean",
"data.pagination.maxSupportedPage": "integer",
"data.facets.categories[].id": "string",
"data.facets.categories[].name": "string | null",
"data.facets.categories[].count": "integer",
"data.facets.products[].id": "string",
"data.facets.products[].name": "string | null",
"data.facets.products[].count": "integer",
"data.facets.problems[].id": "string",
"data.facets.problems[].name": "string | null",
"data.facets.problems[].count": "integer",
"data.complaints[].id": "string",
"data.complaints[].title": "string | null",
"data.complaints[].description": "string | null",
"data.complaints[].canonicalUrl": "string (URL)",
"data.complaints[].createdAt": "string (ISO datetime) | null",
"data.complaints[].statusRaw": "string | null",
"data.complaints[].status": "string",
"data.complaints[].evaluated": "boolean",
"data.complaints[].solved": "boolean"
} {
"requestId": "req_01K0RALISTNUBANK0000000001",
"executionId": "exe_01K0RALISTNUBANK0000000002",
"data": {
"source": "reclameaqui.com.br",
"type": "ilp",
"parser": "next_data_and_network_capture",
"url": "https://www.reclameaqui.com.br/empresa/nubank/lista-reclamacoes/?pagina=2&busca=pix&status=ANSWERED&categoria=0000000000000003&produto=0000000000000025&problema=0000000000000075&especial=blackfriday",
"requestUrl": "https://www.reclameaqui.com.br/empresa/nubank/lista-reclamacoes/?pagina=2&busca=pix&status=ANSWERED&categoria=0000000000000003&produto=0000000000000025&problema=0000000000000075&especial=blackfriday",
"extractedAt": "2026-07-12T12:32:00.000Z",
"company": {
"id": "88850",
"name": "Nubank",
"shortname": "nubank",
"profileUrl": "https://www.reclameaqui.com.br/empresa/nubank/",
"logoUrl": "https://img.reclameaqui.com.br/company/nubank/logo.png",
"verified": true,
"verificationStatus": "SHOW_VERIFIED",
"reputationStatus": "RA1000",
"score": 8.1
},
"filters": {
"page": 2,
"pageSize": 5,
"keyword": "pix",
"status": "answered",
"categoryId": "0000000000000003",
"productTypeId": "0000000000000025",
"problemTypeId": "0000000000000075",
"additionalInfoId": "blackfriday"
},
"pagination": {
"page": 2,
"pageSize": 5,
"totalCount": 284,
"totalPages": 57,
"hasPreviousPage": true,
"hasNextPage": true,
"maxSupportedPage": 100
},
"facets": {
"categories": [
{
"id": "0000000000000003",
"name": "Cartões de Crédito",
"count": 96
}
],
"products": [
{
"id": "0000000000000025",
"name": "Cartão de crédito",
"count": 171
}
],
"problems": [
{
"id": "0000000000000075",
"name": "Cobrança indevida",
"count": 43
}
]
},
"complaints": [
{
"id": "1rCft1v6-JLpFGtC",
"title": "Solicitação de reativação de cartão após regularização",
"description": "Consumidor relata que regularizou as pendências e solicita nova análise do cartão.",
"canonicalUrl": "https://www.reclameaqui.com.br/nubank/solicitacao-de-reativacao-de-cartao-de-credito-nubank-apos-regularizacao-de-pendencias_1rCft1v6-JLpFGtC/",
"createdAt": "2026-06-20T14:15:00.000Z",
"statusRaw": "ANSWERED",
"status": "ANSWERED",
"evaluated": false,
"solved": false
}
]
}
} | Path | Tipo | Descrição | Exemplo |
|---|---|---|---|
| data.company.id | string | Identificador textual da empresa. | 88850 |
| data.company.logoUrl | string (URL) | null | URL do logotipo público. | https://img.reclameaqui.com.br/company/nubank/logo.png |
| data.company.name | string | null | Nome público da empresa. | Nubank |
| data.company.profileUrl | string (URL) | URL canônica do perfil da empresa. | https://www.reclameaqui.com.br/empresa/nubank/ |
| data.company.reputationStatus | string | null | Faixa textual de reputação. | RA1000 |
| data.company.score | number | null | Nota agregada de reputação. | 8.1 |
| data.company.shortname | string | Slug público da empresa. | nubank |
| data.company.verificationStatus | string | null | Status textual da verificação. | SHOW_VERIFIED |
| data.company.verified | boolean | Indica se a empresa está verificada. | true |
| data.complaints[].canonicalUrl | string (URL) | URL canônica para abrir o caso completo. | https://www.reclameaqui.com.br/nubank/solicitacao-de-reativacao-de-cartao-de-credito-nubank-apos-regularizacao-de-pendencias_1rCft1v6-JLpFGtC/ |
| data.complaints[].createdAt | string (ISO datetime) | null | Data de publicação da reclamação. | 2026-06-20T14:15:00.000Z |
| data.complaints[].description | string | null | Trecho ou descrição pública da reclamação. | Consumidor relata que regularizou as pendências e solicita nova análise do cartão. |
| data.complaints[].evaluated | boolean | Indica se o consumidor avaliou o atendimento. | false |
| data.complaints[].id | string | Identificador público textual da reclamação. | 1rCft1v6-JLpFGtC |
| data.complaints[].solved | boolean | Indica se o consumidor marcou o caso como resolvido. | false |
| data.complaints[].status | string | Status normalizado pela GeckoAPI. | ANSWERED |
| data.complaints[].statusRaw | string | null | Status bruto retornado pela fonte. | ANSWERED |
| data.complaints[].title | string | null | Título público da reclamação. | Solicitação de reativação de cartão após regularização |
| data.extractedAt | string (ISO datetime) | Timestamp UTC da extração. | 2026-07-12T12:32:00.000Z |
| data.facets.categories[].count | integer | Quantidade de resultados nessa categoria. | 96 |
| data.facets.categories[].id | string | ID reutilizável da categoria. | 0000000000000003 |
| data.facets.categories[].name | string | null | Nome da categoria. | Cartões de Crédito |
| data.facets.problems[].count | integer | Quantidade de resultados nesse tipo de problema. | 43 |
| data.facets.problems[].id | string | ID reutilizável do tipo de problema. | 0000000000000075 |
| data.facets.problems[].name | string | null | Nome do tipo de problema. | Cobrança indevida |
| data.facets.products[].count | integer | Quantidade de resultados nesse produto ou serviço. | 171 |
| data.facets.products[].id | string | ID reutilizável do produto ou serviço. | 0000000000000025 |
| data.facets.products[].name | string | null | Nome do produto ou serviço. | Cartão de crédito |
| data.filters.additionalInfoId | string | null | Campanha especial aplicada (blackfriday ou coronavirus), ou null. | blackfriday |
| data.filters.categoryId | string | null | ID de categoria aplicado, ou null sem filtro. | 0000000000000003 |
| data.filters.keyword | string | null | Termo textual aplicado à listagem. | pix |
| data.filters.page | integer | Página solicitada após normalização. | 2 |
| data.filters.pageSize | integer | Tamanho fixo da página, sempre 5. | 5 |
| data.filters.problemTypeId | string | null | ID de problema aplicado, ou null. | 0000000000000075 |
| data.filters.productTypeId | string | null | ID de produto/serviço aplicado, ou null. | 0000000000000025 |
| data.filters.status | string | Alias amigável de status aplicado. | answered |
| data.pagination.hasNextPage | boolean | Indica se há próxima página. | true |
| data.pagination.hasPreviousPage | boolean | Indica se há página anterior. | true |
| data.pagination.maxSupportedPage | integer | Maior página permitida pela integração. | 100 |
| data.pagination.page | integer | Página atual, iniciando em 1. | 2 |
| data.pagination.pageSize | integer | Quantidade fixa de itens por página. | 5 |
| data.pagination.totalCount | integer | Total de reclamações encontradas para os filtros. | 284 |
| data.pagination.totalPages | integer | Total calculado de páginas. | 57 |
| data.parser | string | Estratégia combinada de dados da página e captura de rede. | next_data_and_network_capture |
| data.requestUrl | string (URL) | URL upstream efetivamente consultada pelo worker. | https://www.reclameaqui.com.br/empresa/nubank/lista-reclamacoes/?pagina=2&busca=pix&status=ANSWERED&categoria=0000000000000003&produto=0000000000000025&problema=0000000000000075&especial=blackfriday |
| data.source | string | Fonte fixa da extração. | reclameaqui.com.br |
| data.type | string | Tipo fixo da extração. | ilp |
| data.url | string (URL) | URL pública canônica da listagem com os filtros aplicados. | https://www.reclameaqui.com.br/empresa/nubank/lista-reclamacoes/?pagina=2&busca=pix&status=ANSWERED&categoria=0000000000000003&produto=0000000000000025&problema=0000000000000075&especial=blackfriday |
| executionId | string (uuid) | ID interno da execução processada pelo worker. | exe_01K0RALISTNUBANK0000000002 |
| notFound | boolean (optional; true quando a empresa não existe e data é null) | Presente e true quando a empresa não é encontrada; nesse caso data é null. | N/A |
| requestId | string (uuid) | ID da requisição HTTP na GeckoAPI. | req_01K0RALISTNUBANK0000000001 |
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. |