All documentation

Destinations

Home Assistant

Send Metrics JSON by webhook or REST.

Format
Metrics JSON
Underneath
An ordinary HTTPS POST
Needs
The phone to reach your HA

Hozz posts Metrics JSON to a webhook or REST API.

Setting it up#

  1. Decide: webhook or REST API#

    Webhooks need no token. The REST API needs a long-lived access token.

  2. For a webhook, add the trigger#

    Create a webhook automation and note its ID. The placeholder is http://homeassistant.local:8123/api/webhook/hozz.

  3. For the REST API, create a token#

    Create a long-lived token. Prefix it with Bearer and one space, then store the full value in the secret field.

  4. Send a test#

    Home Assistant will show the request arriving. The probe contains no Health data.

The webhook trigger#

Home Assistant automation
# configuration.yaml — or an automation created in the UI
automation:
  - alias: Receive Hozz health data
    trigger:
      - platform: webhook
        webhook_id: hozz
        allowed_methods: [POST]
        local_only: true
    action:
      - variables:
          metrics: "{{ trigger.json.data.metrics }}"

Keep local_only: true unless you intend to expose the webhook.

What arrives#

POST body — Metrics JSON
{
  "data": {
    "metrics": [
      {
        "name": "heart_rate",
        "units": "count/min",
        "data": [
          {
            "date": "2026-08-22T21:10:46.500Z",
            "qty": 62.5,
            "units": "count/min",
            "source": "Apple Watch"
          }
        ]
      }
    ],
    "deletions": []
  }
}

Points use stable lowercase snake_case metric names.

See the delivery schema for the full payload shape, including the deletions array.

Coming from Health Auto Export#

Existing automations can use an opt-in compatibility mode. See its mappings and limits.

Telling it is working#

  • Send a test reports the response. Any 2xx accepts.
  • In Home Assistant, a webhook automation's trace shows the payload it received.
  • On the phone, the destination shows delivered once everything staged has been accepted. The other six states are all explained.