Ecosistema en marcha blanca · Conectando la salud de Chile

Documentación para desarrolladores

Conecta tu centro médico en 10 minutos

API REST simple para publicar la disponibilidad de tus profesionales. Un endpoint, autenticación Bearer, y JSON estándar. Sin dependencias ni SDKs.

Un solo endpoint

POST /api/v1/slots para publicar disponibilidad

Autenticación simple

Bearer token via Authorization header

JSON estándar

Sin SDKs. Integración via curl, Python, Node, PHP

Guía rápida

Comienza en 3 pasos

Desde el registro hasta la primera publicación de horas.

1

Solicita tu API Key

Completa el formulario de registro con los datos de tu centro médico. En menos de 24 horas recibirás por email tu API key con el formato:

rh_live_sk_XXXXXXXXXXXXXXXXXXXX

Mantén tu API key segura

No la publiques en repositorios. Úsala sólo en tu servidor. Si crees que se comprometió, solicita una nueva desde tu panel.

2

Envía tu primera hora disponible

Haz un POST a /api/v1/slots con la disponibilidad:

Prueba con curl
bash
curl -X POST https://redhoras.cl/api/v1/slots \
  -H "Authorization: Bearer rh_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "provider_id": "tu-id-de-centro",
    "slots": [
      {
        "especialidad_codigo": "01",
        "especialidad_nombre": "Medicina General",
        "fecha": "2026-04-20",
        "hora_inicio": "09:00",
        "hora_fin": "10:00",
        "disponible": true,
        "precio": 25000,
        "modalidad": "presencial"
      }
    ]
  }'
3

Tus horas aparecen en el buscador

Apenas recibimos tu POST, tu disponibilidad queda visible en redhoras.cl/buscar. Los pacientes pueden contactarte directamente usando el teléfono y email registrados.

¡Listo! Ya estás en la red nacional.
Referencia API

Endpoint principal

Publica y actualiza disponibilidad de horas médicas.

POST/api/v1/slotsHasta 100 slots por request

Headers requeridos

HeaderValor
AuthorizationBearer rh_live_sk_...
Content-Typeapplication/json

Estructura del body

CampoTipoDescripción
provider_idstringID de tu centro médico (te lo enviamos por email)
slotsarrayArray de horas disponibles (1-100 items)
slots[].especialidad_codigostringCódigo SIS (ej: '01' = Medicina General)
slots[].especialidad_nombrestringNombre de la especialidad
slots[].fechastringYYYY-MM-DD
slots[].hora_iniciostringHH:MM (24h)
slots[].hora_finstringHH:MM (24h)
slots[].disponiblebooleantrue si está disponible
slots[].preciointegerPrecio en CLP (0 = gratuito)
slots[].modalidadstring'presencial' | 'telemedicina'

Respuesta exitosa

200 OK
json
{
  "success": true,
  "message": "Slots actualizados correctamente",
  "upserted_count": 1,
  "slots": [
    {
      "id": "a3f5c8e1-...",
      "fecha": "2026-04-20",
      "hora_inicio": "09:00",
      "disponible": true
    }
  ]
}
Ejemplos

Integración en tu lenguaje favorito

Copia, pega y ajusta según tu sistema.

Node.js / Next.js
javascript
const res = await fetch('https://redhoras.cl/api/v1/slots', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.REDHORAS_KEY,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    provider_id: 'mi-centro-id',
    slots: [{
      especialidad_codigo: '01',
      especialidad_nombre: 'Medicina General',
      fecha: '2026-04-20',
      hora_inicio: '09:00',
      hora_fin: '10:00',
      disponible: true,
      precio: 25000,
      modalidad: 'presencial'
    }]
  })
})
const data = await res.json()
Python
python
import requests
import os

response = requests.post(
    'https://redhoras.cl/api/v1/slots',
    headers={
        'Authorization': f'Bearer {os.environ["REDHORAS_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={
        'provider_id': 'mi-centro-id',
        'slots': [{
            'especialidad_codigo': '01',
            'especialidad_nombre': 'Medicina General',
            'fecha': '2026-04-20',
            'hora_inicio': '09:00',
            'hora_fin': '10:00',
            'disponible': True,
            'precio': 25000,
            'modalidad': 'presencial'
        }]
    }
)
data = response.json()
PHP
php
$ch = curl_init('https://redhoras.cl/api/v1/slots');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer ' . getenv('REDHORAS_KEY'),
    'Content-Type: application/json'
  ],
  CURLOPT_POSTFIELDS => json_encode([
    'provider_id' => 'mi-centro-id',
    'slots' => [[
      'especialidad_codigo' => '01',
      'fecha' => '2026-04-20',
      'hora_inicio' => '09:00',
      'hora_fin' => '10:00',
      'disponible' => true,
      'precio' => 25000,
      'modalidad' => 'presencial'
    ]]
  ])
]);
$response = json_decode(curl_exec($ch), true);
cURL
bash
curl -X POST https://redhoras.cl/api/v1/slots \
  -H "Authorization: Bearer $REDHORAS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider_id": "mi-centro-id",
    "slots": [{
      "especialidad_codigo": "01",
      "fecha": "2026-04-20",
      "hora_inicio": "09:00",
      "hora_fin": "10:00",
      "disponible": true,
      "precio": 25000,
      "modalidad": "presencial"
    }]
  }'
Referencia

Códigos de especialidades

Usa estos códigos SIS estándar de Chile.

01Medicina General
02Medicina Interna
03Pediatría
04Ginecología y Obstetricia
05Cirugía General
06Traumatología
07Oftalmología
08Otorrinolaringología
09Urología
10Cardiología
11Neurología
12Psiquiatría
13Dermatología
14Endocrinología
15Gastroenterología

¿Falta alguna? Escríbenos a contacto@redhoras.cl

¿Listo para conectar?

Solicita tu API key y recíbela en menos de 24 horas. Sin costos ni compromisos.