Skip to main content
The Instituto Nacional de Vigilancia de Medicamentos y Alimentos (INVIMA) is Colombia’s food and drug authority. Nothing it regulates can be sold in the country without its sanitary registration (registro sanitario) or, for low-risk cosmetics and cleaning products, its mandatory notification (NSO): medicines, food and drinks, cosmetics, medical devices, diagnostic reagents, supplements, biologicals, homeopathic and phytotherapeutic products, dental products and pesticides. This is the whole register, about 385,000 registrations in force or expired, each with its number, dates, holder, every product name it covers and every company or person in a role on it. For medicines it goes one level deeper: every commercial presentation, about 163,000, with its CUM code (Código Único de Medicamento), ATC code, pharmaceutical form, active ingredients and concentration, route, pack and whether the presentation is active. Search registrations by product, number, holder, group, status or expiry; search medicines by active ingredient, ATC code, name or holder; then read one registration by its file number or one presentation by its CUM.
The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries as_of: how current the data is. How datasets work.

Search the registrations

POST /co/invima/registrations-search/v1 Dataset One search over every registration and notification, in every product group, by product, number, holder, group, status or expiry.
Returns as_of (how current the data is), the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[], latest expiry first. Every registration carries id (the INVIMA file number, or expediente), registration_number (as INVIMA prints it, e.g. INVIMA 2020M-0019848), product and products (every product name it covers), product_group (e.g. MEDICAMENTOS, ALIMENTOS, COSMETICOS, MEDICO QUIRURGICOS), directorate, status (Vigente or Vencido), issued_at, expires_at, holder, modality (e.g. FABRICAR Y VENDER), risk_level (devices and reagents), uses, shelf_life, parties[] (role and name: manufacturers, importers, packagers, attorneys, legal representatives, pharmacists) and entries.

One registration

POST /co/invima/registration/v1 Dataset
Returns as_of, found, file_number and registration. Every registration carries id (the INVIMA file number, or expediente), registration_number (as INVIMA prints it, e.g. INVIMA 2020M-0019848), product and products (every product name it covers), product_group (e.g. MEDICAMENTOS, ALIMENTOS, COSMETICOS, MEDICO QUIRURGICOS), directorate, status (Vigente or Vencido), issued_at, expires_at, holder, modality (e.g. FABRICAR Y VENDER), risk_level (devices and reagents), uses, shelf_life, parties[] (role and name: manufacturers, importers, packagers, attorneys, legal representatives, pharmacists) and entries.
A number INVIMA lists nothing under returns found: false with HTTP 200, not an error.

Search the medicines

POST /co/invima/medicines-search/v1 Dataset One search over every registered medicine presentation, by active ingredient, ATC code, name, number, holder or status.
Returns as_of (how current the data is), the applied filters, total and total_is_exact, page, per_page, total_pages, count and results[], most recently activated presentation first. Every presentation carries id (the CUM code, e.g. 20042480-41), file_number and cum_sequence (its two halves), registration_number, product, holder, status (the registration’s: Vigente, Vencido, Perdida Fuerza Ejec, Cancelado, Negado, Suspendido, En tramite renov and others), cum_status (activo or inactivo), issued_at, expires_at, cum_active_since, cum_inactive_since, commercial_description, pack_quantity, pack_unit, medical_sample, atc_code, atc_description, pharmaceutical_form, administration_routes[], active_ingredients[] (name, quantity, unit, reference_unit), parties[] (role and name), modality, ium and entries.

One medicine presentation

POST /co/invima/medicine/v1 Dataset
Returns as_of, found, cum and medicine. Every presentation carries id (the CUM code, e.g. 20042480-41), file_number and cum_sequence (its two halves), registration_number, product, holder, status (the registration’s: Vigente, Vencido, Perdida Fuerza Ejec, Cancelado, Negado, Suspendido, En tramite renov and others), cum_status (activo or inactivo), issued_at, expires_at, cum_active_since, cum_inactive_since, commercial_description, pack_quantity, pack_unit, medical_sample, atc_code, atc_description, pharmaceutical_form, administration_routes[], active_ingredients[] (name, quantity, unit, reference_unit), parties[] (role and name), modality, ium and entries.
A number INVIMA lists nothing under returns found: false with HTTP 200, not an error.

Full reference

Schemas, all response fields, and an interactive playground.