Ellie Care · Developers
API B2B · spec-first

Conectá tu sistema a Ellie Care

Teleasistencia para adultos mayores, en una sola API. Acá tenés todo en una página: qué es Ellie, qué mide el reloj, y cómo integrarlo — de lo conceptual al primer llamado. Autenticás con OAuth2 M2M; tu empresa y tu zona salen del token. Empezás en el sandbox (datos sintéticos, cero PHI) — ya está vivo.

Teleasistencia B2BOpenAPI 3.1 OAuth2 client-credentialsWebhooks + HMACFHIR R4Zonas LATAM · US

01¿Qué es Ellie Care?

Ellie Care es una plataforma de teleasistencia para adultos mayores. Una persona mayor usa un smartwatch en la muñeca; Ellie mide sus signos vitales y su actividad de forma continua, detecta situaciones de riesgo (una caída, el botón de auxilio, una frecuencia cardíaca anormal, inactividad prolongada) y hace llegar esa información a quien tiene que reaccionar: su familia, el personal de un geriátrico, o el sistema de la empresa que presta el servicio.

Ellie no fabrica el reloj ni se vende como un dispositivo médico. Es software que corre sobre un smartwatch de consumo, y opera como monitoreo y bienestar: las señales y alertas son un apoyo para decidir, nunca un diagnóstico.

Esta API es para el lado B2B: las empresas asociadas —proveedores de teleasistencia, prepagas, geriátricos, sistemas de salud— que integran los datos de Ellie en sus propios sistemas.

La promesa de la API: una sola URL (api.ellie.care), un solo contrato y un solo login. Integrás contra el contrato, que es estable. Hoy se prueba contra el sandbox (datos sintéticos); producción se habilita por zona a medida que cada empresa queda aprovisionada.

02Los protagonistas

Seis actores. Entender quién es quién es la mitad del modelo mental — el resto de la API cae solo.

Persona

👵 Paciente

El adulto mayor monitoreado. Vive en su casa o en un geriátrico. Es quien usa el reloj. En FHIR es un Patient.

Hardware

⌚ El reloj

Un smartwatch de consumo con la app de Ellie. Mide, detecta y avisa. Puede acompañarse de dispositivos extra (balanza, tensiómetro).

Cliente B2B

🏢 Tu empresa

La organización que presta el servicio y contrata a Ellie: el tenant. Todo está particionado por empresa (empresa_id). Vos, developer, integrás por acá.

Personas de tu empresa

🎧 Operadores

El equipo que atiende a los pacientes desde una consola web (la central de monitoreo). No programan: trabajan alertas y seguimiento.

Alrededor del paciente

👨‍👩‍👧 Red de apoyo

Familia y cuidadores. Reciben avisos por canales como WhatsApp. No usan la API, pero son el destino de muchas alertas.

Vos

👩‍💻 Developer

Integrás Ellie en el sistema de tu empresa: traés vitales, telechequeos y eventos. Autenticás como empresa, ves solo a tus pacientes.

03Cómo funciona

El ciclo de la teleasistencia en cuatro pasos; la API te engancha en el paso 4. Por debajo, una sola puerta (api.ellie.care) te autentica, te aísla por empresa y zona, y te entrega solo lo tuyo.

Usar
El adulto mayor usa el reloj en el día a día. La app de Ellie corre en segundo plano.
Monitorear
El reloj mide vitales y actividad y los envía de forma continua mientras está puesto.
Detectar
Se detectan eventos: una caída (modelo de IA en el propio reloj), el botón SOS, FC fuera de rango, reloj sin usar.
Reaccionar
Se avisa a quien corresponde: operadores en la consola, la familia por WhatsApp, y tu sistema por webhooks / API.
⌚ Reloj
Mide y envía
Plataforma Ellie
Telemetría, eventos, FHIR y metadata · por zona
🚪 api.ellie.care
Login + aislamiento por empresa/zona
🏢 Tu sistema
Consumís la API

04El reloj: qué mide

El reloj hace tres cosas: mide vitales continuos mientras se usa, ejecuta chequeos a pedido, y detecta eventos de seguridad.

En vivo disponible hoy end-to-end A pedido / en despliegue saliendo por versión del reloj Hoja de ruta definido en el contrato, aún no en el dispositivo

Vitales continuos — mientras el reloj está puesto

SignoCampoQué es y cómo lo mideMadurez
Frecuencia cardíacaheart_rateSensor óptico (luz verde) en la muñeca. Latidos por minuto, cada pocos segundos. Tiene endpoint agregado por minuto (mediana/máx/mín).En vivo
Temperatura de pielskin_temperatureSensor infrarrojo contra la piel. Un valor por minuto, en °C.En vivo
PasosstepsConteo de pasos del tracker de actividad.En vivo
CaloríascaloriesCalorías gastadas estimadas.En vivo
Oxígeno en sangrespo2Pulsioximetría óptica. En el reloj es a pedido (~30 s quieto), no continuo — se trata como telechequeo.A pedido
Variabilidad cardíaca (HRV / IBI)ibiCuánto varía el tiempo entre latidos (ms). Indicador de estrés fisiológico, recuperación y estado autonómico.En despliegue
Actividad electrodérmica (EDA)edaMicro-cambios en la conductancia de la piel por la sudoración; se asocia a estrés/activación emocional.En despliegue
Actigrafía / movimientomotionNivel de movimiento a lo largo del tiempo. Permite inferir reposo vs. actividad y patrones de sueño.En despliegue
Ondas crudasppg, accel_rawSeñal del sensor óptico y del acelerómetro sin procesar. Volumen muy alto; para algoritmos propios. Opt-in.Hoja de ruta

Señales del dispositivo — técnicas, no clínicas

Llegan por el canal device.status y en GET /devices/{id}. Sirven para adherencia y operación.

SeñalQué indicaMadurez
Puesto / no puesto (worn / not_worn)Sensor de proximidad: si el reloj está en la muñeca. Clave para adherencia y para habilitar la detección de caídas.En vivo
Cargando · batería (charging, battery_level, low_battery)Estado de energía (0–100 %, cargando, batería baja). La batería es señal técnica, no un vital clínico.En vivo
Conectividad (wifi, cellular, offline)Cómo está conectado el reloj, y si se quedó sin conexión.En vivo
Ubicación (location)Posición aproximada. Dato operativo, no clínico.En vivo

Telechequeos — mediciones guiadas, a pedido

Tu sistema (o un operador) pide una medición; el reloj guía al paciente, toma la muestra y devuelve un resultado con estado done/failed/deferred.

ChequeoQué se le pide al pacienteMadurez
FC puntual (hr_spot)Quedarse quieto 15–30 s.A pedido
Variabilidad (hrv)Respirar normal sin moverse 60–120 s.A pedido
Temp. puntual (skin_temp)Cubrir el reloj ~20–30 s.A pedido
Oxígeno (spo2)Brazo apoyado, quieto ~30 s.A pedido
Composición corporal (bia)Confirmar peso/altura/edad/sexo y apoyar dos dedos en los botones laterales (bioimpedancia). Devuelve % grasa/músculo/agua.A pedido
ECG (ecg)Apoyar un dedo en el botón y quedarse quieto 30 s. Ritmo de una derivación. Sujeto a aprobación regulatoria por país.A pedido
Pruebas funcionales (marcha, equilibrio, sentarse-pararse, respiratorio)Tests de movilidad guiados para medir fragilidad y riesgo de caída. Definidos en el contrato; el reloj aún no los ejecuta.Hoja de ruta

Seguridad de vida

🚨 Detección de caídas En vivo

El acelerómetro alimenta un modelo de IA en el propio reloj que infiere caídas. Se entrega como evento crítico (booleano), baja latencia; no se manda la señal cruda. Se desactiva si el reloj no está puesto.

🆘 Botón SOS En vivo

El paciente mantiene apretado el botón (o toca el SOS en pantalla). Cuenta regresiva con opción de cancelar antes de escalar el aviso a la familia / central.

Hoy las alertas de vida (caída y SOS) se leen por GET /alerts. El chequeo emocional (ansiedad/depresión, GAD-7/PHQ-9) es una función de la plataforma que proviene de una evaluación por voz, no del reloj — se expone como FHIR QuestionnaireResponse.

05Señal vs. alerta

La distinción que evita malentendidos: Ellie te manda señales crudas, no veredictos clínicos.

📈 Señal

Telemetría y estados: FC arriba de su baseline, temperatura, batería baja, reloj no puesto. Alimentan tus métricas. No son una emergencia por sí solas — vos (o tus reglas) decidís qué significan.

🚨 Alerta de vida

Un evento real que exige reacción: una caída o un botón SOS. Pocos, priorizados y críticos. Se entregan aparte (GET /alerts).

Por eso el contrato separa eventos clínicos (clinical.event), estado del dispositivo (device.status) y alertas (vida). Ellie evita pre-juzgar: te da la señal para que tu sistema aplique su propia lógica clínica.

06Qué podés hacer con la API

Todo scopeado a tu empresa (sale del token) y tus pacientes. En lenguaje de negocio:

Podés…CómoPara qué sirve
Ver tus pacientes y sus dispositivosGET /patients, GET /devices/{id}A quién monitoreás, el estado del reloj y sus capacidades.
Leer vitales y tendenciasGET /vitals, GET /patients/{id}/vitals/heart-rateTelemetría cruda o FC agregada por minuto para gráficos.
Ver el sueñoGET /patients/{id}/sleep-sessionsVentanas de sueño con señales promediadas. Hoja de ruta
Ver y pedir telechequeosGET /patients/{id}/telecheckups, POST /telecheckups:requestLeer resultados o disparar una medición nueva.
Consultar alertas de vidaGET /alertsHistorial de caídas y SOS.
Recibir eventos en tiempo realPOST /subscriptions (webhooks) o GET /eventsSeñales y estados apenas ocurren, firmados con HMAC.
Ajustar la config del relojPATCH /patients/{id}/configAjustes del dispositivo (opt-in, requiere scope de escritura).
Consumir en formato estándarGET /fhir/Observation?…Datos clínicos como FHIR R4 (Bundle).

07Primeros pasos y Quickstart

De cero a tu primer dato, sin datos reales. El mapa, y después el código.

Acceso al sandbox
Credenciales de prueba: ellie_sandbox_br / ellie_sandbox_us, secret sandbox.
Pedí un token
POST /oauth/token. Tu empresa y zona van dentro del token.
Primer llamado
Listá pacientes o leé la FC de uno. Sin pasar empresa: sale del token.
Suscribite a eventos
Registrás tu webhook y verificás la firma HMAC.
Pasá a producción
Cambiás host + credenciales. El código no cambia.
bash · sandbox
# base del sandbox (datos sintéticos)
BASE=https://api-sandbox.ellie.care

# 1) token OAuth2 (el empresa_id + zona van dentro del token)
TOKEN=$(curl -s -X POST $BASE/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=ellie_sandbox_br -d client_secret=sandbox \
  -d scope="read:patients read:vitals telecheckup:read" \
  | jq -r .access_token)

# 2) tu primer llamado — sin parámetro de empresa (sale del token)
curl -s $BASE/v1/patients -H "Authorization: Bearer $TOKEN"
curl -s "$BASE/v1/vitals?patient_id=pat_test_001&type=heart_rate" -H "Authorization: Bearer $TOKEN"

¿Preferís explorar sin escribir código? Abrí la referencia interactiva (try-it contra el sandbox).

08Autenticación

OAuth 2.0 client-credentials (app-a-app). Registrás una app → client_id + client_secret. El token es de vida corta y lleva tu empresa_id, tu zone y tus scopes.

client_id + secret
Tu credencial
POST /oauth/token
El edge valida el secret
access_token (JWT)
Lleva empresa_id · zone · scope
GET /v1/…
El edge filtra por empresa+zona del token
ScopePermite
read:patientsListar y leer tus pacientes
read:devicesDispositivos, config y capacidades
read:vitalsTelemetría (vitales, actigrafía)
read:alertsHistorial de alertas
telecheckup:readLeer telechequeos
telecheckup:requestSolicitar un telechequeo
subscribe:eventsWebhooks y polling de eventos
write:configAjustar la config del dispositivo (opt-in)

09Datos de salud: endpoints

La telemetría y los telechequeos se sirven en dos formas: REST crudo o FHIR R4 estándar. El edge abstrae de dónde salen.

  • TelemetríaGET /v1/vitals?patient_id=&type=heart_rate&since=. Tipos: heart_rate, spo2, skin_temperature, ibi, eda, motion (actigrafía ENMO), steps, calories, ppg/ppg_ir/ppg_red, accel_raw. Alto volumen → cursor + since.
  • Frecuencia cardíaca agregada por minutoGET /v1/patients/{id}/vitals/heart-rate?start=&end=. Mediana, máx, mín y cantidad de muestras por minuto. Ventana ≤ 30 días por consulta; para más, paginá.
  • Sesiones de sueñoGET /v1/patients/{id}/sleep-sessions. Ventana de sueño con señales promediadas (HR, EDA, HRV, temperatura, actigrafía). Hoja de ruta
  • TelechequeosGET /v1/patients/{id}/telecheckups; se solicitan con POST /v1/telecheckups:request. Siempre reportan estado (done/failed/deferred).
  • FHIRGET /v1/fhir/Observation?patient=&code=8867-4 (LOINC). Devuelve un Bundle R4. Telechequeo emocional como QuestionnaireResponse.
PHI clínico: los telechequeos son datos de salud sensibles. En producción exigen scope clínico + consentimiento por zona. En sandbox todo es sintético.

10Eventos (webhooks)

Registrás tu URL vos mismo (self-serve) y Ellie te empuja los eventos crudos (señales, no alertas pre-juzgadas) como CloudEvents. Cada entrega viene firmada con HMAC en X-Ellie-Signature: verificá SIEMPRE la firma. Alternativa sin endpoint: polling GET /v1/events (omití since la primera vez; después ?since=<next_cursor>).

Las alertas de vida (caída, SOS) hoy se entregan por un canal heredado y migran a este contrato más adelante — por eso no están en esta lista todavía. El historial de alertas evaluadas está en GET /v1/alerts.
EventoTierQué es
clinical.eventClínicoSeñal clínica: sleep_hint_start/end, FC ↑/↓ baseline, SpO2 bajo, temp. piel (campo kind)
device.statusNormalEstado operativo: worn/not_worn, cargando, batería baja, conectividad, offline (state)
telecheckup.completed / .failed / .deferredCicloCiclo de vida de un telechequeo
bash · registrar tu webhook (self-serve)
# 1) registrás tu URL → te devuelve el secret UNA sola vez (guardalo)
curl -s -X POST $BASE/v1/subscriptions -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://tu-endpoint/hooks","event_types":["clinical.event","device.status"]}'
# → 201 { "id":"sub_…", "secret":"whsec_…", "status":"active", … }

# 2) probás la entrega firmada de punta a punta (colon literal, no lo URL-encodees)
curl -s -X POST "$BASE/v1/subscriptions/sub_…:test" -H "Authorization: Bearer $TOKEN"
# → 202 { "status":"delivered", "response_status":200 }
node · verificar la firma
const mac = crypto.createHmac("sha256", WEBHOOK_SECRET).update(rawBody).digest("hex");
if (`sha256=${mac}` !== req.header("X-Ellie-Signature")) return res.status(401).end();

Gestionás tus suscripciones con GET /v1/subscriptions y DELETE /v1/subscriptions/{id}.

11Tenencia, zonas y privacidad

Tu empresa_id sale del token — nunca lo mandás por query ni body, y por eso solo ves a tus propios pacientes. Cada empresa tiene una zona de residencia y sus datos de salud no salen de su región.

🌎 LATAM

Datos alojados en la región de Brasil (São Paulo). Empresas de AR, BR, UY, PE. Cumple LGPD (BR), Ley 25.326 (AR) y equivalentes.

🇺🇸 US

Datos alojados en una región de Estados Unidos. Cumple HIPAA (BAA por cliente). No se mezcla con LATAM.

  • Un mismo host (api.ellie.care) te rutea a tu región según el token.
  • Pedir un patient_id de otro tenant devuelve 404. Solo ves lo tuyo.
  • El sandbox usa datos 100% sintéticos (cero PHI real).

12Casos de uso reales

Lo que las empresas construyen sobre Ellie. Cada uno combina unos pocos endpoints.

📊 Tablero de monitoreo en vivo

Vitales y estado de dispositivos de todos tus pacientes en tu panel: quién está bien, quién no tiene el reloj puesto, quién tiene batería baja. FC + device.status + /patients.

📞 Enrutar alertas a tu central

Recibís caídas y SOS por webhook y abrís un caso o una llamada en tu sistema. Webhooks + /alerts.

⌚ Adherencia al uso del reloj

Detectás quién dejó de usar el reloj o lo tiene descargado, y avisás a la familia. Señales worn/not_worn + batería.

🩺 Chequeos a demanda

Un operador dispara un telechequeo (FC, ECG) desde tu app y recibe el resultado. telecheckups:request + webhook.

📈 Detección temprana de deterioro

Seguís tendencias (FC por minuto, eventos fuera de baseline) para anticipar un problema. FC agregada + clinical.event.

🏥 Integración con historia clínica

Exportás vitales, sueño y telechequeos en FHIR R4 al sistema clínico. /fhir/Observation.

13Sandbox → Producción

⏳ Producción por zona: integrás y probás contra sandbox ahora. El contrato es idéntico, así que el cutover no te cambia el código — se habilita por empresa/zona cuando se cumplen los gates.

Es la misma API. Pasar a prod no es reprogramar: cambiás 2 valores (host + credenciales).

🧪 Integrás en sandbox
Datos sintéticos, cero PHI. Probás token, lecturas, webhooks + firma.
✅ Gates
BAA/LGPD firmado · tu empresa provisionada en prod · webhook verificado.
🔑 Credencial prod
Ellie te emite un client_id/secret nuevo para tu empresa real + zona.
🚀 Cutover
Cambiás host + credenciales. Nada más.
SandboxProducción
Hostapi-sandbox.ellie.careapi.ellie.care
Credencialesclient sandboxclient de tu empresa real
Endpoints · scopes · payloadsidénticosidénticos
DatossintéticosPHI real — solo tus pacientes
Las credenciales no se comparten entre entornos. La zona la define tu empresa (va en el token), no la elegís vos.

14Errores y paginación

Los errores llegan en RFC 9457 (application/problem+json), parseables. La paginación es siempre por cursor (next_cursor), nunca offset.

application/problem+json
{ "type": "https://api.ellie.care/errors/insufficient-scope",
  "title": "Falta el scope read:vitals", "status": 403,
  "detail": "Tu token no incluye read:vitals." }

15Preguntas frecuentes

¿Necesito tener un reloj físico para desarrollar?
No. El sandbox sirve datos sintéticos realistas; podés integrar y probar todo el flujo (token, lecturas, webhooks, firma) sin ningún reloj ni paciente real.
¿Puedo ver pacientes de otras empresas?
No. Tu empresa_id sale del token y filtra todo: solo ves a tus pacientes. Pedir el ID de un paciente de otra empresa devuelve 404.
¿Ellie decide si algo es una emergencia?
Ellie te entrega señales (telemetría, estados) y alertas de vida (caída, SOS). La interpretación clínica y la decisión de actuar las hace tu sistema o tu equipo. Ellie es monitoreo y bienestar, no diagnóstico.
¿Qué pasa si el reloj se queda sin batería o sin señal?
Recibís esos estados como device.status (batería baja, cargando, offline) para poder reaccionar.
¿Los datos de salud salen de mi país o región?
No. Cada empresa tiene una zona de residencia (LATAM o US) y los datos de salud se resguardan en esa región. La zona la define tu empresa y viaja en el token.
¿Esto es un dispositivo médico? ¿Hace diagnóstico?
No. Ellie es una capa de monitoreo y bienestar sobre un smartwatch de consumo. Las señales y alertas son un apoyo para decidir, nunca un diagnóstico.
¿Cuándo tengo acceso a producción?
Producción se habilita por empresa y por zona una vez cumplidos los requisitos (acuerdos de datos, tu empresa aprovisionada, tu webhook verificado). Mientras tanto integrás contra el sandbox — el contrato es idéntico.
¿En qué formatos y idiomas está disponible?
Los datos clínicos se sirven en REST propio y en FHIR R4 estándar. Esta documentación está en español, inglés y portugués.

16Glosario

TérminoQué es
PacienteEl adulto mayor monitoreado. En FHIR, un Patient (patient_id).
Dispositivo / relojEl smartwatch de consumo con la app de Ellie.
Empresa / tenant (empresa_id)La organización cliente de Ellie. Todo particionado por este ID, que sale del token.
OperadorPersona de tu empresa que atiende pacientes desde la consola web.
SeñalTelemetría o estado crudo. Alimenta métricas; no es una emergencia por sí sola.
Alerta de vidaEvento real que exige reacción: caída o botón SOS.
TelechequeoMedición guiada a pedido (física en el reloj, o emocional por voz).
EventoAlgo que ocurrió y se te empuja por webhook: clinical.event, device.status, ciclo de telechequeo.
Zona (latam / us)Región de residencia de datos de la empresa. Sale del token; no cruza regiones.
ScopePermiso en el token (ej. read:vitals).
PHIInformación de salud protegida. En prod son datos reales; en sandbox, sintéticos.
FHIR R4Estándar de interoperabilidad de salud.

¿Listo para el detalle endpoint por endpoint? Abrí la referencia interactiva y probá contra el sandbox.