as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Ring

Device Online Notifications

Device online notifications are sent when a Ring device comes online and becomes available for interaction. These real-time notifications enable partners to know when devices are reachable for streaming, configuration, or other operations.

Webhook Delivery

Ring delivers all webhook notifications with an HMAC-SHA256 signature in the X-Signature header. Partners must verify this signature before processing the payload. See Notifications for signature verification details.

Webhook Payload

{
  "meta": {
    "version": "1.1",
    "time": "2026-02-13T23:32:51.234231900Z",
    "request_id": "ab058f6f-8edd-4e92-9796-956ddc4d739d",
    "account_id": "ava1.ring.account.XXXYYY"
  },
  "data": {
    "id": "<device_id>_device_online_<timestamp>",
    "type": "device_online",
    "attributes": {
      "source": "<device_id>",
      "source_type": "devices",
      "timestamp": 1771025567000
    },
    "relationships": {
      "devices": {
        "links": {
          "self": "/v1/devices/<device_id>"
        }
      }
    }
  }
}

When Device Online Occurs

Device online notifications are triggered when:

  • A device reconnects to the network after being offline
  • A device powers on after being powered off
  • A device restores connectivity after a network interruption

Processing Device Online Events

def handle_device_online(payload):
    device_id = payload['data']['attributes']['source']
    account_id = payload['meta']['account_id']
    online_timestamp = payload['data']['attributes']['timestamp']
    
    update_device_status(device_id, account_id, 'online', online_timestamp)
    resume_device_operations(device_id)
    
    return {'status': 'processed'}

Best Practices

  1. Verify HMAC signature: Always verify the X-Signature header before processing
  2. Use account_id: Associate events with the correct Ring user via meta.account_id
  3. Update status tracking: Maintain device online/offline status in your system
  4. Resume operations: Re-enable any features that were paused while the device was offline
  5. Handle duplicates: Implement idempotency using request_id or event id
  6. Respond quickly: Return HTTP 200 within 5 seconds to avoid timeout