Ellie Care · Developers
API B2B · spec-first

Conecte seu sistema à Ellie Care

Teleassistência para idosos, em uma única API. Aqui está tudo em uma página: o que é a Ellie, o que o relógio mede e como integrá-lo — do conceito à primeira chamada. Você autentica com OAuth2 M2M; sua empresa e sua zona vêm do token. Você começa no sandbox (dados sintéticos, zero PHI) — já está no ar.

Teleassistência B2BOpenAPI 3.1 OAuth2 client-credentialsWebhooks + HMACFHIR R4Zonas LATAM · US

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.

A promessa da API: uma única URL (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.

Pessoa

👵 Paciente

O idoso monitorado. Mora em casa ou em uma casa de repouso. É quem usa o relógio. Em FHIR, um Patient.

Hardware

⌚ 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).

Cliente B2B

🏢 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.

Pessoas da sua empresa

🎧 Operadores

A equipe que atende os pacientes a partir de um console web (a central de monitoramento). Não programam: trabalham alertas e acompanhamento.

Ao redor do paciente

👨‍👩‍👧 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.

Você

👩‍💻 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.

Usar
O idoso usa o relógio no dia a dia. O app da Ellie roda em segundo plano.
Monitorar
O relógio mede vitais e atividade e os envia de forma contínua enquanto está no pulso.
Detectar
Eventos são detectados: uma queda (modelo de IA no próprio relógio), o botão SOS, FC fora da faixa, relógio sem uso.
Reagir
Avisa-se quem for preciso: operadores no console, a família pelo WhatsApp, e o seu sistema por webhooks / API.
⌚ Relógio
Mede e envia
Plataforma Ellie
Telemetria, eventos, FHIR e metadata · por zona
🚪 api.ellie.care
Login + isolamento por empresa/zona
🏢 Seu sistema
Você consome a API

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.

Ativo disponível hoje, de ponta a ponta Sob demanda / em implantação chegando por versão do relógio Roadmap definido no contrato, ainda não no dispositivo

Vitais contínuos — enquanto o relógio está no pulso

SinalCampoO que é e como é medidoMaturidade
Frequência cardíacaheart_rateSensor ó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 peleskin_temperatureSensor infravermelho contra a pele. Um valor por minuto, em °C.Ativo
PassosstepsContagem de passos do rastreador de atividade.Ativo
CaloriascaloriesCalorias gastas estimadas.Ativo
Oxigênio no sanguespo2Oximetria 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)ibiO 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)edaMicro-variações na condutância da pele pela transpiração; associadas a estresse/ativação emocional.Em implantação
Actigrafia / movimentomotionNível de movimento ao longo do tempo. Permite inferir repouso vs. atividade e padrões de sono.Em implantação
Ondas brutasppg, accel_rawSinal 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.

SinalO que indicaMaturidade
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çãoO que se pede ao pacienteMaturidade
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.

Hoje os alertas de vida (queda e SOS) são lidos via 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…ComoPara que serve
Ver seus pacientes e seus dispositivosGET /patients, GET /devices/{id}Quem você monitora, o estado do relógio e suas capacidades.
Ler vitais e tendênciasGET /vitals, GET /patients/{id}/vitals/heart-rateTelemetria bruta ou FC agregada por minuto para gráficos.
Ver o sonoGET /patients/{id}/sleep-sessionsJanelas de sono com sinais médios. Roadmap
Ver e solicitar telecheckupsGET /patients/{id}/telecheckups, POST /telecheckups:requestLer resultados ou disparar uma nova medição.
Consultar alertas de vidaGET /alertsHistórico de quedas e SOS.
Receber eventos em tempo realPOST /subscriptions (webhooks) ou GET /eventsSinais e estados assim que acontecem, assinados com HMAC.
Ajustar a config do relógioPATCH /patients/{id}/configAjustes do dispositivo (opt-in, exige scope de escrita).
Consumir em formato padrãoGET /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.

Acesso ao sandbox
Credenciais de teste: ellie_sandbox_br / ellie_sandbox_us, secret sandbox.
Peça um token
POST /oauth/token. Sua empresa e zona vão dentro do token.
Primeira chamada
Liste pacientes ou leia a FC de um deles. Sem passar empresa: vem do token.
Assine eventos
Registre seu webhook e verifique a assinatura HMAC.
Vá para produção
Troca host + credenciais. O código não muda.
bash · sandbox
# 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.

client_id + secret
Sua credencial
POST /oauth/token
O edge valida o secret
access_token (JWT)
Carrega empresa_id · zone · scope
GET /v1/…
O edge filtra por empresa+zona do token
ScopePermite
read:patientsListar e ler seus pacientes
read:devicesDispositivos, config e capacidades
read:vitalsTelemetria (vitais, actigrafia)
read:alertsHistórico de alertas
telecheckup:readLer telecheckups
telecheckup:requestSolicitar um telecheckup
subscribe:eventsWebhooks e polling de eventos
write:configAjustar 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.

  • TelemetriaGET /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 minutoGET /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 sonoGET /v1/patients/{id}/sleep-sessions. Janela de sono com sinais médios (HR, EDA, HRV, temperatura, actigrafia). Roadmap
  • TelecheckupsGET /v1/patients/{id}/telecheckups; são solicitados com POST /v1/telecheckups:request. Sempre reportam status (done/failed/deferred).
  • FHIRGET /v1/fhir/Observation?patient=&code=8867-4 (LOINC). Devolve um Bundle R4. Telecheckup emocional como QuestionnaireResponse.
PHI clínico: os telecheckups são dados de saúde sensíveis. Em produção exigem scope clínico + consentimento por zona. No sandbox tudo é sintético.

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>).

Os alertas de vida (queda, SOS) hoje são entregues por um canal legado e migram para este contrato mais adiante — por isso ainda não estão nesta lista. O histórico de alertas avaliados está em GET /v1/alerts.
EventoTierO que é
clinical.eventClínicoSinal clínico: sleep_hint_start/end, FC ↑/↓ baseline, SpO2 baixo, temp. pele (campo kind)
device.statusNormalEstado operacional: worn/not_worn, carregando, bateria baixa, conectividade, offline (state)
telecheckup.completed / .failed / .deferredCicloCiclo de vida de um telecheckup
bash · registrar seu webhook (self-serve)
# 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 }
node · verificar a assinatura
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_id de outro tenant devolve 404. 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

⏳ Produção por zona: você integra e testa no sandbox agora. O contrato é idêntico, então o cutover não muda o seu código — é habilitado por empresa/zona quando os gates são cumpridos.

É a mesma API. Passar para prod não é reprogramar: você troca 2 valores (host + credenciais).

🧪 Integra no sandbox
Dados sintéticos, zero PHI. Testa token, leituras, webhooks + assinatura.
✅ Gates
BAA/LGPD assinado · sua empresa provisionada em prod · webhook verificado.
🔑 Credencial prod
A Ellie te emite um client_id/secret novo para a sua empresa real + zona.
🚀 Cutover
Troca host + credenciais. Nada mais.
SandboxProdução
Hostapi-sandbox.ellie.careapi.ellie.care
Credenciaisclient sandboxclient da sua empresa real
Endpoints · scopes · payloadsidênticosidênticos
DadossintéticosPHI real — só os seus pacientes
As credenciais não se compartilham entre ambientes. A zona é definida pela sua empresa (vai no token), você não a escolhe.

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.

application/problem+json
{ "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?
Não. O sandbox serve dados sintéticos realistas; você pode integrar e testar todo o fluxo (token, leituras, webhooks, assinatura) sem nenhum relógio ou paciente real.
Posso ver pacientes de outras empresas?
Não. Seu 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?
A Ellie entrega sinais (telemetria, estados) e alertas de vida (queda, SOS). A interpretação clínica e a decisão de agir são do seu sistema ou da sua equipe. A Ellie é monitoramento e bem-estar, não diagnóstico.
O que acontece se o relógio ficar sem bateria ou sem sinal?
Você recebe esses estados como device.status (bateria baixa, carregando, offline) para poder reagir.
Os dados de saúde saem do meu país ou região?
Não. Cada empresa tem uma zona de residência (LATAM ou US) e os dados de saúde são resguardados nessa região. A zona é definida pela sua empresa e viaja no token.
Isto é um dispositivo médico? Faz diagnóstico?
Não. A Ellie é uma camada de monitoramento e bem-estar sobre um smartwatch de consumo. Os sinais e alertas são um apoio à decisão, nunca um diagnóstico.
Quando eu tenho acesso à produção?
A produção é habilitada por empresa e por zona assim que os requisitos são cumpridos (acordos de dados, sua empresa provisionada, seu webhook verificado). Enquanto isso você integra no sandbox — o contrato é idêntico.
Em quais formatos e idiomas está disponível?
Os dados clínicos são servidos em REST próprio e em FHIR R4 padrão. Esta documentação está em espanhol, inglês e português.

16Glossário

TermoO que é
PacienteO idoso monitorado. Em FHIR, um Patient (patient_id).
Dispositivo / relógioO 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.
OperadorPessoa da sua empresa que atende pacientes pelo console web.
SinalTelemetria ou estado bruto. Alimenta métricas; não é uma emergência por si só.
Alerta de vidaEvento real que exige reação: queda ou botão SOS.
TelecheckupMedição guiada sob demanda (física no relógio, ou emocional por voz).
EventoAlgo 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.
ScopePermissão no token (ex.: read:vitals).
PHIInformação de saúde protegida. Em prod são dados reais; no sandbox, sintéticos.
FHIR R4Padrão de interoperabilidade em saúde.

Pronto para o detalhe endpoint por endpoint? Abra a referência interativa e teste contra o sandbox.