Volver a Sanetrix
Sanetrix API
API REST para integrar con la plataforma de gestión clínica Sanetrix
v1.0Descripción general
La API de Sanetrix permite a aplicaciones externas interactuar con la plataforma para gestionar pacientes, citas y más. Todos los endpoints están bajo el prefijo /api/v1/.
| Base URL | https://sanetrix.com/api/v1 |
| Formato | JSON (application/json) |
| Versión actual | v1 |
| Autenticación | JWT Bearer o API Key |
Autenticación
Todos los endpoints requieren autenticación. Puedes usar cualquiera de los dos métodos:
Opción 1: JWT Bearer Token
Obtén un token mediante el login y envíalo en el header:
POST /Auth/Login
Content-Type: application/json
{
"email": "tu@email.com",
"password": "tu_contraseña"
}
# Luego usa el token:
GET /api/v1/patients
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Opción 2: API Key
Genera una API Key desde POST /api/v1/keys y envíala en el header:
GET /api/v1/patients
X-Api-Key: snx_abc123def456ghi789jkl012mno345pqrs678t
Importante: La API Key solo se muestra una vez al crearla. Guárdala de forma segura.
Rate Limiting
| Tipo | Límite | Ventana |
|---|---|---|
| API general | 100 requests | 1 minuto |
| Autenticación | 10 requests | 5 minutos |
Al exceder el límite, recibirás un HTTP 429 Too Many Requests.
Errores
La API devuelve errores en formato JSON con un campo error:
{
"error": "Descripción del error."
}
| Código | Significado |
|---|---|
| 200 | Éxito |
| 201 | Creado exitosamente |
| 400 | Solicitud inválida |
| 401 | No autenticado o credenciales inválidas |
| 404 | Recurso no encontrado |
| 429 | Límite de rate excedido |
Pacientes
GET
/api/v1/patients
Listar pacientes
GET
/api/v1/patients/{id}
Obtener paciente por ID
POST
/api/v1/patients
Crear nuevo paciente
PUT
/api/v1/patients/{id}
Actualizar paciente
DELETE
/api/v1/patients/{id}
Eliminar paciente
Listar pacientes
GET /api/v1/patients?search=Juan&page=1&pageSize=20
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
search | string | Opcional | Buscar por nombre o email |
page | int | Opcional | Número de página (default: 1) |
pageSize | int | Opcional | Resultados por página (max: 100) |
Respuesta:
{
"data": [
{
"id": 1,
"firstName": "Juan",
"lastName": "Pérez",
"email": "juan@example.com",
"dateOfBirth": "1990-05-15",
"gender": "M",
"phone": "+52 555 1234567"
}
],
"page": 1,
"pageSize": 20,
"totalCount": 45,
"totalPages": 3
}
Crear paciente
POST /api/v1/patients
Content-Type: application/json
{
"firstName": "María",
"lastName": "García",
"email": "maria@example.com",
"dateOfBirth": "1985-08-20",
"gender": "F",
"phone": "+52 555 9876543"
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
firstName | string | Requerido | Nombre del paciente |
lastName | string | Requerido | Apellido del paciente |
email | string | Requerido | Email del paciente |
dateOfBirth | date | Opcional | Fecha de nacimiento (YYYY-MM-DD) |
gender | string | Opcional | Género (M/F/O) |
phone | string | Opcional | Teléfono |
Citas
GET
/api/v1/appointments
Listar citas
GET
/api/v1/appointments/{id}
Obtener cita por ID
POST
/api/v1/appointments
Crear nueva cita
PUT
/api/v1/appointments/{id}
Actualizar cita
DELETE
/api/v1/appointments/{id}
Cancelar cita
Listar citas
GET /api/v1/appointments?from=2026-01-01&to=2026-01-31&status=Confirmed&page=1
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
from | date | Opcional | Fecha inicial (YYYY-MM-DD) |
to | date | Opcional | Fecha final (YYYY-MM-DD) |
status | string | Opcional | Estado: Requested, Confirmed, Completed, Cancelled |
page | int | Opcional | Número de página |
pageSize | int | Opcional | Resultados por página |
Crear cita
POST /api/v1/appointments
Content-Type: application/json
{
"patientProfileId": 1,
"doctorProfileId": 5,
"officeId": 2,
"scheduledStart": "2026-02-15T09:00:00",
"scheduledEnd": "2026-02-15T09:30:00",
"appointmentType": "Consulta General",
"reason": "Dolor de cabeza recurrente"
}
API Keys
Los endpoints de API Keys requieren autenticación por JWT Bearer (no por API Key).
GET
/api/v1/keys
Listar API Keys de la organización
POST
/api/v1/keys
Crear nueva API Key
DELETE
/api/v1/keys/{id}
Revocar API Key
Crear API Key
POST /api/v1/keys
Authorization: Bearer eyJhbG...
Content-Type: application/json
{
"name": "Integración ERP",
"scopes": "patients:read,appointments:read,appointments:write",
"expiresInDays": 365
}
Respuesta:
{
"id": 1,
"name": "Integración ERP",
"keyPrefix": "snx_abc123de",
"scopes": "patients:read,appointments:read,appointments:write",
"expiresAt": "2027-02-21T00:00:00Z",
"key": "snx_abc123def456ghi789jkl012mno345pqrs678t",
"message": "Guarda esta API Key de forma segura. No se podrá volver a mostrar."
}
El campo
key solo aparece en la respuesta de creación. Cópialo inmediatamente.
Scopes disponibles
| Scope | Descripción |
|---|---|
patients:read | Leer información de pacientes |
patients:write | Crear y actualizar pacientes |
appointments:read | Leer citas |
appointments:write | Crear y actualizar citas |
© 2026 Ciericorp. Sanetrix API v1.0