Hubble Network · AsyncAPI Specification
Hubble Network Packet Webhooks
Version
View Spec
View on GitHub
CompanyIoTBluetoothSatelliteConnectivityAsset TrackingDevicesNetworksTelemetryLogisticsAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-04'
method: searched
source: https://hubble.com/docs/guides/cloud-integration/get-data + openapi/hubble-network-platform-openapi.yml#packet-webhook-example
spec_type: Webhooks
asyncapi_published: false
asyncapi_search:
result: none
checked:
- https://hubble.com/asyncapi.yaml
- https://hubble.com/docs/asyncapi.yaml
- https://hubble.com/docs/llms.txt (full docs index)
- https://github.com/HubbleNetwork (all 23 public repos)
note: 'Hubble publishes no AsyncAPI document. The event surface is documented in prose plus one OpenAPI
operation (packet-webhook-example) that models the inbound request a consumer must implement. Nothing
was fabricated: this file is a webhook catalog, not a generated AsyncAPI.'
transport: HTTPS POST push to a customer-registered endpoint
delivery:
guarantee: at-least-once
ordering: not guaranteed
ack: 2xx within 10 seconds
retries: exponential backoff for up to 3 hours
duplicates: possible — consumers must be idempotent
filtering: none — all packets for all devices in the organization are delivered
authentication:
header: HTTP-X-HUBBLE-TOKEN
type: shared secret
issued: A confidential unique string generated per webhook endpoint at creation (components.schemas.webhookSecret).
signature: null
note: A static shared secret in a header — there is no HMAC body signature and no timestamp/replay window,
so a receiver cannot verify payload integrity, only sender knowledge of the token. Rotation requires
update-webhook-endpoint.
batching:
field: max_batch_size
default: 100
min: 10
max: 1000
cadence: every several seconds, or as soon as max_batch_size is reached
actual_size: between 1 and max_batch_size
limits:
endpoints_per_organization: 2
note: Two simultaneous endpoints are allowed specifically to support migration between receivers.
events:
- name: packet.batch
channel: customer webhook URL
operation: receive
criticality: high
description: A batch of decrypted Bluetooth packets received for the organization across all registered
devices.
payload_schema: components.schemas.packetBatch
media_type: application/json
modeled_by: openapi/hubble-network-platform-openapi.yml#packet-webhook-example
fields:
- field: packets[].device.id
description: Device UUID.
- field: packets[].device.payload
description: Decrypted payload, Base64 encoded.
- field: packets[].device.rssi
description: Received signal strength.
- field: packets[].device.timestamp
description: Unix timestamp of the packet.
- field: packets[].device.sequence_number
description: Device sequence number — use with id + timestamp to de-duplicate.
- field: packets[].device.counter
description: Time-based counter associated with the packet.
- field: packets[].device.name
description: Device name.
- field: packets[].device.tags
description: Custom and platform tags on the device.
- field: packets[].location
description: Latitude, longitude, altitude, accuracy and timestamp of the detection.
- field: packets[].network_type
description: TERRESTRIAL or SATELLITE.
- field: packets[].gateway
description: Gateway id and BLE service id of the receiving gateway; only present on self-provided
packets.
management_operations:
- operationId: create-webhook-endpoint
method: post
path: /v1/org/{org_id}/webhooks
scope: write-webhooks
- operationId: list-registered-webhooks
method: get
path: /v1/org/{org_id}/webhooks
scope: read-webhooks
- operationId: update-webhook-endpoint
method: patch
path: /v1/org/{org_id}/webhooks/{webhook_id}
scope: write-webhooks
- operationId: delete-webhook-endpoint
method: delete
path: /v1/org/{org_id}/webhooks/{webhook_id}
scope: write-webhooks
- operationId: test-webhook-endpoint
method: post
path: /v1/org/{org_id}/webhooks/{webhook_id}/test
scope: write-webhooks
description: Sends an example packet batch to the configured URL in the live request format.
observability:
operationId: get-webhook-metrics
path: /v1/org/{org_id}/webhook_metrics
description: Total webhook requests, success rate and time-interval breakdowns.
polling_alternative:
operationId: retrieve-organization-packets
path: /v1/org/{org_id}/packets
description: Cursor-paginated pull alternative to webhooks, Continuation-Token header, up to 1,000 packets
per page, 30-day lookback.
x-evidence:
- url: https://hubble.com/docs/guides/cloud-integration/get-data
http_status: 200
fetched: '2026-08-04'