Recall Kitchen
Buscar retiradas de productos y recibir notificaciones
Documentación
Introducción
Bienvenido a la documentación para desarrolladores de Recall Kitchen. Este sitio proporciona recursos para integrarse con los servicios de Recall Kitchen mediante programación.
Recall Kitchen ofrece una API e integraciones de agentes (MCP, MPP, x402) para buscar avisos públicos de retirada de productos. Los resultados pueden ser incompletos o no coincidir exactamente. La fuente oficial es la que controla. El uso programático está cubierto por los Términos de la API.
¿Preguntas sobre claves, límites o configuración del cliente? Envía un correo a support@recallkitchen.com.
Descripción general
Nuestra plataforma admite:
Siguiente paso: Primeros pasos
Primeros pasos
Para comenzar a desarrollar con Recall Kitchen, necesitarás:
- Una clave de API de la herramienta
signupde MCP, o de la página de Integraciones de la aplicación - O probar algunas búsquedas MCP anónimas (sin clave) desde un explorador o demo, y luego registrarte o pagar con x402
- O un cliente compatible con x402 para llamadas de pago por solicitud después de la cuota IP gratuita
- Familiaridad con APIs HTTP o MCP
Autenticación
Crea una clave con la herramienta signup de MCP (correo electrónico, sin clave existente) o en la aplicación en Integraciones. Envíala en cada solicitud como Authorization: Bearer rk_... o X-API-Key: rk_.... Las búsquedas MCP y HTTP usan las mismas claves.
Qué es gratuito, de pago o requiere una cuenta
- Gratuito (sin clave):
initialize,tools/list, recursos, indicaciones,signupygive_feedback. Algunas llamadas de búsqueda por IP (5/hora, 15/día):search_product_recalls,search_recalls_by_identifier,search_product_recalls_by_upc,lookup_product,get_product_recall. La búsqueda de imágenes no es gratuita. - De pago (x402, USDC en Base): búsqueda anónima después de la cuota IP, y
search_product_recalls_from_imagesin clave. Las herramientas de cuenta no funcionan con x402. - Registro (correo electrónico, sin clave): genera una clave de API, mostrada una vez. Esa clave no verificada es suficiente para todas las búsquedas (incluidas las de imágenes), hasta 3 patrones de seguimiento, notificaciones y
check_tracked_products. Límites: 60 llamadas de herramientas/hora, 400/día, una clave. Sin inventario. - Verificación: inicia sesión en app.recallkitchen.com con el mismo correo electrónico. Desbloquea el inventario y eleva los límites a 600/hora, 3.000/día, tres claves, 20 patrones de seguimiento y 50 productos de inventario.
El uso se cuenta por cuenta, no por clave. Los métodos de protocolo como initialize y tools/list, y give_feedback, no cuentan para las cuotas de búsqueda. Las respuestas con límite de velocidad devuelven HTTP 429 con un encabezado Retry-After y una sugerencia JSON para verificar o pagar con x402.
curl
Buscar retiradas:
curl -sS -H "Authorization: Bearer rk_..." \
"https://app.recallkitchen.com/api/sources?q=spinach&limit=10"
Llamar a una herramienta 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
Obtener una retirada (lotes, UPC, ubicaciones):
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 un servidor local, cambia el host por http://localhost:8080.
Si una solicitud falla o un cliente no se conecta, envía un correo a support@recallkitchen.com.
Siguiente paso: Integraciones de agentes (MCP, MPP, x402)
Paso anterior: Introducción
Integraciones de agentes (MCP, MPP, x402)
Recall Kitchen se integra con los estándares Model Context Protocol (MCP) y Machine Payment Protocol (MPP) para el uso de herramientas por modelos de IA. Nuestra implementación de MCP aprovecha x402 (USDC en Base) para micropagos, lo que permite el acceso de pago a las herramientas.
MCP
Consulta qué es gratuito, de pago o requiere una cuenta. Algunas llamadas de búsqueda anónimas por IP son gratuitas para exploradores y demos; después, las llamadas anónimas son de pago (USDC en Base, $0,025 por llamada) mediante x402. Las herramientas son gratuitas con una clave de API. El inventario requiere verificación. Los pagos y las reglas de claves están en los Términos de la API. Las herramientas de búsqueda devuelven objetos de retirada compactos con id, source, title, un description truncado, url, publishedOn y hasta cinco productos extraídos (lotes/UPC/ubicaciones). Usa get_product_recall para la descripción completa y las listas extraídas completas. Las indicaciones (check_product, check_upc, scan_image, check_vin) y los recursos (recall://docs/tools, recall://docs/sources) están disponibles.
Herramientas públicas
Búsqueda por palabra clave, identificador, UPC, consulta y obtención por ID: algunas llamadas anónimas por IP son gratuitas, luego se necesita una clave de API o x402. search_product_recalls_from_image (URL de foto, URI de datos o contenido de imagen MCP) necesita una clave o x402; no está en la cuota gratuita. No se aceptan rutas de archivos locales. Las herramientas de lista admiten offset y devuelven nextOffset cuando existen más resultados.
search_product_recalls
Busca por cadena de consulta. La consulta usa sintaxis de búsqueda web: las palabras sin comillas son Y, OR es o, -term excluye, las frases entre comillas coinciden como unidad (ejemplo: Generac Generator -Portable). Filtros opcionales: fuente (cpsc, fdafoodsafety, FDAMedWatch, usda, nhtsa, canada, costco, target, walmart, openfda), sources (lista O de esos valores), since / until, years (1–50, ventana de publicación móvil; se ignora si since está establecido), ubicación (país, región o lugar, combinado con Y con la consulta; CA coincide con California y "northern california"; United States no coincide con Canadá/Ontario; Canada coincide con provincias; Mexico coincide con estados mexicanos, no con Nuevo México; EU / Europe coinciden con países europeos), offset y límite (1–100, predeterminado 3). Las descripciones están truncadas; llama a get_product_recall para el 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 UPC de retiradas extraídas por UPC/EAN, o pasa una imagen de código de barras como URL HTTPS o URI data:image/...;base64. barcode es un alias de upc; url es un alias de image_url. Devuelve found=false con una sugerencia cuando el UPC es desconocido. No adjunta coincidencias de palabras clave no relacionadas.
{
"upc": "string",
"barcode": "string",
"image_url": "string",
"url": "string",
"limit": 3
}
search_product_recalls_from_image
Identifica productos en una URL de imagen HTTPS pública, una URI data:image/...;base64 (JPEG, PNG, GIF, WebP, BMP; máx. 8 MiB) o contenido de imagen MCP (type: image con mimeType y data base64). No se admiten rutas de archivos locales. url es un alias de image_url. Cada producto incluye match (upc, model, text o category) y confidence. Las coincidencias de categoría (tazas genéricas, enfriadores, tazones) omiten retiradas a menos que include_category_matches sea verdadero. Requiere una clave de API o x402; no está incluido en la cuota anónima gratuita por IP. La aplicación con sesión iniciada transmite el mismo pipeline en POST /api/scan/stream (eventos NDJSON); esta herramienta devuelve el JSON fusionado final para que los agentes no tengan que leer la transmisión.
{
"image_url": "string",
"url": "string",
"limit": 3,
"include_category_matches": false
}
get_product_recall
Obtiene una retirada por id, incluidos lotes extraídos, UPC, números de modelo, ubicaciones, tiendas, información de contacto y URL de fotos de productos alojadas por Recall Kitchen.
{
"recall_id": "string"
}
search_recalls_by_identifier
Busca datos de retiradas extraídos por UPC, código de lote, número de modelo, nombre de producto o VIN. Varios campos se combinan con Y en el mismo producto. vin se decodifica localmente a año y marca y se compara con campañas de NHTSA (no es una API de VIN no reparado en vivo).
{
"upc": "string",
"lot_code": "string",
"model_number": "string",
"product_name": "string",
"vin": "string",
"limit": 3
}
lookup_product
Busca un producto por UPC. Devuelve el nombre y los detalles de alimentos de marca del USDA cuando están disponibles. Devuelve found=false cuando es desconocido. No busca retiradas.
{
"upc": "string"
}
give_feedback
Informa de un error, capacidad faltante, mal resultado de búsqueda o esquema confuso. Sin clave de API ni x402. No cuenta para las cuotas de búsqueda (límite separado por IP). message es obligatorio y debe incluir los nombres de las herramientas MCP que llamaste, las acciones que realizaste, la consulta o los identificadores, y cualquier recall_id. No envíes claves de API, fotos ni 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"
}
Herramientas de cuenta
signup es gratuito (sin clave de API, sin x402). Las demás herramientas de cuenta requieren una clave de API; los llamadores x402 reciben un error. Las claves de registro no verificadas pueden agregar algunos patrones de seguimiento. El inventario requiere verificación (inicia sesión en el sitio con el mismo correo electrónico).
signup
Crea una cuenta desde un correo electrónico y recibe una clave de API una vez. Sin clave existente ni pago x402. name es opcional. accept_terms debe ser verdadero: la persona acepta los Términos, la Política de privacidad y los Términos de la API. No reemite una clave si el correo electrónico ya tiene una cuenta. Las cuentas no verificadas tienen límites de velocidad más bajos hasta que inicies sesión en app.recallkitchen.com con el mismo correo electrónico.
{
"email": "string",
"name": "string",
"accept_terms": true
}
create_api_key
Crea una clave de API adicional para esta cuenta. Requiere una clave de API existente. Las cuentas no verificadas pueden tener solo una clave; las cuentas verificadas pueden tener tres. El uso se comparte entre claves. kind es user o agent (predeterminado agent).
{
"name": "string",
"kind": "agent"
}
list_api_keys
Lista las claves de API de esta cuenta (id, nombre, prefijo, creada). Los secretos no se muestran. También devuelve los límites actuales de la cuenta. Requiere una clave de API.
{}
revoke_api_key
Revoca una clave de API por key_id de list_api_keys. Requiere una clave de API. Revocar la clave actual hará que las llamadas posteriores fallen.
{
"key_id": "string"
}
check_tracked_products
Comprueba los patrones de seguimiento y el inventario de esta clave de API contra las retiradas indexadas actuales (incluidos los avisos históricos). No crea notificaciones. Los patrones genéricos como food o hazard solo coinciden con palabras completas en los títulos, y no se usan como consultas de búsqueda a menos que el peso sea 7+.
{
"limit": 3,
"offset": 0
}
list_watch_patterns
Lista los patrones de seguimiento de retiradas de esta clave de API.
{}
add_watch_pattern
Agrega un patrón de seguimiento de retiradas. Misma sintaxis de búsqueda web que search_product_recalls (Y, OR, -exclude, frases entre comillas). El peso es 0–8 y el predeterminado es 4.
{
"pattern": "string",
"weight": 4
}
remove_watch_pattern
Elimina un patrón de seguimiento.
{
"pattern": "string"
}
list_inventory
Lista los productos de inventario rastreados de esta clave de API.
{
"query": "string",
"limit": 3
}
add_inventory_product
Agrega un producto al inventario de esta clave de API. Requiere una cuenta verificada (inicia sesión en app.recallkitchen.com con el correo electrónico de registro). Las claves no verificadas no pueden agregar inventario.
{
"name": "string",
"brand": "string",
"category": "string",
"sku": "string"
}
remove_inventory_product
Elimina un producto de inventario por id de list_inventory.
{
"id": 1
}
list_recall_notifications
Lista las notificaciones de retiradas para esta clave de API. unread tiene como predeterminado verdadero. Vacío para cuentas nuevas hasta que se publique una nueva retirada coincidente; esto no es un relleno de check_tracked_products. Cada elemento incluye un message breve en texto plano. Abre un aviso en un navegador en https://app.recallkitchen.com/r/{recall_id}.
{
"unread": true,
"limit": 3
}
mark_notification_read
Marca una notificación de retirada como leída (predeterminado) o no leída. recall_id proviene de list_recall_notifications. Requiere una clave de API.
{
"recall_id": "string",
"read": true
}
Pagos x402
Después de la cuota de búsqueda gratuita por IP, las llamadas de búsqueda MCP anónimas requieren pagos x402 (USDC en Base). La búsqueda de imágenes nunca forma parte de la cuota anónima gratuita. Envía una clave de API para omitir el pago. Las herramientas de cuenta no están disponibles a través de x402; llama a signup para obtener una clave.
Endpoints MCP
El endpoint MCP de Recall Kitchen es https://app.recallkitchen.com/mcp (o http://localhost:8080/mcp cuando se ejecuta localmente).
Authorization: Bearer rk_...
Grok, Claude Code y Cursor
La mayoría de los clientes MCP no tienen un aviso de clave de API en la interfaz de agregar. Pasa la clave como un encabezado HTTP. Si un cliente aún no se conecta, envía un correo a support@recallkitchen.com.
Grok
Usa X-API-Key, no Authorization: Bearer. El cliente MCP HTTP de Grok trata un encabezado Bearer como OAuth y falla en initialize porque Recall Kitchen no implementa OAuth de MCP:
Auth required, when send initialize request
El indicador --header es 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}"
O en ~/.grok/config.toml:
[mcp_servers.recall-kitchen]
url = "http://localhost:8080/mcp"
enabled = true
[mcp_servers.recall-kitchen.headers]
X-API-Key = "rk_..."
Si ya agregaste el servidor con Authorization: Bearer, cambia ese encabezado a X-API-Key y actualiza con r en /mcps.
Claude Code
Claude Code envía Authorization como un encabezado estático (no inicia OAuth cuando pasas --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
Agrega al .cursor/mcp.json del proyecto o al ~/.cursor/mcp.json global. Cursor interpola ${env:VAR} en url y headers:
{
"mcpServers": {
"recall-kitchen": {
"url": "https://app.recallkitchen.com/mcp",
"headers": {
"Authorization": "Bearer ${env:RECALL_KITCHEN_API_KEY}"
}
}
}
}
Claude Code y Cursor envían Authorization como un encabezado estático. Grok no — inicia un handshake OAuth — por lo que Grok debe usar X-API-Key.
Ejemplos
El cliente Go y los ejemplos (clave API o x402) están en Recall-Kitchen/rk-mcp. Notas de implementación: docs/mcp.md. Habilidad del agente (qué herramienta llamar, sintaxis de consulta, trampas de ubicación): docs/skills/search-product-recalls/SKILL.md.
MPP
Próximamente -
Siguiente paso: SDKs
Paso anterior: Primeros pasos
Referencia de la API
Busca retiros del mercado desde software con una clave API. Crea claves en la aplicación bajo Integraciones, o con las herramientas MCP signup / create_api_key. El documento OpenAPI 3.1 legible por máquina está en https://app.recallkitchen.com/openapi.json (detección x402scan / AgentCash). Los metadatos de pago x402 también están en /.well-known/x402.
Buscar retiros del mercado
GET /api/sources?q=spinach&source=costco&source=target&since=2025-09-09&limit=10
El parámetro q usa la misma sintaxis de búsqueda web que search_product_recalls: las palabras sin comillas son AND, OR es o, -term excluye, las frases entre comillas coinciden como una unidad. Repite o separa con comas source para incluir múltiples. since y until son límites YYYY-MM-DD publicados. La aplicación calcula since desde el control Último año / 3 años / 5 años. El years=1 opcional (hasta 50) es un atajo continuo si se omite since.
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"
Las sesiones de navegador iniciadas continúan funcionando sin clave. Los clientes HTTP anónimos pueden pagar con x402 en su lugar.
Páginas públicas de retiros del mercado
Cada aviso tiene un enlace permanente público que no requiere inicio de sesión: https://app.recallkitchen.com/r/{recall_id}. Compartir desde la aplicación usa esta URL. El HTML incluye etiquetas Open Graph (título, descripción y una imagen HTTPS pública) para que los enlaces pegados se previsualicen en iMessage, Slack y similares. El mismo id es el endpoint JSON:
GET /api/recalls/{recall_id} (sin autenticación)
curl -sS "https://app.recallkitchen.com/api/recalls/RECALL_ID"
El JSON incluye el retiro del mercado y los lotes extraídos, UPC, modelos, ubicaciones e imágenes. Un id faltante devuelve HTTP 404.
Los endpoints de la aplicación autenticados por sesión incluyen escaneo de imágenes (POST /api/scan/stream NDJSON; catálogo de eventos en el documento OpenAPI), inventario, patrones de vigilancia, notificaciones, GET /api/tracked (verificación en vivo de vigilancia/inventario, igual que check_tracked_products) y /api/keys. Las herramientas MCP cubren la búsqueda de UPC e imágenes para agentes.
Preguntas sobre estos endpoints: support@recallkitchen.com.
Siguiente paso: SDKs
Paso anterior: Primeros pasos
Ejemplos
Uso de herramientas MCP
Flujo de pago
Consulta qué es gratis, de pago o requiere cuenta. Las claves API de signup son gratuitas (con límite de velocidad). Algunas búsquedas MCP por IP son gratuitas sin clave. Después de eso, la búsqueda anónima es de pago vía x402. El inventario requiere iniciar sesión en el sitio para verificar.
Siguiente paso: FAQ
Paso anterior: SDKs
FAQ
¿Qué retiros del mercado soportan?
Actualmente ingerimos CPSC de Estados Unidos, FDA (incluida la aplicación de openFDA), USDA, retiros de vehículos NHTSA, retiros y alertas de seguridad de Health Canada / CFIA, además de listados de minoristas de Costco, Target y Walmart. La búsqueda VIN coincide con las campañas NHTSA para el año y la marca decodificados; no llama a la API en vivo de VIN no reparado de NHTSA.
¿Cómo obtengo una clave API?
Llama a la herramienta MCP signup con un correo electrónico y accept_terms: true, o inicia sesión en app.recallkitchen.com, acepta los Términos y crea una clave. El uso está cubierto por los Términos de la API. Envíala como Authorization: Bearer rk_... en /mcp o /api/sources (Grok debe usar X-API-Key). Consulta curl y Grok / Claude Code / Cursor para ejemplos de copiar y pegar. Gratis sin clave: algunas búsquedas MCP por IP. Claves de registro (sin verificar): 60 llamadas de herramientas por hora y 400 por día, una clave y hasta 3 patrones de vigilancia (sin inventario). Después de iniciar sesión con ese correo (verificación): 600/hora y 3,000/día, tres claves, 20 patrones y 50 productos de inventario. De pago/admin: 1,200/hora y 10,000/día. Después de la cuota gratuita por IP, los clientes anónimos pueden pagar por solicitud con x402. Consulta acceso.
¿Puedo compartir un retiro del mercado?
Sí. Cada aviso tiene una página pública en https://app.recallkitchen.com/r/{recall_id} (sin inicio de sesión). En la aplicación, Compartir abre esa URL. Los enlaces pegados previsualizan el título y la imagen del retiro. Los agentes pueden usar el mismo id con get_product_recall o GET /api/recalls/{recall_id}.
¿Cómo se manejan las fotos de Scan y los fotogramas de cámara de códigos de barras?
Las cargas de fotos y las herramientas de imágenes MCP envían la imagen a nuestros servidores. Las copias almacenadas se usan para coincidir con retiros del mercado y, por defecto, para mejorar la detección. La cámara de códigos de barras en la aplicación lee códigos UPC y EAN en el navegador; esos fotogramas no se cargan. Consulta la Política de privacidad.
¿Cómo elimino un escaneo?
Inicia sesión y abre el escaneo, luego elige Eliminar. Puedes quitar la foto, los detalles guardados (nombres de productos, coincidencias y correcciones), o ambos. Una foto eliminada ya no se usa para mejorar la detección. Envía un correo a support@recallkitchen.com para solicitar una eliminación parcial o total de tu cuenta. Incluye el correo de la cuenta y lo que deseas eliminar.
¿A quién contacto con preguntas?
Envía un correo a support@recallkitchen.com para claves API, límites de velocidad, configuración del cliente MCP (Grok, Claude Code, Cursor) o cualquier otra cosa en estos documentos.