sondahub

Connect from Sonda

Protocol by protocol: what to paste where. Each API's page has its own addresses; these are the shapes. No keys, no accounts, nothing to set up. Sonda itself is at lockflare.com/sonda.

Writes

Send them like you would to any API. They are validated, run through the real logic and answered as a real server would — 201 with the record and a Location header, 200 with the changed record, 422 naming every wrong field — and then forgotten: sondahub has no database. Every such answer carries _note in the body and X-Sondahub-Write: simulated in the headers, so a check in Sonda can tell.

REST

Import → From a URL, paste an OpenAPI address. Sonda builds the project: a folder per collection, a request per operation, example bodies from the schema. Fetch the spec again from the same place to update the project when the hub changes.

APIOpenAPI
Storehttps://api.sondahub.com/v1/store/openapi.json
Fleethttps://api.sondahub.com/v1/fleet/openapi.json
Bankhttps://api.sondahub.com/v1/bank/openapi.json
Socialhttps://api.sondahub.com/v1/social/openapi.json
Helpdeskhttps://api.sondahub.com/v1/helpdesk/openapi.json
Flightshttps://api.sondahub.com/v1/flights/openapi.json

Every list request takes page, limit, sort, q, fields, expand and one filter per field with the _ne _gt _gte _lt _lte _like _in _null suffixes; details on each API's page.

GraphQL

A request in GraphQL mode with the endpoint https://api.sondahub.com/v1/{api}/graphql. Introspection answers the usual query, so the schema loads and completions work. Mutations are simulated like every write, with the note in extensions. Subscriptions are not offered over HTTP; the streams below carry the same events.

WebSocket

A WebSocket request to wss://api.sondahub.com/v1/{api}/ws, with ?topics=a,b to hear only some topics. The server says hello, then pushes the API's activity as JSON messages, one tick a second; send {"type":"subscribe","topics":[…]}, {"type":"ping"}, or anything else to have it echoed. The stream is generated for your connection alone. For testing the pane itself, wss://api.sondahub.com/v1/utils/ws echoes every frame, text or binary.

Server-Sent Events

An SSE request to https://api.sondahub.com/v1/{api}/events, same topics parameter. Each message arrives as an event named after its type or topic with an increasing id; a reconnect with Last-Event-ID continues the numbering. A comment line keeps the connection warm every fifteen seconds. For a plain clock, https://api.sondahub.com/v1/utils/sse?count=10&interval=1000.

MQTT

In the MQTT pane: broker wss://api.sondahub.com/mqtt, version 5 or 3.1.1, any username and password. Subscribe to fleet/+/telemetry and readings arrive every two seconds; publish to fleet/{serial}/commands and the device answers on fleet/{serial}/ack. Retained messages, wildcards, QoS 1 and topic aliases all behave. Two things to know: the broker only speaks WebSocket — there is no port 1883 — and it serves each connection its own world, so a message you publish reaches your own subscriptions, not another client's.

Authentication

The utilities hold one endpoint per scheme, checked for real, and a small OAuth 2 / OIDC server. The credentials are printed at the top of that page.

Not Sonda

Everything is plain HTTP, so curl, a browser, or any client works the same way. The examples on every page run from the page itself. And the data is just files: every collection as JSON.