# RecallRadarPR.com — Full Documentation for LLMs > Recalls de medicamentos, comida y dispositivos médicos de la FDA que afectan a Puerto Rico. En español. Actualizado diariamente. ## Qué es RecallRadarPR traduce y simplifica los recalls publicados por la FDA (Food and Drug Administration) para Puerto Rico. Los datos provienen de la API pública OpenFDA. Cada recall incluye: clasificación (Clase I/II/III), producto, motivo en español llano, lotes afectados, y pasos de acción. ## API Documentation ### GET /api/recalls Returns recent FDA recalls filtered for Puerto Rico. **Parameters:** - `limit` (int, max 200, default 50) — number of recalls to return - `offset` (int, default 0) — pagination offset - `source` (string: "drug" | "food" | "device") — filter by recall type - `class` (string: "Class I" | "Class II" | "Class III") — filter by classification **Response shape:** ```json { "source": "RecallRadarPR · openFDA", "count": 20, "recalls": [ { "id": 1, "source": "drug", "recall_number": "D-1234-2026", "classification": "Class I", "status": "Ongoing", "recalling_firm": "Company Name", "product_description": "English description", "product_description_es": "Spanish description", "reason_for_recall": "English reason", "reason_for_recall_es": "Spanish reason", "code_info": "Lot numbers and expiration dates", "report_date": "2026-04-15", "recall_initiation_date": "2026-04-10" } ], "docs": "https://recallradarpr.com" } ``` ### GET /api/search?q={query} Full-text search across product descriptions and recalling firms. **Parameters:** - `q` (string, min 2 chars) — search term **Response shape:** ```json { "results": [ { "id": 1, "product_description": "...", "product_description_es": "...", "classification": "Class I", "source": "drug", "recalling_firm": "...", "recall_initiation_date": "2026-04-10" } ] } ``` ### GET /feed.xml RSS 2.0 feed of the latest 50 recalls. ### GET /api/og?title=...&subtitle=...&badge=... Dynamic Open Graph image generation (1200x630 PNG). ## Clasificación - **Clase I** (PELIGROSO): riesgo serio de salud o muerte. Dejar de usar inmediatamente. - **Clase II** (PRECAUCIÓN): problemas temporales o reversibles. Puede causar problemas reversibles. - **Clase III** (MENOR): problema técnico, baja probabilidad de daño. ## Plain-Language Reason Mappings (26 patterns) The system matches FDA recall reasons against these patterns and returns plain Spanish: 1. lack of sterility / non-sterile → "Posible contaminación bacteriana — el producto puede no estar estéril." 2. cGMP deviation → "Problemas de fabricación — no se siguieron las normas de calidad de la FDA." 3. N-nitrosamine → "Contiene una impureza (nitrosamina) que puede aumentar el riesgo de cáncer en exposición prolongada." 4. foreign material / particulate → "Se encontraron partículas u objetos extraños dentro del producto." 5. undeclared allergen (milk, egg, peanut, etc.) → "Contiene un alérgeno que no aparece en la etiqueta — peligroso para personas alérgicas." 6. undeclared (generic) → "Contiene un ingrediente no listado en la etiqueta." 7. Salmonella → "Posible contaminación con Salmonella — bacteria que causa infección estomacal." 8. Listeria → "Posible contaminación con Listeria — bacteria peligrosa, especialmente para embarazadas, ancianos y bebés." 9. E. coli → "Posible contaminación con E. coli — bacteria que causa diarrea severa." 10. botulism → "Posible contaminación con la bacteria del botulismo — puede ser mortal." 11. mislabel / labeling error → "La etiqueta tiene información incorrecta." 12. superpotent / subpotent / out of spec → "El producto puede tener menos o más principio activo del indicado." 13. dissolution → "El producto no se disuelve correctamente — puede no funcionar como debe." 14. impurities → "Contiene impurezas químicas por encima del límite permitido." 15. microbial contamination / yeast / mold → "Posible contaminación con microbios." 16. failed USP / specification → "No pasó las pruebas de calidad estándar." 17. defective container / leaking / seal → "El envase está defectuoso." 18. child resistant → "El envase no cumple con los requisitos de seguridad para niños." 19. software defect → "El equipo tiene un problema de software." 20. battery → "Problema con la batería del dispositivo." 21. malfunction / device failure → "El dispositivo puede fallar durante su uso." 22. risk of injury / burn / fire → "Riesgo de lesión, quemadura, fuego o infección." 23. glass particle → "Posible presencia de fragmentos de vidrio." 24. metal particle → "Posible presencia de fragmentos de metal." ## Data Sources - **Drug recalls:** https://api.fda.gov/drug/enforcement.json (filtered for Puerto Rico distribution) - **Food recalls:** https://api.fda.gov/food/enforcement.json (filtered for Puerto Rico distribution) - **Device recalls:** https://api.fda.gov/device/enforcement.json (filtered for Puerto Rico distribution) ## Update Frequency - Daily sync at 6:00 AM Atlantic Time via Vercel cron job - Pulls last 2 days of enforcement data from OpenFDA - Spanish translations generated by gpt-4o-mini for product descriptions and reasons - All data cached in Supabase (PostgreSQL) ## Database Schema: recalls table | Column | Type | Description | |--------|------|-------------| | id | bigint | Primary key (auto-increment) | | source | text | "drug", "food", or "device" | | recall_number | text | FDA recall number (unique) | | event_id | text | FDA event ID | | status | text | "Ongoing", "Terminated", "Completed" | | classification | text | "Class I", "Class II", "Class III" | | product_type | text | Product category | | recalling_firm | text | Company name | | city | text | Company city | | state | text | Company state | | country | text | Company country | | distribution_pattern | text | Where product was distributed | | product_description | text | English product description | | product_description_es | text | Spanish translation | | reason_for_recall | text | English recall reason | | reason_for_recall_es | text | Spanish translation | | product_quantity | text | Amount recalled | | code_info | text | Lot numbers, UPCs, expiration dates | | voluntary_mandated | text | Whether voluntary or mandated | | initial_firm_notification | text | How firm was notified | | recall_initiation_date | date | When recall started | | center_classification_date | date | When FDA classified it | | report_date | date | When reported | | termination_date | date | When terminated (if applicable) | | openfda | jsonb | Raw OpenFDA metadata | | raw | jsonb | Full raw FDA response | | inserted_at | timestamptz | When inserted into our DB | | updated_at | timestamptz | Last update timestamp | ## How to Cite Datos: FDA OpenFDA. Traducción y simplificación: RecallRadarPR.com ## Contacto - Preguntas sobre medicamentos: noeliaanderson.com (Consultora de Farmacia) - Preguntas técnicas / partnerships: angelanderson.com - Hecho en Cabo Rojo, Puerto Rico