Reclamação por ID
Informe o identificador textual que aparece no final da URL pública.
{
"target": "reclameaqui.com.br",
"type": "idp",
"complaintId": "1rCft1v6-JLpFGtC"
} // docs
Carrega uma reclamação pública completa com relato, classificação, status, avaliação do consumidor e todas as interações públicas em ordem cronológica. 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": "idp",
"complaintId": "1rCft1v6-JLpFGtC"
}'
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_idp
Auth
Bearer ou X-API-Key
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "reclameaqui_com_br_idp",
"arguments": {
"complaintId": "1rCft1v6-JLpFGtC",
"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 da reclamação ou informe complaintId. Não envie os dois campos. | - | https://www.mercadolivre.com.br/p/MLB123456 |
| complaintId Identificador publico da reclamacao no Reclame AQUI, normalmente o ultimo segmento da URL. | string | Condicional | Identificador textual no último segmento da URL. Obrigatório quando url não for enviada. | - | 1rCft1v6-JLpFGtC |
| 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 idp. | - | pdp |
Informe o identificador textual que aparece no final da URL pública.
{
"target": "reclameaqui.com.br",
"type": "idp",
"complaintId": "1rCft1v6-JLpFGtC"
} Também é possível enviar diretamente a URL pública completa da reclamação.
{
"target": "reclameaqui.com.br",
"type": "idp",
"url": "https://www.reclameaqui.com.br/nubank/solicitacao-de-reativacao-de-cartao-de-credito-nubank-apos-regularizacao-de-pendencias_1rCft1v6-JLpFGtC/"
} Mapa de paths de saída com tipo esperado para esta API.
{
"requestId": "string (uuid)",
"executionId": "string (uuid)",
"notFound": "boolean (optional; true quando a reclamação 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.complaint.id": "string",
"data.complaint.legacyId": "integer | null",
"data.complaint.title": "string | null",
"data.complaint.description": "string | null",
"data.complaint.createdAt": "string (ISO datetime) | null",
"data.complaint.statusRaw": "string | null",
"data.complaint.status": "string",
"data.complaint.evaluated": "boolean",
"data.complaint.solved": "boolean",
"data.complaint.score": "number | null",
"data.complaint.wouldDoBusinessAgain": "boolean | null",
"data.complaint.evaluationExpiresAt": "string (ISO datetime) | null",
"data.complaint.daysRemaining": "integer | null",
"data.complaint.additionalInfo": "string | null",
"data.complaint.consumer.id": "string | null",
"data.complaint.consumer.city": "string | null",
"data.complaint.consumer.state": "string | null",
"data.complaint.company.id": "string | null",
"data.complaint.company.name": "string | null",
"data.complaint.company.shortname": "string | null",
"data.complaint.company.profileUrl": "string (URL) | null",
"data.complaint.classification.category.id": "string | null",
"data.complaint.classification.category.name": "string | null",
"data.complaint.classification.productType.id": "string | null",
"data.complaint.classification.productType.name": "string | null",
"data.complaint.classification.problemType.id": "string | null",
"data.complaint.classification.problemType.name": "string | null",
"data.complaint.interactions[].id": "string",
"data.complaint.interactions[].sourceType": "string | null",
"data.complaint.interactions[].type": "string",
"data.complaint.interactions[].authorRole": "string",
"data.complaint.interactions[].message": "string | null",
"data.complaint.interactions[].createdAt": "string (ISO datetime) | null"
} {
"requestId": "req_01K0RACOMPLAINT00000000001",
"executionId": "exe_01K0RACOMPLAINT00000000002",
"data": {
"source": "reclameaqui.com.br",
"type": "idp",
"parser": "public_complaint_api",
"url": "https://www.reclameaqui.com.br/nubank/nubank-falha-recorrente-na-resolucao-de-problemas-de-inconsistencia-de-dados-no-app-apos-quitacao-de-emprestimo_C3xZYYfUpkimGRKB/",
"requestUrl": "https://api-green.reclameaqui.com.br/public-complaint-read-service/api/complaint/C3xZYYfUpkimGRKB",
"extractedAt": "2026-07-12T12:33:00.000Z",
"complaint": {
"id": "C3xZYYfUpkimGRKB",
"legacyId": 245964349,
"title": "Nubank: Falha recorrente na resolução de inconsistência de dados no app após quitação de empréstimo",
"description": "Consumidor relata informações incorretas no aplicativo mesmo após a quitação do empréstimo.",
"createdAt": "2026-04-13T21:30:59",
"statusRaw": "ANSWERED",
"status": "SOLVED",
"evaluated": true,
"solved": true,
"score": 10,
"wouldDoBusinessAgain": true,
"evaluationExpiresAt": "2026-07-20T23:59:59.000Z",
"daysRemaining": 8,
"additionalInfo": "Atendimento realizado pelos canais digitais.",
"consumer": {
"id": "consumer_public_id",
"city": "Curitiba",
"state": "PR"
},
"company": {
"id": "88850",
"name": "Nubank",
"shortname": "nubank",
"profileUrl": "https://www.reclameaqui.com.br/empresa/nubank/"
},
"classification": {
"category": {
"id": "0000000000000001",
"name": "Bancos"
},
"productType": {
"id": "0000000000000910",
"name": "Conta"
},
"problemType": {
"id": "0000000000000011",
"name": "Divergência de valores"
}
},
"interactions": [
{
"id": "interaction_company_answer",
"sourceType": "ANSWER",
"type": "ANSWER",
"authorRole": "company",
"message": "A empresa informou que analisou o caso e orientou o consumidor pelos canais oficiais.",
"createdAt": "2026-06-21T10:30:00.000Z"
},
{
"id": "interaction_consumer_reply",
"sourceType": "REPLY",
"type": "REPLY",
"authorRole": "consumer",
"message": "O consumidor confirmou o atendimento e registrou sua avaliação.",
"createdAt": "2026-06-23T16:10:00.000Z"
}
]
}
}
} | Path | Tipo | Descrição | Exemplo |
|---|---|---|---|
| data.complaint.additionalInfo | string | null | Informação adicional pública associada ao caso. | Atendimento realizado pelos canais digitais. |
| data.complaint.classification.category.id | string | null | ID textual da categoria pública associada à reclamação. | 0000000000000001 |
| data.complaint.classification.category.name | string | null | Nome da categoria pública associada à reclamação. | Bancos |
| data.complaint.classification.problemType.id | string | null | ID textual do tipo de problema associado. | 0000000000000011 |
| data.complaint.classification.problemType.name | string | null | Nome do tipo de problema associado. | Divergência de valores |
| data.complaint.classification.productType.id | string | null | ID textual do produto ou serviço associado. | 0000000000000910 |
| data.complaint.classification.productType.name | string | null | Nome do produto ou serviço associado. | Conta |
| data.complaint.company.id | string | null | Identificador textual da empresa reclamada. | 88850 |
| data.complaint.company.name | string | null | Nome público da empresa reclamada. | Nubank |
| data.complaint.company.profileUrl | string (URL) | null | URL canônica do perfil da empresa. | https://www.reclameaqui.com.br/empresa/nubank/ |
| data.complaint.company.shortname | string | null | Slug público da empresa. | nubank |
| data.complaint.consumer.city | string | null | Cidade pública associada à reclamação. | Curitiba |
| data.complaint.consumer.id | string | null | Identificador público do consumidor, sem exposição do nome. | consumer_public_id |
| data.complaint.consumer.state | string | null | UF pública associada à reclamação. | PR |
| data.complaint.createdAt | string (ISO datetime) | null | Data de publicação da reclamação. | 2026-04-13T21:30:59 |
| data.complaint.daysRemaining | integer | null | Dias restantes para avaliação quando aplicável. | 8 |
| data.complaint.description | string | null | Relato público completo do consumidor. | Consumidor relata informações incorretas no aplicativo mesmo após a quitação do empréstimo. |
| data.complaint.evaluated | boolean | Indica se o atendimento foi avaliado pelo consumidor. | true |
| data.complaint.evaluationExpiresAt | string (ISO datetime) | null | Prazo final para avaliação quando informado pela fonte. | 2026-07-20T23:59:59.000Z |
| data.complaint.id | string | Identificador público textual da reclamação. | C3xZYYfUpkimGRKB |
| data.complaint.interactions[].authorRole | string | Papel normalizado do autor, como company ou consumer. | company |
| data.complaint.interactions[].createdAt | string (ISO datetime) | null | Data/hora pública da interação. | 2026-06-21T10:30:00.000Z |
| data.complaint.interactions[].id | string | Identificador textual da interação. | interaction_company_answer |
| data.complaint.interactions[].message | string | null | Conteúdo público integral da interação. | A empresa informou que analisou o caso e orientou o consumidor pelos canais oficiais. |
| data.complaint.interactions[].sourceType | string | null | Tipo bruto da origem/autor da interação. | ANSWER |
| data.complaint.interactions[].type | string | Tipo de evento, como resposta ou réplica. | ANSWER |
| data.complaint.legacyId | integer | null | Identificador numérico legado quando disponível. | 245964349 |
| data.complaint.score | number | null | Nota atribuída pelo consumidor quando há avaliação. | 10 |
| data.complaint.solved | boolean | Indica se o consumidor marcou o problema como resolvido. | true |
| data.complaint.status | string | Status normalizado pela GeckoAPI. | SOLVED |
| data.complaint.statusRaw | string | null | Status bruto retornado pela fonte. | ANSWERED |
| data.complaint.title | string | null | Título público da reclamação. | Nubank: Falha recorrente na resolução de inconsistência de dados no app após quitação de empréstimo |
| data.complaint.wouldDoBusinessAgain | boolean | null | Indica se o consumidor voltaria a fazer negócio. | true |
| data.extractedAt | string (ISO datetime) | Timestamp UTC da extração. | 2026-07-12T12:33:00.000Z |
| data.parser | string | Estratégia usada para consultar e normalizar a API pública de reclamações. | public_complaint_api |
| data.requestUrl | string (URL) | Endpoint upstream efetivamente consultado pelo worker. | https://api-green.reclameaqui.com.br/public-complaint-read-service/api/complaint/C3xZYYfUpkimGRKB |
| data.source | string | Fonte fixa da extração. | reclameaqui.com.br |
| data.type | string | Tipo fixo da extração. | idp |
| data.url | string (URL) | URL pública canônica retornada pela fonte. | https://www.reclameaqui.com.br/nubank/nubank-falha-recorrente-na-resolucao-de-problemas-de-inconsistencia-de-dados-no-app-apos-quitacao-de-emprestimo_C3xZYYfUpkimGRKB/ |
| executionId | string (uuid) | ID interno da execução processada pelo worker. | exe_01K0RACOMPLAINT00000000002 |
| notFound | boolean (optional; true quando a reclamação não existe e data é null) | Presente e true quando a reclamação não é encontrada; nesse caso data é null. | N/A |
| requestId | string (uuid) | ID da requisição HTTP na GeckoAPI. | req_01K0RACOMPLAINT00000000001 |
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. |