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.
Tipo de dadosdataType
Parâmetro filter |
Record type |
Operações disponíveis |
Escopo | Suporte a webhook |
Suporte a zeros reais |
|---|---|---|---|---|---|
Gasto de energia ativa
active-energy-burnedactive_energy_burned
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Minutos ativos
active-minutesactive_minutes
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Minutos na faixa ativa
active-zone-minutesactive_zone_minutes
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Nível de atividade
activity-levelactivity_level
|
Intervalo | list, reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Altitude
altitudealtitude
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Glicose no sangue
blood-glucoseblood_glucose
|
Exemplo | list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
Gordura corporal
body-fatbody_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-zonecalories_in_heart_rate_zone
|
Intervalo | rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Temperatura corporal central
core-body-temperaturecore_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-variabilitydaily_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-zonesdaily_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-saturationdaily_oxygen_saturation
|
Diário | list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
Frequência respiratória diária
daily-respiratory-ratedaily_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-ratedaily_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-derivationsdaily_sleep_temperature_derivations
|
Diário | list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
VO₂ máx. diário
daily-vo2-maxdaily_vo2_max
|
Diário | list, reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Distância
distancedistance
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Eletrocardiograma (ECG)
electrocardiogramelectrocardiogram
|
Sessão | list | .ecg.readonly |
||
Exercício
exerciseexercise
|
Sessão | list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Andares
floorsfloors
|
Intervalo | reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Comida
foodfood
|
Comida | list, get | .nutrition.readonly.nutrition.writeonly |
||
Unidade de medida de alimentos
food-measurement-unitfood_measurement_unit
|
Comida | list, get | .nutrition.readonly.nutrition.writeonly |
||
Frequência cardíaca
heart-rateheart_rate
|
Exemplo | list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
Variabilidade da frequência cardíaca
heart-rate-variabilityheart_rate_variability
|
Exemplo | list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
Altura
heightheight
|
Exemplo | list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
Registro de hidratação
hydration-loghydration_log
|
Sessão | list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
||
Notificação de ritmo irregular
irregular-rhythm-notificationirregular_rhythm_notification
|
Sessão | list | .irn.readonly |
||
Período menstrual
menstrual-periodmenstrual_period
|
Intervalo | create, update, batchDelete | .reproductive_health.writeonly |
||
Humores
moodsmoods
|
Exemplo | create, update, batchDelete | .mindfulness.writeonly |
||
Registro de alimentação
nutrition-lognutrition_log
|
Exemplo | list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
||
Teste de ovulação
ovulation-testovulation_test
|
Exemplo | create, update, batchDelete | .reproductive_health.writeonly |
||
Saturação de oxigênio
oxygen-saturationoxygen_saturation
|
Exemplo | list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
Resumo do sono com ritmo respiratório
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
|
Exemplo | list, reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
||
VO₂ máx. da corrida
run-vo2-maxrun_vo2_max
|
Exemplo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Período sedentário
sedentary-periodsedentary_period
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Para dormir
sleepsleep
|
Sessão | list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
||
Etapas
stepssteps
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Dados de voltas de natação
swim-lengths-dataswim_lengths_data
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Sintomas
symptomssymptoms
|
Exemplo | create, update, batchDelete | .logged_symptoms.writeonly |
||
Tempo na zona de frequência cardíaca
time-in-heart-rate-zonetime_in_heart_rate_zone
|
Intervalo | list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Total de calorias
total-caloriestotal_calories
|
Intervalo | rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
VO₂ máx.
vo2-maxvo2_max
|
Exemplo | list, reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
||
Peso
weightweight
|
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-minutesetotal-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:
- 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.
- 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.
- 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.