Синхронизация данных Apple Health с REST API

Отправка данных о здоровье на конечную точку REST API.

Last updated: June 9, 2026

На этой странице

Руководство по автоматизации REST API

Автоматизации REST API позволяют автоматически экспортировать данные о здоровье в любой веб-сервис, принимающий HTTP POST. Это удобно для интеграции с собственными бэкендами, сторонними API и вебхуками.

Обзор

Автоматизации REST API отправляют данные о здоровье на указанный URL методом HTTP POST. Автоматизация может отправлять данные в формате JSON или CSV; можно задать заголовки для аутентификации и пользовательских метаданных.

Сценарии использования:

  • интеграция с собственными бэкенд-сервисами;
  • отправка данных на вебхуки;
  • синхронизация со сторонними API;
  • собственные дашборды и платформы аналитики.

Основные возможности:

  • поддержка форматов JSON и CSV;
  • пользовательские HTTP-заголовки для аутентификации;
  • настраиваемый тайм-аут запроса;
  • ручной экспорт исторических данных.

Ограничения:

  • Доступ к данным о здоровье: Приложениям запрещён доступ к данным о здоровье, пока iPhone заблокирован. Автоматизации выполняются только в периоды, когда устройство разблокировано. Это ограничение Apple, его нельзя обойти. Подробнее

  • Фоновая обработка: iOS ограничивает фоновую обработку для экономии заряда батареи. Автоматизации зависят от фонового обновления приложений и могут не запускаться сразу, если:

    • для приложения отключено фоновое обновление приложений
    • устройство в режиме энергосбережения
    • устройство длительное время неактивно
    • системные ресурсы ограничены
    • несколько приложений конкурируют за время фонового выполнения

Производительность

Имейте в виду, что iOS оптимизирован для кратковременных задач на мобильном устройстве с очень строгими ограничениями производительности. Фоновые задачи обычно должны завершиться в течение 30 секунд и ограничены по объёму памяти. Health Auto Export предлагает высокую гибкость и настраиваемость, поэтому важно понимать, как определённые конфигурации влияют на производительность приложения и результаты.

  • Конфигурация: Автоматизации, создающие большие объёмы данных, могут привести к завершению процесса системой, и автоматизации перестанут работать в фоне. Следующие конфигурации могут создавать большие объёмы данных:
    • Автоматизации, настроенные на экспорт всех показателей здоровья.
      • Рекомендация: выбирайте только показатели здоровья, для которых в Apple Health есть сохранённые данные, и только те данные, которые вы действительно планируете использовать. Даже пустые типы данных влияют на производительность. Можно также разделить выбранные показатели между несколькими автоматизациями — это облегчает обработку для системы.
    • Автоматизации с группировкой по времени в секундах или минутах или с отключённым суммированием данных. Такие детальные запросы могут долго выполняться и сталкиваться с системными ограничениями.
      • Рекомендация: хотя кажется идеальным иметь максимально подробные данные, подумайте, нужен ли такой уровень детализации для каждого показателя или типа данных. Рассмотрите несколько автоматизаций с разными настройками.
    • При экспорте тренировок на открытом воздухе, таких как велосипед, бег, походы и т. п. с данными маршрута, GPS и связанные показатели здоровья могут создавать большие объёмы данных.
  • Размер данных: Особенно при экспорте через REST API учитывайте, что большие объёмы данных могут вызывать ошибки сервера. Убедитесь, что ваш бэкенд настроен на обработку объёмов данных, возможно, в несколько сотен мегабайт.
  • Частота синхронизации: Добавьте виджет автоматизаций на главный экран, чтобы автоматизации надёжнее работали в фоне (см. Руководство по настройке виджета автоматизаций).

Требования

  • действующий URL, принимающий HTTP POST;
  • учётные данные для аутентификации (если это требуется на вашей стороне);
  • сетевое подключение до вашей конечной точки.

Настройка

Откройте экран Автоматические экспорты в основной навигации, нажмите Новая автоматизация и выберите тип автоматизации REST API.

Имя автоматизации

Введите понятное имя (например, «Мой бэкенд API», «Интеграция с вебхуком»).

Уведомления

Настройте, когда вы хотите получать уведомления:

  • Уведомление при обновлении кэша — уведомление, когда кэшированные данные обновлены
  • Уведомление при каждом запуске — уведомление при каждом выполнении автоматизации

Настройка URL

Укажите полный URL, на который нужно отправлять данные о здоровье: полный адрес с протоколом (http:// или https://).

Примеры URL:

  • https://api.example.com/health-data
  • https://webhook.site/your-unique-id
  • http://localhost:3000/api/health

Примечание: URL должен быть действительным и доступным с устройства. Неверный адрес не даст автоматизации запуститься.

Тайм-аут запроса

Выберите интервал тайм-аута для HTTP-запросов. От этого зависит, как долго приложение будет ждать ответ, прежде чем сочтёт запрос неудачным.

HTTP-заголовки

Добавьте пользовательские HTTP-заголовки для аутентификации или метаданных. Типичные случаи:

  • ключи API: X-API-Key: your-api-key
  • токены авторизации: Authorization: Bearer your-token
  • переопределение типа содержимого: Content-Type: application/json

Чтобы добавить заголовки:

  1. Нажмите Добавить заголовки
  2. Введите ключ заголовка в левом поле
  3. Введите значение заголовка в правом поле
  4. Повторите для дополнительных заголовков

Важно: у каждого ключа заголовка должно быть значение. Пустые заголовки игнорируются.

Настройки типа данных

Тип данных

Выберите, какой тип данных о здоровье экспортировать:

  • Показатели здоровья — шаги, пульс, сон и другие измерения
  • Тренировки — упражнения и фитнес-активности
  • Симптомы — симптомы и состояния здоровья
  • ЭКГ — записи электрокардиограммы
  • Уведомления о пульсе — события высокого/низкого пульса
  • Состояние — настроение и психическое состояние (iOS 18.0+)
  • Цикл — менструальный цикл и репродуктивное здоровье
  • Лекарства — приём лекарств и соблюдение режима (iOS 26.0+)

Настройка показателей здоровья

Если выбраны Показатели здоровья:

Выбор показателей здоровья — укажите, какие метрики включать: все доступные или только выбранные.

Совет: если включать только нужные метрики, обработка быстрее, а объём данных меньше.

Предпочитаемые источники — задайте приоритет источников, когда одну и ту же метрику дают несколько приложений.

Настройка тренировок

Если выбраны Тренировки:

Включать данные маршрута — включите, чтобы добавлять маршруты для тренировок с данными о местоположении.

Включать метрики тренировки — включите, чтобы добавлять метрики, собранные во время тренировки (пульс, калории и т. д.).

Группировка по времени (метрики тренировки) — при использовании версии экспорта 2 и включённых метриках тренировки:

  • Минуты — группировка метрик тренировки по минутам
  • Секунды — группировка метрик тренировки по секундам

Настройки экспорта

Формат экспорта

Выберите формат экспортируемых данных:

  • JSON — подробные структуры с вложенными объектами. Удобно для API, баз данных и приложений, которым нужны структурированные данные. В JSON больше деталей для сложных типов данных, например фазы сна и показатели при фибрилляции предсердий.

  • CSV — табличные данные, которые легко импортировать в таблицы. Удобно для простого анализа или если конечная точка ожидает CSV.

Примечание: заголовок Content-Type выставляется автоматически: application/json для JSON и multipart/form-data для CSV.

Версия экспорта

Выберите версию экспорта. Версионирование позволяет перейти на обновлённый формат в удобном темпе и снижает риск поломок сценариев.

  • Версия 1 — прежний формат; используйте, если существующие сценарии зависят от него
  • Версия 2 — текущий формат с расширенными данными тренировок и более подробными параметрами метаданных

Диапазон дат

Выберите, за какой период экспортировать данные:

  • По умолчанию — синхронизирует данные за полный предыдущий день плюс данные до текущей даты и времени
  • С последней синхронизации — при каждой синхронизации экспортирует все данные с момента последнего запуска экспорта до текущей даты и времени
  • Сегодня — синхронизирует все данные за текущие сутки до текущего момента
  • Вчера — синхронизирует все данные за полные предыдущие сутки
  • Предыдущие 7 дней — синхронизирует данные за полные семь предыдущих дней

Сводка данных

При формате JSON и типе данных «Показатели здоровья» можно включить или выключить сводку.

  • Вкл. — агрегированные сводки
  • Выкл. — по возможности разобранные данные с отдельными точками

Примечание: эта настройка действует только для JSON и показателей здоровья. При CSV или при выборе нескольких метрик данные всегда агрегируются.

Группировка по времени

При формате JSON и включённой сводке данных выберите способ агрегации.

Примечание: CSV всегда агрегирует данные. Агрегация по минутам и секундам сильно увеличивает время обработки и размер данных.

Пакетные запросы и большие полезные нагрузки

При формате JSON включите Пакетные запросы, чтобы отправлять данные в нескольких HTTP-запросах вместо одной большой нагрузки.

  • ВКЛ. — Распределяет данные по нескольким запросам. Используйте, если у конечной точки есть ограничения размера, таймауты больших тел или поэтапная обработка.
  • ВЫКЛ. — Отправляет все данные одним запросом. Подходит для небольших экспортов и простых вебхуков.

Когда включать пакетную отправку:

  • Выбрано много метрик здоровья, длинные диапазоны дат или детальная группировка по времени (минуты/секунды)
  • Сводка данных выключена и вы экспортируете несгруппированные метрики
  • Сервер возвращает ошибки или таймауты для больших тел POST

Примечания:

Тестирование и проверка

Проверка формата данных

Приложение автоматически добавляет в каждый запрос такие заголовки:

  • Content-Type — в зависимости от формата экспорта
  • automation-name — имя автоматизации
  • automation-id — уникальный идентификатор автоматизации
  • automation-aggregation — выбранная группировка по времени
  • automation-period — выбранный диапазон дат
  • session-id — уникальный идентификатор каждого запроса

Устранение неполадок

Частые проблемы

Данные не поступают на конечную точку

  • проверьте, что URL конечной точки верный;
  • убедитесь, что конечная точка принимает POST-запросы;
  • проверьте заголовки аутентификации;
  • смотрите логи конечной точки на входящие запросы;
  • проверьте сетевое подключение

Советы и рекомендации

  1. Автоматическая синхронизация:

    • заряжайте устройство и используйте Трансляцию iPhone на Mac (iPhone Mirroring)
      • при зарядке iOS меньше ограничивает производительность устройства, поэтому данные могут синхронизироваться чаще
      • при трансляции iPhone на Mac устройство ведёт себя как при разблокированном экране: данные о здоровье доступны Health Auto Export для автоматических действий
  2. Производительность:

    • подберите подходящую группировку по времени, чтобы сбалансировать детализацию и размер данных;
    • выбирайте только нужные метрики
  3. Надёжность:

    • задавайте адекватные значения тайм-аута с учётом времени ответа конечной точки;
    • регулярно просматривайте журнал активности
  4. Формат данных:

    • используйте JSON для структурированных данных и API;
    • используйте CSV для простого анализа или работы с таблицами;
    • при больших наборах данных или раздельной обработке рассмотрите пакетные запросы

Просмотр журналов активности

  1. Нажмите Просмотр журналов активности на экране настройки автоматизации.
  2. Просмотрите запуски (сгруппированы, сначала новые) и разверните события в каждом запуске.
  3. Различайте предупреждения (например, медленный запрос данных о здоровье) и ошибки (ошибки HTTP, таймауты или сбои чтения HealthKit)—см. Обзор автоматизаций — Журналы активности.
  4. Успешные REST-загрузки часто показывают сводку с форматом, типом данных, периодом экспорта и диапазоном дат в запуске.
  5. Поделиться (панель инструментов) экспортирует полный диагностический ZIP Журналы событий приложения для поддержки (как Настройки → Дополнительно).
  6. Очистить удаляет только журнал активности этой автоматизации.