{"openapi":"3.1.0","info":{"title":"Helium Console (BYOK) API","version":"0.1.0","description":"Helium Console (BYOK) lets an AI assistant read your own Helium Console data through the Helium Console API with a key you supply (Helium Console API key (Account, Profile; shown once and confirmed by email)). Reads and device changes: 5 tools (list_devices, get_device, get_device_events, list_labels, set_device_active). The BYOK key travels with each request, is used for that one call only and...\n\nMost operations are read-only. These change the state of a device and run only with confirm = \"yes\" after the user approved that change: set_device_active. The same tools are available over MCP (streamable HTTP) at https://byok-helium-console.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-helium-console/docs"},"termsOfService":"https://connectorbay.com/byok-helium-console/terms"},"servers":[{"url":"https://byok-helium-console.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-helium-console/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_devices":{"post":{"operationId":"list_devices","summary":"List the organization's LoRaWAN devices with name, DevEUI, AppEUI, active flag, last connection, packet count, data cred","description":"List the organization's LoRaWAN devices with name, DevEUI, AppEUI, active flag, last connection, packet count, data credit usage and labels. Device keys are not returned. Use for \"Which Helium devices are active and when did they last connect\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dev_eui":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"description":"Only the device with this DevEUI (16 hex characters).","title":"Dev Eui"},"app_eui":{"anyOf":[{"maxLength":16,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices with this AppEUI (16 hex characters).","title":"App Eui"}},"title":"list_devicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_device":{"post":{"operationId":"get_device","summary":"Get one device by UUID: name, DevEUI, AppEUI, last connection, packet count, data credit usage and labels. Use for \"Show","description":"Get one device by UUID: name, DevEUI, AppEUI, last connection, packet count, data credit usage and labels. Use for \"Show Helium device e3d7f0e2-6f4a-4a40-9d0a-1d4f2a3b5c6d\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"device_id":{"description":"Device UUID from list_devices, for example 'e3d7f0e2-6f4a-4a40-9d0a-1d4f2a3b5c6d'.","maxLength":60,"title":"Device Id","type":"string"}},"required":["device_id"],"title":"get_deviceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_device_events":{"post":{"operationId":"get_device_events","summary":"Get the last 100 events of a device (uplinks, joins, integration requests) with category, description and time. Use sub_","description":"Get the last 100 events of a device (uplinks, joins, integration requests) with category, description and time. Use sub_category to filter. Use for \"What events did Helium device e3d7f0e2-6f4a-4a40-9d0a-1d4f2a3b5c6d report recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"device_id":{"description":"Device UUID from list_devices, for example 'e3d7f0e2-6f4a-4a40-9d0a-1d4f2a3b5c6d'.","maxLength":60,"title":"Device Id","type":"string"},"sub_category":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this sub-category, for example uplink_integration_req (last 10 integration events).","title":"Sub Category"}},"required":["device_id"],"title":"get_device_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_labels":{"post":{"operationId":"list_labels","summary":"List the organization's labels (groups of devices) with id and name. Use for \"Which labels do I have in Helium Console\".","description":"List the organization's labels (groups of devices) with id and name. Use for \"Which labels do I have in Helium Console\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_labelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/set_device_active":{"post":{"operationId":"set_device_active","summary":"Switch one device's active flag in Console. Inactive devices are not served by the network (their uplinks are dropped), ","description":"Switch one device's active flag in Console. Inactive devices are not served by the network (their uplinks are dropped), so this changes the device's service state; set active back to true to restore it. The device itself is not deleted or reset. Use for \"Deactivate Helium device e3d7f0e2-6f4a-4a40-9d0a-1d4f2a3b5c6d\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"device_id":{"description":"Device UUID from list_devices, for example 'e3d7f0e2-6f4a-4a40-9d0a-1d4f2a3b5c6d'.","maxLength":60,"title":"Device Id","type":"string"},"active":{"description":"True to activate the device, false to deactivate it.","title":"Active","type":"boolean"},"confirm":{"const":"yes","description":"Must be exactly yes, only after the user approved this change in chat.","title":"Confirm","type":"string"}},"required":["device_id","active","confirm"],"title":"set_device_activeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":false,"x-changes-device-state":true,"x-requires-confirmation":"confirm"}}}}