Recall Kitchen
Pesquise recalls de produtos e receba notificações.
Documentação
Introdução
Bem-vindo à Documentação para Desenvolvedores do Recall Kitchen. Este site fornece recursos para integração programática com os serviços do Recall Kitchen.
O Recall Kitchen oferece uma API e integrações para agentes (MCP, MPP, x402) para busca de avisos públicos de recall de produtos. Os resultados podem ser incompletos ou imprecisos. A fonte oficial é a que controla. O uso programático é coberto pelos Termos da API.
Dúvidas sobre chaves, limites ou configuração de clientes? Envie um e-mail para support@recallkitchen.com.
Visão Geral
Nossa plataforma oferece suporte a:
Próximo passo: Começando
Começando
Para começar a desenvolver com o Recall Kitchen, você precisará de:
- Uma chave de API da ferramenta
signupdo MCP, ou da página de Integrações do aplicativo - Ou experimente algumas buscas MCP anônimas (sem chave) em um explorador ou demonstração, depois cadastre-se ou pague com x402
- Ou um cliente compatível com x402 para chamadas de pagamento por solicitação após a cota gratuita de IP
- Familiaridade com APIs HTTP ou MCP
Autenticação
Crie uma chave com a ferramenta signup do MCP (e-mail, sem chave existente) ou no aplicativo em Integrações. Envie-a em cada solicitação como Authorization: Bearer rk_... ou X-API-Key: rk_.... As buscas MCP e HTTP usam as mesmas chaves.
O que é gratuito, pago ou exige conta
- Gratuito (sem chave):
initialize,tools/list, recursos, prompts,signupegive_feedback. Algumas chamadas de busca por IP (5/hora, 15/dia):search_product_recalls,search_recalls_by_identifier,search_product_recalls_by_upc,lookup_product,get_product_recall. A busca por imagem não é gratuita. - Pago (x402, USDC na Base): busca anônima após a cota de IP e
search_product_recalls_from_imagesem chave. As ferramentas de conta não funcionam com x402. - Cadastro (e-mail, sem chave): gera uma chave de API, exibida uma única vez. Essa chave não verificada é suficiente para todas as buscas (incluindo imagem), até 3 padrões de monitoramento, notificações e
check_tracked_products. Limites: 60 chamadas de ferramentas/hora, 400/dia, uma chave. Sem inventário. - Verificação: faça login em app.recallkitchen.com com o mesmo e-mail. Desbloqueia o inventário e aumenta os limites para 600/hora, 3.000/dia, três chaves, 20 padrões de monitoramento e 50 produtos de inventário.
O uso é contabilizado por conta, não por chave. Métodos de protocolo como initialize e tools/list, e give_feedback, não contam para as cotas de busca. Respostas com limite de taxa retornam HTTP 429 com um cabeçalho Retry-After e uma dica em JSON para verificar ou pagar com x402.
curl
Buscar recalls:
curl -sS -H "Authorization: Bearer rk_..." \
"https://app.recallkitchen.com/api/sources?q=spinach&limit=10"
Chamar uma ferramenta MCP:
curl -sS -H "Authorization: Bearer rk_..." \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_product_recalls","arguments":{"query":"spinach","limit":3}}}' \
https://app.recallkitchen.com/mcp
Buscar um recall (lotes, UPCs, locais):
curl -sS -H "Authorization: Bearer rk_..." \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_product_recall","arguments":{"recall_id":"RECALL_ID"}}}' \
https://app.recallkitchen.com/mcp
Contra um servidor local, troque o host por http://localhost:8080.
Se uma solicitação falhar ou um cliente não conectar, envie um e-mail para support@recallkitchen.com.
Próximo passo: Integrações para Agentes (MCP, MPP, x402)
Passo anterior: Introdução
Integrações para Agentes (MCP, MPP, x402)
O Recall Kitchen integra-se aos padrões Model Context Protocol (MCP) e Machine Payment Protocol (MPP) para uso de ferramentas por modelos de IA. Nossa implementação MCP utiliza x402 (USDC na Base) para micropagamentos, permitindo acesso pago às ferramentas.
MCP
Consulte o que é gratuito, pago ou exige conta. Algumas chamadas de busca anônimas por IP são gratuitas para exploradores e demonstrações; depois disso, chamadas anônimas são pagas (USDC na Base, $0,025 por chamada) via x402. As ferramentas são gratuitas com uma chave de API. O inventário exige verificação. Regras de pagamento e chaves estão nos Termos da API. As ferramentas de busca retornam objetos de recall compactos com id, source, title, um description truncado, url, publishedOn e até cinco produtos extraídos (lotes/UPCs/locais). Use get_product_recall para a descrição completa e listas extraídas completas. Prompts (check_product, check_upc, scan_image, check_vin) e recursos (recall://docs/tools, recall://docs/sources) estão disponíveis.
Ferramentas públicas
Busca por palavra-chave, identificador, UPC, consulta e obtenção por ID: algumas chamadas anônimas por IP são gratuitas, depois é necessária uma chave de API ou x402. search_product_recalls_from_image (URL de foto, URI de dados ou conteúdo de imagem MCP) exige chave ou x402; não está na cota gratuita. Caminhos de arquivos locais não são aceitos. As ferramentas de lista suportam offset e retornam nextOffset quando há mais resultados.
search_product_recalls
Busca por string de consulta. A consulta usa sintaxe de busca web: palavras sem aspas são AND, OR é ou, -term exclui, frases entre aspas correspondem como unidade (exemplo: Generac Generator -Portable). Filtros opcionais: fonte (cpsc, fdafoodsafety, FDAMedWatch, usda, nhtsa, canada, costco, target, walmart, openfda), sources (lista OU desses valores), since / until, years (1–50, janela de publicação contínua; ignorado se since estiver definido), local (país, região ou lugar, combinado com AND à consulta; CA corresponde à Califórnia e "northern california"; United States não corresponde ao Canadá/Ontário; Canada corresponde a províncias; Mexico corresponde a estados mexicanos, não ao Novo México; EU / Europe correspondem a países europeus), offset e limite (1–100, padrão 3). As descrições são truncadas; chame get_product_recall para o texto completo.
{
"query": "string",
"source": "string",
"sources": ["costco", "target"],
"since": "YYYY-MM-DD",
"until": "YYYY-MM-DD",
"years": 1,
"location": "string",
"offset": 0,
"limit": 3
}
search_product_recalls_by_upc
Busca recalls extraídos por UPC/EAN, ou envie uma imagem de código de barras como URL HTTPS ou URI data:image/...;base64. barcode é um alias para upc; url é um alias para image_url. Retorna found=false com uma dica quando o UPC é desconhecido. Não anexa resultados de palavras-chave não relacionados.
{
"upc": "string",
"barcode": "string",
"image_url": "string",
"url": "string",
"limit": 3
}
search_product_recalls_from_image
Identifica produtos em uma URL de imagem HTTPS pública, uma URI data:image/...;base64 (JPEG, PNG, GIF, WebP, BMP; máx. 8 MiB) ou conteúdo de imagem MCP (type: image com mimeType e data base64). Caminhos de arquivos locais não são suportados. url é um alias para image_url. Cada produto inclui match (upc, model, text ou category) e confidence. Correspondências de categoria (copos genéricos, refrigeradores, tigelas) omitem recalls, a menos que include_category_matches seja verdadeiro. Exige chave de API ou x402; não está incluído na cota anônima gratuita por IP. O aplicativo com login transmite o mesmo pipeline em POST /api/scan/stream (eventos NDJSON); esta ferramenta retorna o JSON final fundido para que os agentes não precisem ler o fluxo.
{
"image_url": "string",
"url": "string",
"limit": 3,
"include_category_matches": false
}
get_product_recall
Busca um recall por ID, incluindo lotes extraídos, UPCs, números de modelo, locais, lojas, informações de contato e URLs de fotos de produtos hospedadas pelo Recall Kitchen.
{
"recall_id": "string"
}
search_recalls_by_identifier
Busca dados de recall extraídos por UPC, código de lote, número de modelo, nome do produto ou VIN. Vários campos são combinados com AND no mesmo produto. vin é decodificado localmente para ano e marca e combinado com campanhas NHTSA (não é uma API ao vivo de VIN não reparado).
{
"upc": "string",
"lot_code": "string",
"model_number": "string",
"product_name": "string",
"vin": "string",
"limit": 3
}
lookup_product
Consulta um produto por UPC. Retorna nome e detalhes de alimentos de marca do USDA quando disponíveis. Retorna found=false quando desconhecido. Não busca recalls.
{
"upc": "string"
}
give_feedback
Relate um bug, capacidade ausente, resultado de busca ruim ou esquema confuso. Sem chave de API ou x402. Não conta para as cotas de busca (limite separado por IP). message é obrigatório e deve incluir os nomes das ferramentas MCP que você chamou, as ações que executou, a consulta ou identificadores e qualquer recall_id. Não envie chaves de API, fotos ou PII. category opcional: bad_result, tool_error, missing_capability, confusing_schema, docs, other. severity opcional: blocked, workaround, annoyance.
{
"message": "string",
"category": "bad_result",
"severity": "workaround"
}
Ferramentas de conta
signup é gratuito (sem chave de API, sem x402). As outras ferramentas de conta exigem chave de API; chamadas x402 recebem um erro. Chaves de cadastro não verificado podem adicionar alguns padrões de monitoramento. O inventário exige verificação (faça login no site com o mesmo e-mail).
signup
Crie uma conta a partir de um e-mail e receba uma chave de API uma única vez. Sem chave existente ou pagamento x402. name é opcional. accept_terms deve ser verdadeiro: a pessoa concorda com os Termos, a Política de Privacidade e os Termos da API. Não reemite uma chave se o e-mail já tiver uma conta. Contas não verificadas têm limites de taxa menores até você fazer login em app.recallkitchen.com com o mesmo e-mail.
{
"email": "string",
"name": "string",
"accept_terms": true
}
create_api_key
Cria uma chave de API adicional para esta conta. Exige uma chave de API existente. Contas não verificadas podem ter apenas uma chave; contas verificadas podem ter três. O uso é compartilhado entre as chaves. kind é user ou agent (padrão agent).
{
"name": "string",
"kind": "agent"
}
list_api_keys
Lista as chaves de API desta conta (id, nome, prefixo, criação). Segredos não são exibidos. Também retorna os limites atuais da conta. Exige chave de API.
{}
revoke_api_key
Revoga uma chave de API por key_id de list_api_keys. Exige chave de API. Revogar a chave atual fará com que chamadas subsequentes falhem.
{
"key_id": "string"
}
check_tracked_products
Verifica os padrões de monitoramento e o inventário desta chave de API contra recalls indexados atuais (incluindo avisos históricos). Não cria notificações. Padrões genéricos como food ou hazard correspondem apenas a palavras inteiras em títulos e não são usados como consultas de busca, a menos que o peso seja 7 ou mais.
{
"limit": 3,
"offset": 0
}
list_watch_patterns
Lista os padrões de monitoramento de recall desta chave de API.
{}
add_watch_pattern
Adiciona um padrão de monitoramento de recall. Mesma sintaxe de busca web que search_product_recalls (AND, OR, -exclude, frases entre aspas). O peso é de 0 a 8 e o padrão é 4.
{
"pattern": "string",
"weight": 4
}
remove_watch_pattern
Remove um padrão de monitoramento.
{
"pattern": "string"
}
list_inventory
Lista os produtos de inventário rastreados desta chave de API.
{
"query": "string",
"limit": 3
}
add_inventory_product
Adiciona um produto ao inventário desta chave de API. Exige conta verificada (faça login em app.recallkitchen.com com o e-mail de cadastro). Chaves não verificadas não podem adicionar inventário.
{
"name": "string",
"brand": "string",
"category": "string",
"sku": "string"
}
remove_inventory_product
Remove um produto de inventário por id de list_inventory.
{
"id": 1
}
list_recall_notifications
Lista notificações de recall para esta chave de API. unread tem padrão verdadeiro. Vazio para contas novas até que um novo recall correspondente seja publicado; isso não é um preenchimento retroativo de check_tracked_products. Cada item inclui um message curto em texto simples. Abra um aviso no navegador em https://app.recallkitchen.com/r/{recall_id}.
{
"unread": true,
"limit": 3
}
mark_notification_read
Marca uma notificação de recall como lida (padrão) ou não lida. recall_id vem de list_recall_notifications. Exige chave de API.
{
"recall_id": "string",
"read": true
}
Pagamentos x402
Após a cota gratuita de busca por IP, chamadas de busca MCP anônimas exigem pagamentos x402 (USDC na Base). A busca por imagem nunca faz parte da cota anônima gratuita. Envie uma chave de API para pular o pagamento. As ferramentas de conta não estão disponíveis via x402; chame signup para obter uma chave.
Endpoints MCP
O endpoint MCP do Recall Kitchen é https://app.recallkitchen.com/mcp (ou http://localhost:8080/mcp quando executado localmente).
Authorization: Bearer rk_...
Grok, Claude Code e Cursor
A maioria dos clientes MCP não tem um campo de chave de API na interface de adição. Envie a chave como um cabeçalho HTTP. Se um cliente ainda não conectar, envie um e-mail para support@recallkitchen.com.
Grok
Use X-API-Key, não Authorization: Bearer. O cliente MCP HTTP do Grok trata um cabeçalho Bearer como OAuth e falha no initialize porque o Recall Kitchen não implementa OAuth MCP:
Auth required, when send initialize request
A flag --header é Name: value.
grok mcp add --transport http recall-kitchen https://app.recallkitchen.com/mcp \
--header "X-API-Key: ${RECALL_KITCHEN_API_KEY}"
Local:
grok mcp add --transport http recall-kitchen http://localhost:8080/mcp \
--header "X-API-Key: ${RECALL_KITCHEN_API_KEY}"
Ou em ~/.grok/config.toml:
[mcp_servers.recall-kitchen]
url = "http://localhost:8080/mcp"
enabled = true
[mcp_servers.recall-kitchen.headers]
X-API-Key = "rk_..."
Se você já adicionou o servidor com Authorization: Bearer, altere esse cabeçalho para X-API-Key e atualize com r em /mcps.
Claude Code
O Claude Code envia Authorization como um cabeçalho estático (ele não inicia OAuth quando você passa --header). Forma oficial:
claude mcp add --transport http recall-kitchen https://app.recallkitchen.com/mcp \
--header "Authorization: Bearer ${RECALL_KITCHEN_API_KEY}"
Local:
claude mcp add --transport http recall-kitchen http://localhost:8080/mcp \
--header "Authorization: Bearer ${RECALL_KITCHEN_API_KEY}"
Cursor
Adicione ao .cursor/mcp.json do projeto ou ao ~/.cursor/mcp.json global. O Cursor interpola ${env:VAR} em url e headers:
{
"mcpServers": {
"recall-kitchen": {
"url": "https://app.recallkitchen.com/mcp",
"headers": {
"Authorization": "Bearer ${env:RECALL_KITCHEN_API_KEY}"
}
}
}
}
Claude Code e Cursor enviam Authorization como um cabeçalho estático. O Grok não — ele inicia um handshake OAuth — então o Grok deve usar X-API-Key.
Exemplos
Cliente Go e exemplos (chave de API ou x402) estão em Recall-Kitchen/rk-mcp. Notas de implementação: docs/mcp.md. Habilidade do agente (qual ferramenta chamar, sintaxe de consulta, armadilhas de localização): docs/skills/search-product-recalls/SKILL.md.
MPP
Em breve —
Próximo passo: SDKs
Passo anterior: Introdução
Referência da API
Pesquise recalls a partir de software com uma chave de API. Crie chaves no aplicativo em Integrações, ou com as ferramentas MCP signup / create_api_key. O documento OpenAPI 3.1 legível por máquina está em https://app.recallkitchen.com/openapi.json (descoberta x402scan / AgentCash). Os metadados de pagamento x402 também estão em /.well-known/x402.
Pesquisar recalls
GET /api/sources?q=spinach&source=costco&source=target&since=2025-09-09&limit=10
O parâmetro q usa a mesma sintaxe de pesquisa web que search_product_recalls: palavras sem aspas são AND, OR é ou, -term exclui, frases entre aspas correspondem como uma unidade. Repita ou separe por vírgula source para incluir vários. since e until são limites publicados de YYYY-MM-DD. O aplicativo calcula since a partir do controle Último ano / 3 anos / 5 anos. O years=1 opcional (até 50) é um atalho contínuo se since for omitido.
curl -sS -H "Authorization: Bearer rk_..." \
"https://app.recallkitchen.com/api/sources?q=spinach&source=costco&source=target&since=2025-09-09&limit=10"
curl -sS -H "X-API-Key: rk_..." \
"http://localhost:8080/api/sources?q=spinach&limit=10"
Sessões de navegador conectadas continuam funcionando sem chave. Clientes HTTP anônimos podem pagar com x402.
Páginas públicas de recall
Cada aviso tem um link permanente público que não exige login: https://app.recallkitchen.com/r/{recall_id}. Compartilhar pelo aplicativo usa esta URL. O HTML inclui tags Open Graph (título, descrição e uma imagem HTTPS pública) para que links colados tenham pré-visualização no iMessage, Slack e similares. O mesmo id é o endpoint JSON:
GET /api/recalls/{recall_id} (sem autenticação)
curl -sS "https://app.recallkitchen.com/api/recalls/RECALL_ID"
O JSON inclui o recall e lotes extraídos, UPCs, modelos, locais e imagens. Um id ausente retorna HTTP 404.
Endpoints do aplicativo autenticados por sessão incluem digitalização de imagem (POST /api/scan/stream NDJSON; catálogo de eventos no documento OpenAPI), inventário, padrões de observação, notificações, GET /api/tracked (verificação ao vivo de observação/inventário, igual a check_tracked_products) e /api/keys. As ferramentas MCP cobrem pesquisa de UPC e imagem para agentes.
Perguntas sobre esses endpoints: support@recallkitchen.com.
Próximo passo: SDKs
Passo anterior: Introdução
Exemplos
Uso de ferramentas MCP
Fluxo de pagamento
Veja o que é gratuito, pago ou exige conta. Chaves de API de signup são gratuitas (com limite de taxa). Algumas pesquisas MCP por IP são gratuitas sem chave. Depois disso, a pesquisa anônima é paga via x402. O inventário exige login no site para verificação.
Próximo passo: FAQ
Passo anterior: SDKs
FAQ
Quais recalls vocês suportam?
Atualmente ingerimos CPSC dos Estados Unidos, FDA (incluindo execução openFDA), USDA, recalls de veículos NHTSA, recalls e alertas de segurança da Health Canada / CFIA, além de listagens de varejistas da Costco, Target e Walmart. A pesquisa VIN corresponde a campanhas NHTSA para o ano e marca decodificados; ela não chama a API ao vivo de VIN não reparado da NHTSA.
Como obtenho uma chave de API?
Chame a ferramenta MCP signup com um e-mail e accept_terms: true, ou entre em app.recallkitchen.com, aceite os Termos e crie uma chave. O uso é coberto pelos Termos da API. Envie como Authorization: Bearer rk_... em /mcp ou /api/sources (o Grok deve usar X-API-Key). Veja curl e Grok / Claude Code / Cursor para exemplos de copiar e colar. Gratuito sem chave: algumas pesquisas MCP por IP. Chaves de cadastro (não verificadas): 60 chamadas de ferramenta por hora e 400 por dia, uma chave e até 3 padrões de observação (sem inventário). Após entrar com esse e-mail (verificação): 600/hora e 3.000/dia, três chaves, 20 padrões e 50 produtos de inventário. Pago/admin: 1.200/hora e 10.000/dia. Após a cota gratuita por IP, clientes anônimos podem pagar por solicitação com x402. Veja acesso.
Posso compartilhar um recall?
Sim. Todo aviso tem uma página pública em https://app.recallkitchen.com/r/{recall_id} (sem login). No aplicativo, Compartilhar abre essa URL. Links colados mostram pré-visualização do título e da imagem do recall. Agentes podem usar o mesmo id com get_product_recall ou GET /api/recalls/{recall_id}.
Como as fotos de digitalização e os quadros da câmera de código de barras são tratados?
Uploads de fotos e ferramentas de imagem MCP enviam a imagem para nossos servidores. Cópias armazenadas são usadas para corresponder recalls e, por padrão, para melhorar a detecção. A câmera de código de barras no aplicativo lê códigos UPC e EAN no navegador; esses quadros não são enviados. Veja a Política de Privacidade.
Como excluo uma digitalização?
Entre e abra a digitalização e escolha Excluir. Você pode remover a foto, os detalhes salvos (nomes de produtos, correspondências e correções) ou ambos. Uma foto removida não é mais usada para melhorar a detecção. Envie e-mail para support@recallkitchen.com para solicitar exclusão parcial ou total da sua conta. Inclua o e-mail da conta e o que você deseja remover.
Com quem entro em contato para perguntas?
Envie e-mail para support@recallkitchen.com para chaves de API, limites de taxa, configuração de cliente MCP (Grok, Claude Code, Cursor) ou qualquer outra coisa nestes documentos.