API del INVIMA: consultar registros sanitarios por número, expediente o producto
PlacApi busca en los registros sanitarios del INVIMA —medicamentos, alimentos y bebidas, cosméticos, productos de aseo y dispositivos médicos— y devuelve en JSON, en ~1 segundo, el producto, el titular, el estado del registro y sus fechas de expedición y vencimiento. Se busca por número de registro o notificación, por expediente o por texto libre (el nombre del producto o el del titular). Cuesta 1 crédito por consulta, y un «sin resultados» también se cobra porque es justo lo que se quiere saber antes de vender un producto.
¿No eres desarrollador? Consulta el RUNT por placa aquí sin escribir código.
Qué problema resuelve
Un producto sin registro sanitario vigente no se puede comercializar, y quien lo vende responde por él: el marketplace que lo lista, la cadena que lo compra, el distribuidor que lo mueve. Verificarlo producto por producto en la consulta del INVIMA no escala a un catálogo de miles de referencias. Este endpoint lo vuelve una llamada que se puede correr al dar de alta cada producto o en un barrido periódico del catálogo.
Para quién sirve
Marketplaces y plataformas de comercio electrónico, cadenas de droguerías y supermercados, distribuidores e importadores, aseguradoras y entidades de salud que compran medicamentos y dispositivos, y equipos de cumplimiento regulatorio.
Datos requeridos
- registro — número de registro sanitario, notificación (NSO) o permiso, con o sin el prefijo INVIMA.
- expediente — alternativa: el número de expediente.
- texto — alternativa: nombre del producto o del titular, mínimo 3 caracteres.
- categoria — opcional: medicamentos, alimentos-cosmeticos-aseo o dispositivos.
Fuentes y cobertura
- INVIMA — Instituto Nacional de Vigilancia de Medicamentos y AlimentosRegistros sanitarios, notificaciones y permisos de medicamentos (código único de medicamentos), alimentos, bebidas, cosméticos, productos de aseo y dispositivos médicos, con su estado y vigencia.
¿Cuánto cuesta consultar un registro sanitario por API?
1 crédito por consulta, y una búsqueda sin resultados también se cobra. Una consulta servida de caché no cobra.
¿Cómo verificar por API si un producto tiene registro INVIMA?
Con un POST a /api/invima enviando el número de registro, el expediente o el nombre del producto. La respuesta trae el estado del registro y su vencimiento.
Ejemplo de solicitud
POST https://placapi.com/api/invima. Autenticación por API key en el header x-api-key. Los datos del ejemplo son ficticios.
curl -X POST 'https://placapi.com/api/invima' \
-H 'x-api-key: pk_live_TU_CLAVE' \
-H 'content-type: application/json' \
-d '{"texto":"acetaminofen","categoria":"medicamentos"}'Parámetros, errores y ejemplos en cURL, JavaScript y Python: documentación de POST /api/invima.
Ejemplo de respuesta
Respuesta JSON (fragmento con los campos de esta consulta; la API integral devuelve todas las fuentes en el mismo objeto).
{
"source": "registro-sanitario",
"status": "ok",
"data": {
"resultados": [
{
"registroSanitario": "INVIMA 2099M-0000001-R1",
"producto": "PRODUCTO DE PRUEBA 500 MG",
"titular": "LABORATORIOS EJEMPLO S.A.",
"estado": "Vigente",
"fechaVencimiento": "2030-08-23",
"categoria": "medicamentos"
}
],
"total": 1,
"paginacion": {
"offset": 0,
"limit": 20,
"hayMas": false,
"truncado": false
}
}
}Explicación campo por campo
| Campo | Tipo | Descripción |
|---|---|---|
| resultados | array | Registros que coinciden, 20 por página. Vacío es una respuesta válida: el producto no tiene registro. |
| resultados[].estado | string | Estado del registro tal como lo publica el INVIMA: Vigente, Vencido, En trámite de renovación… |
| resultados[].fechaVencimiento | string | null | Fecha de vencimiento del registro (AAAA-MM-DD), cuando el registro la publica. |
| total | number | Registros que coinciden en todas las páginas; en búsquedas muy amplias es una cota inferior. |
| paginacion.truncado | boolean | true si la búsqueda por texto fue tan amplia que la lista es una muestra: afinar el texto, filtrar por categoría o buscar por número de registro. |
Tiempo de respuesta
~1 segundo.
Precio y cobro
1 crédito por consulta con datos, desde 349 COP. El precio por crédito baja por volumen: 349 COP desde 30, 249 COP desde 1.000, 149 COP desde 5.000, 139 COP desde 10.000, 119 COP desde 20.000, 99 COP desde 50.000. Los créditos se compran por adelantado (mínimo 30 = 10.470 COP), no vencen y no hay mensualidad. Por la web, el informe completo por placa cuesta 3 créditos. Solo se cobra cuando la consulta devuelve datos; por API, las consultas sin resultado (404) tienen 10 gratis al mes por cada tipo de respuesta sin datos y después cobran igual.
Caché y actualización
1 día: el INVIMA republica sus registros a diario.
Seguridad y privacidad
La placa y el documento se usan solo para ejecutar la consulta; el resultado queda en caché temporal. No se almacenan datos de tarjetas (los pagos los procesa Wompi). Ver privacidad y seguridad.
Limitaciones y posibles errores
- Lo que se consulta es el registro: no dice si un lote específico está alertado o retirado del mercado.
- La búsqueda por texto es de texto completo; para una verificación exacta, usar el número de registro o el expediente.
- En búsquedas por texto muy amplias,
totales una cota inferior y las páginas profundas pueden quedarse cortas: afinar el texto o filtrar por categoría.
Códigos de error del endpoint (401, 402, 429, 5xx) en la referencia de errores.
Otras preguntas frecuentes
¿Cubre dispositivos médicos y cosméticos?
+
Sí: medicamentos, alimentos y bebidas, cosméticos, productos de aseo y dispositivos médicos, incluidas las notificaciones sanitarias.
Seguir explorando
Última revisión: 16 de octubre de 2026 · Versión de la API: v1 · Fuentes y metodología