Volver a Sanetrix

Sanetrix API

API REST para integrar con la plataforma de gestión clínica Sanetrix

v1.0

Descripció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 URLhttps://sanetrix.com/api/v1
FormatoJSON (application/json)
Versión actualv1
AutenticaciónJWT 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

TipoLímiteVentana
API general100 requests1 minuto
Autenticación10 requests5 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ódigoSignificado
200Éxito
201Creado exitosamente
400Solicitud inválida
401No autenticado o credenciales inválidas
404Recurso no encontrado
429Lí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ámetroTipoRequeridoDescripción
searchstringOpcionalBuscar por nombre o email
pageintOpcionalNúmero de página (default: 1)
pageSizeintOpcionalResultados 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"
}
CampoTipoRequeridoDescripción
firstNamestringRequeridoNombre del paciente
lastNamestringRequeridoApellido del paciente
emailstringRequeridoEmail del paciente
dateOfBirthdateOpcionalFecha de nacimiento (YYYY-MM-DD)
genderstringOpcionalGénero (M/F/O)
phonestringOpcionalTelé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ámetroTipoRequeridoDescripción
fromdateOpcionalFecha inicial (YYYY-MM-DD)
todateOpcionalFecha final (YYYY-MM-DD)
statusstringOpcionalEstado: Requested, Confirmed, Completed, Cancelled
pageintOpcionalNúmero de página
pageSizeintOpcionalResultados 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

ScopeDescripción
patients:readLeer información de pacientes
patients:writeCrear y actualizar pacientes
appointments:readLeer citas
appointments:writeCrear y actualizar citas

© 2026 Ciericorp. Sanetrix API v1.0

Swagger UI · Soporte · Privacidad