Tipos de dados da API Google Health

A tabela a seguir contém a lista completa de tipos de dados, com várias colunas para ajudar você a entender a representação de cada tipo na API Google Health, bem como o escopo em que cada um está disponível.

Tabela: tipos de dados da API Google Health
Tipo de dados
  dataType Parâmetro
  filter
Record
type
Operações
disponíveis
Escopo Suporte a webhook
Suporte a zeros reais
Gasto de energia ativa
  active-energy-burned
  active_energy_burned
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Minutos ativos
  active-minutes
  active_minutes
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Minutos na faixa ativa
  active-zone-minutes
  active_zone_minutes
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Nível de atividade
  activity-level
  activity_level
Intervalo list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Altitude
  altitude
  altitude
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Glicose no sangue
  blood-glucose
  blood_glucose
Exemplo list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Gordura corporal
  body-fat
  body_fat
Exemplo list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Calorias consumidas na zona de frequência cardíaca
  calories-in-heart-rate-zone
  calories_in_heart_rate_zone
Intervalo rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Temperatura corporal central
  core-body-temperature
  core_body_temperature
Exemplo list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Variabilidade da frequência cardíaca diária
  daily-heart-rate-variability
  daily_heart_rate_variability
Diário list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Zonas de frequência cardíaca diárias
  daily-heart-rate-zones
  daily_heart_rate_zones
Diário list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Saturação de oxigênio diária
  daily-oxygen-saturation
  daily_oxygen_saturation
Diário list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Frequência respiratória diária
  daily-respiratory-rate
  daily_respiratory_rate
Diário list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Frequência cardíaca em repouso diária
  daily-resting-heart-rate
  daily_resting_heart_rate
Diário list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Derivações diárias da temperatura do sono
  daily-sleep-temperature-derivations
  daily_sleep_temperature_derivations
Diário list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
VO₂ máx. diário
  daily-vo2-max
  daily_vo2_max
Diário list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Distância
  distance
  distance
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Eletrocardiograma (ECG)
  electrocardiogram
  electrocardiogram
Sessão list .ecg.readonly
Exercício
  exercise
  exercise
Sessão list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Andares
  floors
  floors
Intervalo reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Comida
  food
  food
Comida list, get .nutrition.readonly
.nutrition.writeonly
Unidade de medida de alimentos
  food-measurement-unit
  food_measurement_unit
Comida list, get .nutrition.readonly
.nutrition.writeonly
Frequência cardíaca
  heart-rate
  heart_rate
Exemplo list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Variabilidade da frequência cardíaca
  heart-rate-variability
  heart_rate_variability
Exemplo list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Altura
  height
  height
Exemplo list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Registro de hidratação
  hydration-log
  hydration_log
Sessão list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Notificação de ritmo irregular
  irregular-rhythm-notification
  irregular_rhythm_notification
Sessão list .irn.readonly
Período menstrual
  menstrual-period
  menstrual_period
Intervalo create, update, batchDelete .reproductive_health.writeonly
Humores
  moods
  moods
Exemplo create, update, batchDelete .mindfulness.writeonly
Registro de alimentação
  nutrition-log
  nutrition_log
Exemplo list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Teste de ovulação
  ovulation-test
  ovulation_test
Exemplo create, update, batchDelete .reproductive_health.writeonly
Saturação de oxigênio
  oxygen-saturation
  oxygen_saturation
Exemplo list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Resumo do sono com ritmo respiratório
  respiratory-rate-sleep-summary
  respiratory_rate_sleep_summary
Exemplo list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
VO₂ máx. da corrida
  run-vo2-max
  run_vo2_max
Exemplo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Período sedentário
  sedentary-period
  sedentary_period
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Para dormir
  sleep
  sleep
Sessão list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
Etapas
  steps
  steps
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Dados de voltas de natação
  swim-lengths-data
  swim_lengths_data
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Sintomas
  symptoms
  symptoms
Exemplo create, update, batchDelete .logged_symptoms.writeonly
Tempo na zona de frequência cardíaca
  time-in-heart-rate-zone
  time_in_heart_rate_zone
Intervalo list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Total de calorias
  total-calories
  total_calories
Intervalo rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO₂ máx.
  vo2-max
  vo2_max
Exemplo list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Peso
  weight
  weight
Exemplo list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

Restrições de consulta

Ao consultar pontos de dados, resumos ou resumos diários da API, considere as seguintes restrições:

  • Requisitos de filtro:alguns tipos de dados derivados somente leitura, como total-calories, exigem um filtro que especifique um horário de início de intervalo (usando tempo físico ou civil).
  • Limites do período da consulta:o período máximo da consulta para calories-in-heart-rate-zone, heart-rate, active-minutes e total-calories é de 14 dias. O período máximo de consulta para todos os outros tipos de dados é de 90 dias.

Disponibilidade de dados

As atualizações dos dados do usuário só ficam disponíveis depois que ele sincroniza o monitor fitness ou insere manualmente novos dados no app Fitbit móvel ou no app da web. O dispositivo Fitbit e o app Fitbit móvel podem ser sincronizados automaticamente a cada 15 minutos quando o app Fitbit está aberto no dispositivo móvel e os dois têm uma conexão de dados ativa e estão dentro do alcance do Bluetooth. Se o usuário estiver monitorando a atividade com o MobileTrack, ele será sincronizado a cada hora enquanto o app estiver aberto.

Consultar dados históricos

Um dos principais benefícios da API Google Health é a capacidade de acompanhar o desempenho de um usuário e monitorar os sinais vitais dele por longos períodos. Você pode consultar os dados de um usuário desde que eles foram registrados. A API não impõe limitações ou restrições à quantidade de dados históricos que seu aplicativo pode consumir.

No entanto, a consulta de dados históricos ainda é regida pelos limites de taxa padrão. Para reduzir o número de chamadas de API em relação a esses limites, a API Google Health permite consultar dados em um período. Observe os seguintes limites de paginação e solicitação:

  • Cada endpoint retorna um tamanho máximo de página de 10.000 pontos de dados por página.
  • Os períodos de datas de consulta são restritos a 14 e 90 dias por solicitação.

Dependendo do volume de dados históricos que seu aplicativo precisa, a recuperação de todo o conjunto de dados pode exigir várias solicitações sequenciais e levar mais tempo. Tenha isso em mente ao projetar o processo de sincronização de dados do aplicativo.

Para garantir o desempenho ideal e evitar erros de API, siga estas diretrizes ao consultar dados históricos:

Sincronização de dados em fases (carga quente x carregamento a frio)

  • Carga "quente" inicial:busca e renderiza apenas os dados dos últimos 7 a 14 dias durante a sequência de carga principal. Isso garante que os usuários vejam os dados imediatamente, sem esperar por consultas de longa duração.
  • Carregamento "frio" em segundo plano:delegue a recuperação de dados históricos mais antigos a uma fila assíncrona de prioridade mais baixa ou a um processo em segundo plano depois que a interface principal for renderizada.

Divisão de consultas com base no tempo

  • Não solicite períodos de vários anos ou meses em uma única chamada de API. Divida consultas históricas grandes em intervalos menores e sequenciais (por exemplo, uma semana por solicitação).
  • Faça em lote ou em sequência essas subconsultas com segurança para respeitar os limites de simultaneidade e manter indicadores de progresso da interface estáveis.

Aproveitar consolidações pré-agregadas

Reestruture os painéis de visão geral e os gráficos de tendências para usar endpoints pré-agregados e de resumo (como DailyRollUpDataPoints). Isso vai reduzir drasticamente a sobrecarga de computação no back-end e o tempo de transferência de rede para o cliente.

Tratamento de erros resiliente (novas tentativas inteligentes)

  • Implemente o tratamento estrito de espera exponencial ao encontrar limites de taxa (429 Too Many Requests) e tempos limite de gateway do servidor (504 Gateway Timeout). Nunca repita payloads grandes e com falha imediatamente. As novas tentativas instantâneas multiplicam o congestionamento do back-end e agravam a degradação do sistema.
  • Se uma consulta atingir o tempo limite repetidamente, volte automaticamente para uma janela de tempo menor (por exemplo, reduza um período de uma semana para três dias).

Acesso de terceiros

Os dispositivos Fitbit não podem se comunicar diretamente com aplicativos ou serviços de terceiros. Esses dispositivos foram criados para se comunicar e sincronizar exclusivamente com o app Fitbit móvel.

O dispositivo sincroniza dados automaticamente ao longo do dia, sempre que o app Fitbit está aberto ou a cada 15 minutos se o Bluetooth estiver ativo e o app estiver em execução em segundo plano. Depois que esse processo de sincronização é concluído, os dados ficam disponíveis para serviços de terceiros pela API Google Health.

Padrões de distância

As distâncias de exercícios, como elevationGainMillimeters, são medidas em milímetros como unidade padrão pelos seguintes motivos:

  1. Manter a precisão dos dados: o motivo mais importante para usar milímetros é garantir que não vamos perder a precisão dos dados que lemos e fornecemos. Usar uma unidade refinada, como milímetros, permite representar medidas com alta precisão.
  2. Padronização: milímetros são a unidade padrão projetada em todos os nossos serviços. Essa consistência ajuda a garantir uma experiência uniforme para desenvolvedores que interagem com diferentes partes da API.
  3. Suporte amplo a sistemas de medição: usar uma unidade básica, como milímetros, facilita a conversão para qualquer outra unidade escolhida, seja métrica, imperial ou outros sistemas de medição.

Duração variável do dia

O processamento de tempo pela API Health prioriza o tempo do usuário para considerar a duração variável dos dias causada pelo horário de verão ou por viagens. Cada ponto de dados é armazenado com um carimbo de data/hora UTC físico e o ajuste UTC ativo no momento do evento. Isso permite que o sistema:

  • Mapeie o evento para um instante físico preciso.
  • Corrija o horário para o contexto local do usuário para agregação.

Horário de verão

Quando o horário de verão acontece, um "recuo" resulta em um dia civil de 25 horas, e a consolidação para essa data conterá 25 horas de dados. Um "adiantamento" resulta em um dia civil de 23 horas em que o horário volta para o horário padrão.

Viagem

Viajar por fusos horários pode causar variações ainda mais significativas na duração física de um único dia civil.

Use o endpoint dailyRollUp para conciliar diferenças de fuso horário. Ele atribui automaticamente os dados ao dia do calendário em que foram registrados, de acordo com a hora local do usuário, "unindo" o dia, apesar das mudanças de fuso horário.