INTERFAZ PÚBLICA · JSON
Documentación de la API AGEMED
Consulta medicamentos registrados con solicitudes HTTP. Las rutas de lectura del catálogo son públicas y responden en JSON; no requieren iniciar sesión como administrador.
https://apiagemed.softcraftbol.com/api/v1Importante: usa el dominio o la IP del servidor donde corre Spring Boot. La dirección de PostgreSQL es la base de datos y no sustituye la URL de la API.
Catálogo de medicamentos
Devuelve una página del catálogo. El tamaño predeterminado es 20 y el máximo permitido es 100.
/productsLista, búsqueda general y filtros/products/searchAlias para búsquedasBúsqueda rápida
GET /api/v1/products/search?q=amiodar&page=0&size=20
La búsqueda general consulta registro sanitario, nombre comercial y nombre genérico. Cuando el término contiene dígitos también considera concentración. Ignora mayúsculas y acentos.
Respuesta paginada
{
"items": [
{
"id": 123,
"recordType": "NACIONAL",
"sanitaryRegistry": "14822",
"registrationDate": "2024-01-15",
"commercialName": "EJEMPLO",
"genericName": "PRINCIPIO ACTIVO",
"dosageForm": "COMPRIMIDO",
"dosageFormCanonical": "COMPRIMIDO",
"concentration": "500 MG",
"manufacturerLaboratory": "LABORATORIO EJEMPLO",
"importingCompany": "EMPRESA EJEMPLO",
"countryOfOrigin": "BOLIVIA",
"saleType": "RECETA MEDICA"
}
],
"page": 0,
"size": 20,
"totalElements": 1,
"totalPages": 1,
"first": true,
"last": true
}
Los valores del ejemplo son ilustrativos. La lista incluye un resumen; consulta el detalle para presentación/envase, dirección y otros campos extensos.
Búsqueda y filtros
Los filtros son opcionales y se pueden combinar en una misma solicitud. Los parámetros de texto se codifican como query parameters URL.
| Parámetro | Qué busca | Coincidencia |
|---|---|---|
q | Búsqueda general en registro, nombres y concentración numérica | Relevancia, sin acentos ni distinción de mayúsculas |
sanitaryRegistry | Número de registro sanitario | Exacta |
commercialName | Nombre comercial | Contiene |
genericName | Nombre genérico | Contiene |
dosageForm | Forma farmacéutica | Contiene; sin acentos |
concentration | Concentración | Contiene |
laboratory | Laboratorio fabricante | Contiene |
company | Empresa/importador | Contiene |
country | País de origen | Exacta, sin acentos |
saleType | Tipo de venta | Exacta |
packaging | Texto de presentación/envase | Contiene |
registrationDate | Fecha de registro | Exacta, formato YYYY-MM-DD |
Ejemplo con filtros combinados
GET /api/v1/products?genericName=picosulfato&dosageForm=solucion&country=ARGENTINA&saleType=RECETA%20MEDICA&page=0&size=20
Paginación y orden
| Parámetro | Predeterminado | Descripción |
|---|---|---|
page | 0 | Número de página, comenzando desde cero. |
size | 20 | Resultados por página; rango permitido de 1 a 100. |
sort | commercialName,asc | Campo y dirección, ascendente o descendente. |
Campos ordenables: commercialName, genericName, sanitaryRegistry, manufacturerLaboratory, registrationDate y rectificationDate. La API mantiene un orden estable por ID cuando hace falta.
Detalle de medicamento
/products/{id}Busca por ID interno/products/registry/{sanitaryRegistry}Busca por registro AGEMEDEl detalle incluye los datos completos, campos originales como dosageFormRaw, concentrationRaw y packagingRaw, y las secciones de presentación que pudieron identificarse con seguridad.
GET /api/v1/products/registry/14822
Metadatos del catálogo
/catalog/metadataTotal y última importación exitosa{
"totalProducts": 11011,
"lastSuccessfulImportAt": "2026-09-22T12:30:00Z",
"sourceFileName": "catalogo_agemed.xlsx"
}
La cantidad y la fecha mostradas arriba son un ejemplo de formato; los valores reales dependen del catálogo cargado.
Ejemplos de cliente
cURL
curl "https://apiagemed.softcraftbol.com/api/v1/products/search?q=diclofenaco&page=0&size=20"
JavaScript
const baseUrl = "https://apiagemed.softcraftbol.com/api/v1";
const params = new URLSearchParams({ q: "paracetamol", page: "0", size: "20" });
const response = await fetch(`${baseUrl}/products?${params}`);
if (!response.ok) throw new Error(`Error HTTP ${response.status}`);
const page = await response.json();
console.log(page.items);
console.log(`Página ${page.page + 1} de ${page.totalPages}`);
Para pasar a la siguiente página, incrementa page. Para mostrar más resultados por solicitud, ajusta size hasta un máximo de 100.