01O que é a Ellie Care?
A Ellie Care é uma plataforma de teleassistência para idosos. Uma pessoa idosa usa um smartwatch no pulso; a Ellie mede seus sinais vitais e sua atividade de forma contínua, detecta situações de risco (uma queda, o botão de emergência, uma frequência cardíaca anormal, inatividade prolongada) e faz essa informação chegar a quem precisa reagir: a família, a equipe de uma casa de repouso, ou o sistema da empresa que presta o serviço.
A Ellie não fabrica o relógio e não é vendida como um dispositivo médico. É software que roda em um smartwatch de consumo e opera como monitoramento e bem-estar: os sinais e alertas são um apoio à decisão, nunca um diagnóstico.
Esta API é para o lado B2B: as empresas parceiras —provedores de teleassistência, planos de saúde, casas de repouso, sistemas de saúde— que integram os dados da Ellie nos seus próprios sistemas.
api.ellie.care), um único contrato e um único login. Você integra contra o contrato, que é estável. Hoje se testa no sandbox (dados sintéticos); a produção é habilitada por zona à medida que cada empresa é provisionada.02Os protagonistas
Seis atores. Entender quem é quem é metade do modelo mental — o resto da API se encaixa sozinho.
👵 Paciente
O idoso monitorado. Mora em casa ou em uma casa de repouso. É quem usa o relógio. Em FHIR, um Patient.
⌚ O relógio
Um smartwatch de consumo com o app da Ellie. Mede, detecta e avisa. Pode vir acompanhado de dispositivos extras (balança, medidor de pressão).
🏢 Sua empresa
A organização que presta o serviço e contrata a Ellie: o tenant. Tudo é particionado por empresa (empresa_id). Você, desenvolvedor, integra por aqui.
🎧 Operadores
A equipe que atende os pacientes a partir de um console web (a central de monitoramento). Não programam: trabalham alertas e acompanhamento.
👨👩👧 Rede de apoio
Família e cuidadores. São avisados por canais como o WhatsApp. Não usam a API, mas são o destino de muitos alertas.
👩💻 Desenvolvedor
Integra a Ellie ao sistema da sua empresa: traz vitais, telecheckups e eventos. Autentica-se como empresa e vê apenas os seus pacientes.
03Como funciona
O ciclo da teleassistência em quatro passos; a API te conecta no passo 4. Por baixo, uma única porta (api.ellie.care) te autentica, te isola por empresa e zona, e te entrega apenas o que é seu.
04O relógio: o que ele mede
O relógio faz três coisas: mede vitais contínuos enquanto é usado, executa medições sob demanda, e detecta eventos de segurança.
Vitais contínuos — enquanto o relógio está no pulso
| Sinal | Campo | O que é e como é medido | Maturidade |
|---|---|---|---|
| Frequência cardíaca | heart_rate | Sensor óptico (luz verde) no pulso. Batimentos por minuto, a cada poucos segundos. Tem endpoint agregado por minuto (mediana/máx/mín). | Ativo |
| Temperatura da pele | skin_temperature | Sensor infravermelho contra a pele. Um valor por minuto, em °C. | Ativo |
| Passos | steps | Contagem de passos do rastreador de atividade. | Ativo |
| Calorias | calories | Calorias gastas estimadas. | Ativo |
| Oxigênio no sangue | spo2 | Oximetria de pulso óptica. No relógio é sob demanda (~30 s parado), não contínuo — tratado como telecheckup. | Sob demanda |
| Variabilidade cardíaca (HRV / IBI) | ibi | O quanto o tempo entre batimentos varia (ms). Indicador de estresse fisiológico, recuperação e estado autonômico. | Em implantação |
| Atividade eletrodérmica (EDA) | eda | Micro-variações na condutância da pele pela transpiração; associadas a estresse/ativação emocional. | Em implantação |
| Actigrafia / movimento | motion | Nível de movimento ao longo do tempo. Permite inferir repouso vs. atividade e padrões de sono. | Em implantação |
| Ondas brutas | ppg, accel_raw | Sinal do sensor óptico e do acelerômetro sem processamento. Volume muito alto; para algoritmos próprios. Opt-in. | Roadmap |
Sinais do dispositivo — técnicos, não clínicos
Chegam pelo canal device.status e em GET /devices/{id}. Servem para adesão e operação.
| Sinal | O que indica | Maturidade |
|---|---|---|
No pulso / fora do pulso (worn / not_worn) | Sensor de proximidade: se o relógio está no pulso. Essencial para adesão e para habilitar a detecção de quedas. | Ativo |
Carregando · bateria (charging, battery_level, low_battery) | Estado de energia (0–100 %, carregando, bateria baixa). A bateria é um sinal técnico, não um vital clínico. | Ativo |
Conectividade (wifi, cellular, offline) | Como o relógio está conectado, e se ficou sem conexão. | Ativo |
Localização (location) | Posição aproximada. Dado operacional, não clínico. | Ativo |
Telecheckups — medições guiadas, sob demanda
O seu sistema (ou um operador) solicita uma medição; o relógio orienta o paciente, coleta a amostra e devolve um resultado com status done/failed/deferred.
| Medição | O que se pede ao paciente | Maturidade |
|---|---|---|
FC pontual (hr_spot) | Ficar parado 15–30 s. | Sob demanda |
Variabilidade (hrv) | Respirar normalmente sem se mover 60–120 s. | Sob demanda |
Temp. pontual (skin_temp) | Cobrir o relógio ~20–30 s. | Sob demanda |
Oxigênio (spo2) | Braço apoiado, parado ~30 s. | Sob demanda |
Composição corporal (bia) | Confirmar peso/altura/idade/sexo e apoiar dois dedos nos botões laterais (bioimpedância). Devolve % de gordura/músculo/água. | Sob demanda |
ECG (ecg) | Apoiar um dedo no botão e ficar parado 30 s. Ritmo de uma derivação. Sujeito a aprovação regulatória por país. | Sob demanda |
| Testes funcionais (marcha, equilíbrio, sentar-levantar, respiratório) | Testes de mobilidade guiados para medir fragilidade e risco de queda. Definidos no contrato; o relógio ainda não os executa. | Roadmap |
Segurança de vida
🚨 Detecção de quedas Ativo
O acelerômetro alimenta um modelo de IA no próprio relógio que infere quedas. É entregue como um evento crítico (booleano), de baixa latência; o sinal bruto não é enviado. É desativado quando o relógio não está no pulso.
🆘 Botão SOS Ativo
O paciente pressiona e segura o botão (ou toca no SOS na tela). Contagem regressiva com opção de cancelar antes de escalar o aviso para a família / central.
GET /alerts. A avaliação emocional (ansiedade/depressão, GAD-7/PHQ-9) é um recurso da plataforma que vem de uma avaliação por voz, não do relógio — exposta como QuestionnaireResponse em FHIR.05Sinal vs. alerta
A distinção que evita mal-entendidos: a Ellie te envia sinais brutos, não veredictos clínicos.
📈 Sinal
Telemetria e estados: FC acima do baseline, temperatura, bateria baixa, relógio fora do pulso. Alimentam suas métricas. Não são uma emergência por si só — você (ou suas regras) decide o que significam.
🚨 Alerta de vida
Um evento real que exige reação: uma queda ou um botão SOS. Poucos, priorizados e críticos. Entregues à parte (GET /alerts).
Por isso o contrato separa eventos clínicos (clinical.event), estado do dispositivo (device.status) e alertas (vida). A Ellie evita pré-julgar: entrega o sinal para que o seu sistema aplique a própria lógica clínica.
06O que você pode fazer com a API
Tudo restrito à sua empresa (vem do token) e aos seus pacientes. Em linguagem de negócio:
| Você pode… | Como | Para que serve |
|---|---|---|
| Ver seus pacientes e seus dispositivos | GET /patients, GET /devices/{id} | Quem você monitora, o estado do relógio e suas capacidades. |
| Ler vitais e tendências | GET /vitals, GET /patients/{id}/vitals/heart-rate | Telemetria bruta ou FC agregada por minuto para gráficos. |
| Ver o sono | GET /patients/{id}/sleep-sessions | Janelas de sono com sinais médios. Roadmap |
| Ver e solicitar telecheckups | GET /patients/{id}/telecheckups, POST /telecheckups:request | Ler resultados ou disparar uma nova medição. |
| Consultar alertas de vida | GET /alerts | Histórico de quedas e SOS. |
| Receber eventos em tempo real | POST /subscriptions (webhooks) ou GET /events | Sinais e estados assim que acontecem, assinados com HMAC. |
| Ajustar a config do relógio | PATCH /patients/{id}/config | Ajustes do dispositivo (opt-in, exige scope de escrita). |
| Consumir em formato padrão | GET /fhir/Observation?… | Dados clínicos como FHIR R4 (Bundle). |
07Primeiros passos e Quickstart
Do zero ao seu primeiro dado, sem dados reais. O mapa, e depois o código.
ellie_sandbox_br / ellie_sandbox_us, secret sandbox.POST /oauth/token. Sua empresa e zona vão dentro do token.# base do sandbox (dados sintéticos) BASE=https://api-sandbox.ellie.care # 1) token OAuth2 (o empresa_id + zona vão dentro do 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) sua primeira chamada — sem parâmetro de empresa (vem do 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"
Prefere explorar sem escrever código? Abra a referência interativa (try-it contra o sandbox).
08Autenticação
OAuth 2.0 client-credentials (app-a-app). Você registra uma app → client_id + client_secret. O token é de vida curta e carrega o seu empresa_id, a sua zone e os seus scopes.
| Scope | Permite |
|---|---|
read:patients | Listar e ler seus pacientes |
read:devices | Dispositivos, config e capacidades |
read:vitals | Telemetria (vitais, actigrafia) |
read:alerts | Histórico de alertas |
telecheckup:read | Ler telecheckups |
telecheckup:request | Solicitar um telecheckup |
subscribe:events | Webhooks e polling de eventos |
write:config | Ajustar a config do dispositivo (opt-in) |
09Dados de saúde: endpoints
A telemetria e os telecheckups são servidos de duas formas: REST bruto ou FHIR R4 padrão. O edge abstrai de onde eles vêm.
- Telemetria —
GET /v1/vitals?patient_id=&type=heart_rate&since=. Tipos:heart_rate,spo2,skin_temperature,ibi,eda,motion(actigrafia ENMO),steps,calories,ppg/ppg_ir/ppg_red,accel_raw. Alto volume → cursor +since. - Frequência cardíaca agregada por minuto —
GET /v1/patients/{id}/vitals/heart-rate?start=&end=. Mediana, máx, mín e quantidade de amostras por minuto. Janela ≤ 30 dias por consulta; para mais, pagine. - Sessões de sono —
GET /v1/patients/{id}/sleep-sessions. Janela de sono com sinais médios (HR, EDA, HRV, temperatura, actigrafia). Roadmap - Telecheckups —
GET /v1/patients/{id}/telecheckups; são solicitados comPOST /v1/telecheckups:request. Sempre reportam status (done/failed/deferred). - FHIR —
GET /v1/fhir/Observation?patient=&code=8867-4(LOINC). Devolve umBundleR4. Telecheckup emocional comoQuestionnaireResponse.
10Eventos (webhooks)
Você mesmo registra a sua URL (self-serve) e a Ellie te envia os eventos brutos (sinais, não alertas pré-julgados) como CloudEvents. Cada entrega vem assinada com HMAC em X-Ellie-Signature: verifique SEMPRE a assinatura. Alternativa sem endpoint: polling GET /v1/events (omita since na primeira vez; depois ?since=<next_cursor>).
GET /v1/alerts.| Evento | Tier | O que é |
|---|---|---|
clinical.event | Clínico | Sinal clínico: sleep_hint_start/end, FC ↑/↓ baseline, SpO2 baixo, temp. pele (campo kind) |
device.status | Normal | Estado operacional: worn/not_worn, carregando, bateria baixa, conectividade, offline (state) |
telecheckup.completed / .failed / .deferred | Ciclo | Ciclo de vida de um telecheckup |
# 1) registra sua URL → devolve o secret UMA única vez (guarde-o) curl -s -X POST $BASE/v1/subscriptions -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"url":"https://seu-endpoint/hooks","event_types":["clinical.event","device.status"]}' # → 201 { "id":"sub_…", "secret":"whsec_…", "status":"active", … } # 2) testa a entrega assinada de ponta a ponta (dois-pontos literal, não faça URL-encode) curl -s -X POST "$BASE/v1/subscriptions/sub_…:test" -H "Authorization: Bearer $TOKEN" # → 202 { "status":"delivered", "response_status":200 }
const mac = crypto.createHmac("sha256", WEBHOOK_SECRET).update(rawBody).digest("hex"); if (`sha256=${mac}` !== req.header("X-Ellie-Signature")) return res.status(401).end();
Você gerencia suas assinaturas com GET /v1/subscriptions e DELETE /v1/subscriptions/{id}.
11Tenência, zonas e privacidade
Seu empresa_id vem do token — você nunca o envia por query nem body, e por isso só vê os seus próprios pacientes. Cada empresa tem uma zona de residência e os seus dados de saúde não saem da sua região.
🌎 LATAM
Dados hospedados na região do Brasil (São Paulo). Empresas de AR, BR, UY, PE. Atende à LGPD (BR), à Lei 25.326 (AR) e aos equivalentes.
🇺🇸 US
Dados hospedados em uma região dos Estados Unidos. Atende à HIPAA (BAA por cliente). Não se mistura com a LATAM.
- Um mesmo host (
api.ellie.care) te roteia para a sua região conforme o token. - Pedir um
patient_idde outro tenant devolve404. Você só vê o que é seu. - O sandbox usa dados 100% sintéticos (zero PHI real).
12Casos de uso reais
O que as empresas constroem sobre a Ellie. Cada um combina alguns poucos endpoints.
📊 Painel de monitoramento ao vivo
Vitais e estado dos dispositivos de todos os seus pacientes no seu painel: quem está bem, quem não está com o relógio, quem está com bateria baixa. FC + device.status + /patients.
📞 Encaminhar alertas para a sua central
Recebe quedas e SOS por webhook e abre um caso ou uma ligação no seu sistema. Webhooks + /alerts.
⌚ Adesão ao uso do relógio
Detecta quem deixou de usar o relógio ou o deixou descarregar, e avisa a família. Sinais worn/not_worn + bateria.
🩺 Medições sob demanda
Um operador dispara um telecheckup (FC, ECG) pelo seu app e recebe o resultado. telecheckups:request + webhook.
📈 Detecção precoce de piora
Acompanha tendências (FC por minuto, eventos fora do baseline) para antecipar um problema. FC agregada + clinical.event.
🏥 Integração com prontuário
Exporta vitais, sono e telecheckups em FHIR R4 para o sistema clínico. /fhir/Observation.
13Sandbox → Produção
É a mesma API. Passar para prod não é reprogramar: você troca 2 valores (host + credenciais).
| Sandbox | Produção | |
|---|---|---|
| Host | api-sandbox.ellie.care | api.ellie.care |
| Credenciais | client sandbox | client da sua empresa real |
| Endpoints · scopes · payloads | idênticos | idênticos |
| Dados | sintéticos | PHI real — só os seus pacientes |
14Erros e paginação
Os erros chegam em RFC 9457 (application/problem+json), parseáveis. A paginação é sempre por cursor (next_cursor), nunca offset.
{ "type": "https://api.ellie.care/errors/insufficient-scope",
"title": "Falta o scope read:vitals", "status": 403,
"detail": "Seu token não inclui read:vitals." }15Perguntas frequentes
Preciso de um relógio físico para desenvolver?
Posso ver pacientes de outras empresas?
empresa_id vem do token e filtra tudo: você só vê os seus pacientes. Pedir o ID de um paciente de outra empresa devolve 404.A Ellie decide se algo é uma emergência?
O que acontece se o relógio ficar sem bateria ou sem sinal?
device.status (bateria baixa, carregando, offline) para poder reagir.Os dados de saúde saem do meu país ou região?
Isto é um dispositivo médico? Faz diagnóstico?
Quando eu tenho acesso à produção?
Em quais formatos e idiomas está disponível?
16Glossário
| Termo | O que é |
|---|---|
| Paciente | O idoso monitorado. Em FHIR, um Patient (patient_id). |
| Dispositivo / relógio | O smartwatch de consumo com o app da Ellie. |
Empresa / tenant (empresa_id) | A organização cliente da Ellie. Tudo particionado por este ID, que vem do token. |
| Operador | Pessoa da sua empresa que atende pacientes pelo console web. |
| Sinal | Telemetria ou estado bruto. Alimenta métricas; não é uma emergência por si só. |
| Alerta de vida | Evento real que exige reação: queda ou botão SOS. |
| Telecheckup | Medição guiada sob demanda (física no relógio, ou emocional por voz). |
| Evento | Algo que aconteceu e é enviado a você por webhook: clinical.event, device.status, ciclo do telecheckup. |
Zona (latam / us) | Região de residência dos dados da empresa. Vem do token; não cruza regiões. |
| Scope | Permissão no token (ex.: read:vitals). |
| PHI | Informação de saúde protegida. Em prod são dados reais; no sandbox, sintéticos. |
| FHIR R4 | Padrão de interoperabilidade em saúde. |
Pronto para o detalhe endpoint por endpoint? Abra a referência interativa e teste contra o sandbox.