30MHz Gateway Cluster API
The gateway-cluster API from 30MHz — 5 operation(s) for gateway-cluster.
The gateway-cluster API from 30MHz — 5 operation(s) for gateway-cluster.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/30mhz-gateway-cluster-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: '2.0'
title: ZENSIE Gateway Cluster API
servers:
- url: https://api.30mhz.com/api
tags:
- name: gateway-cluster
paths:
/gateway-cluster/{gatewayClusterId}/migrate/{gatewayId}:
post:
tags:
- gateway-cluster
summary: Assigns all sensors in given gateway cluster to the given gateway
description: Authentication required for this operation, authenticated user must have admin role.
operationId: assignSensorsOfClusterToGateway
parameters:
- name: gatewayClusterId
in: path
required: true
schema:
type: string
- name: gatewayId
in: path
required: true
schema:
type: string
security:
- Bearer: []
responses:
'200':
description: Sensors assigned to gateway
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Check'
application/zensie-v2+json:
schema:
type: array
items:
$ref: '#/components/schemas/Check'
'403':
description: User is not authorized to perform this operation.
'404':
description: Gateway cluster or gateway does not exist.
x-admin-only: true
/gateway-cluster:
post:
tags:
- gateway-cluster
summary: Create a new gateway cluster
description: Authentication required for this operation, authenticated user have admin role.
operationId: createGatewayCluster
security:
- Bearer: []
responses:
'201':
description: New gateway cluster created
content:
application/json:
schema:
$ref: '#/components/schemas/GatewayCluster'
application/zensie-v2+json:
schema:
$ref: '#/components/schemas/GatewayCluster'
'403':
description: User must be an admin.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewGatewayCluster'
/gateway-cluster/{gatewayClusterId}:
get:
tags:
- gateway-cluster
summary: Return gateway cluster by id
description: Authentication required for this operation.
operationId: getGatewayClusterById
parameters:
- name: gatewayClusterId
in: path
required: true
schema:
type: string
security:
- Bearer: []
responses:
'200':
description: Returns the gateway cluster.
content:
application/json:
schema:
$ref: '#/components/schemas/GatewayCluster'
application/zensie-v2+json:
schema:
$ref: '#/components/schemas/GatewayCluster'
'403':
description: Not enough permissions to perform the operation.
delete:
tags:
- gateway-cluster
summary: Remove a Gateway Cluster
description: Authentication required for this operation, authenticated user must have admin role.
operationId: removeGatewayCluster
parameters:
- name: gatewayClusterId
in: path
required: true
schema:
type: string
- name: permanently
in: query
description: Optional bool to specify the permanent deletion of the gateway cluster.
required: false
schema:
type: boolean
security:
- Bearer: []
responses:
'204':
description: Removal succeeded.
'403':
description: User is not authorized to perform operation, must be an admin.
'404':
description: GatewayCluster not found.
'500':
description: Error - Gateway cluster not removed.
/gateway-cluster/organization/{organizationId}:
get:
tags:
- gateway-cluster
summary: Return gateway clusters for the organization
description: Authentication required for this operation.
operationId: getGatewayClusterByOrganization
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
- name: includeSoftDeleted
in: query
required: false
schema:
type: boolean
security:
- Bearer: []
responses:
'200':
description: Returns all the gateway clusters of the organization.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/GatewayCluster'
application/zensie-v2+json:
schema:
type: array
items:
$ref: '#/components/schemas/GatewayCluster'
'403':
description: Not enough permissions to perform the operation.
/gateway-cluster/with-secrets/{gatewayClusterId}:
get:
tags:
- gateway-cluster
summary: Return gateway cluster with secrets by id
description: Authentication required for this operation.
operationId: getGatewayClusterWithSecretsById
parameters:
- name: gatewayClusterId
in: path
required: true
schema:
type: string
security:
- Bearer: []
responses:
'200':
description: Returns the gateway cluster with secrets by id.
content:
application/json:
schema:
$ref: '#/components/schemas/GatewayClusterWithSecrets'
application/zensie-v2+json:
schema:
$ref: '#/components/schemas/GatewayClusterWithSecrets'
'403':
description: User must be an admin.
x-admin-only: true
components:
schemas:
Notification:
type: object
required:
- notificationId
properties:
action:
type: string
description: Description of the action to take when the notification is triggered.
calculationSettings:
description: The calculation configuration
$ref: '#/components/schemas/CalculationSettings'
checkId:
type: string
description: Identifier of the check.
condition:
type: string
description: Conditional that defines the trigger of this notification
description:
type: string
description: Description of the notification
eventHook:
description: Event hook of the notification
$ref: '#/components/schemas/EventHook'
matchAfter:
type: integer
format: int32
description: Match after attribute
minimum: 0
throttleFor:
type: integer
format: int64
description: The amount of time in milliseconds to throttle notifications
minimum: 0
check:
description: Summary of the check that is linked to this notification
$ref: '#/components/schemas/CheckSummary'
createdBy:
type: string
description: Identifier of the user that created this notification
creationTimestamp:
type: integer
format: int64
description: Timestamp of when the notification was created
matched:
type: boolean
description: Matched attribute
matchedFor:
type: integer
format: int32
description: Matched for attribute
matchedLastNotifiedAt:
type: integer
format: int64
description: When the last matched notification was sent
notificationId:
type: string
description: Identifier of this notification object.
nrMatched:
type: integer
format: int32
description: Number of matches attribute
organizationId:
type: string
description: Identifier of the organization for which this notification is created
resolvedLastNotifiedAt:
type: integer
format: int64
description: When the last resolved notification was sent
structuredConditional:
type: array
description: List of structured conditionals that defines the trigger event of this notification.
items:
$ref: '#/components/schemas/StructuredConditional'
widgetIds:
type: array
description: List of structured conditionals that defines the trigger event of this notification.
uniqueItems: true
items:
type: string
description: Holds the editable properties of a Notification
GatewayCluster:
type: object
properties:
name:
type: string
description: Gateway cluster name
siteId:
type: string
description: The site this gateway cluster belongs to.
gateways:
type: array
items:
$ref: '#/components/schemas/Gateway'
clusterId:
type: string
description: Gateway cluster id.
organizationId:
type: string
locationId:
type: string
description: The site this gateway cluster belongs to, use siteId instead.
description: A cluster of gateways in the same wireless network.
StructuredConditional:
type: object
properties:
aggregationType:
type: string
description: The type of aggregation.
checkFields:
type: array
description: List of fields represented by the check id and field name
items:
$ref: '#/components/schemas/SensorField'
interval:
type: string
description: The time interval to aggregate over.
key:
type: string
description: Key of the structured conditional
operator:
type: string
description: Operator of the conditional
operatorType:
type: string
description: Operator type of the conditional
enum:
- COMPARISON
- LOGICAL
value:
type: string
description: Value of the key given the operator
CheckSummary:
type: object
properties:
calculationSettings:
$ref: '#/components/schemas/CalculationSettings'
checkId:
type: string
collections:
type: array
items:
$ref: '#/components/schemas/CheckCollection'
cultivationHierarchyId:
type: string
decimalsPerField:
type: object
additionalProperties:
type: integer
format: int32
enabled:
type: boolean
locations:
type: array
uniqueItems: true
items:
type: string
maxDecimals:
type: integer
format: int32
name:
type: string
organizationId:
type: string
rangePerJsonKey:
type: object
additionalProperties:
type: array
items:
type: number
format: double
sensorType:
type: string
timezone:
type: string
timezoneOffset:
type: integer
format: int64
units:
type: array
uniqueItems: true
items:
type: string
description: Summary of a check
CheckCollection:
type: object
properties:
collectionId:
type: string
description: Id of the collection
name:
type: string
description: Name of the collection
order:
type: integer
format: int32
description: The position within all the collections
CalculationSettings:
type: object
required:
- inputParams
properties:
calculationId:
type: string
description: Unique identifier for the calculation
inputParams:
type: object
description: A map of the necessary input parameters and their type for performing the calculation
additionalProperties:
type: object
description: Settings used to perform a calculation.
NewGatewayCluster:
type: object
properties:
name:
type: string
description: Gateway cluster name
panId:
type: string
description: Gateway cluster's network id. A Personal Area Network (PAN) is uniquely defined with this id, which is common among all devices of the same network.
region:
type: string
description: Gateway cluster's region. Used to indicate that this cluster is based in a different region with a possible different compliance.
sc:
type: string
description: Gateway cluster's security key. Required to let gateways and sensors communicate securely on the network.
siteId:
type: string
description: The site this gateway cluster belongs to, use siteId instead.
organizationId:
type: string
locationId:
type: string
description: The site this gateway cluster belongs to, use siteId instead.
description: Gateway cluster creation properties with its restrictions.
SensorField:
type: object
properties:
checkId:
type: string
description: The id of the check this field belongs to.
id:
type: string
description: Which field of the sensor to retrieve data for.
unit:
type: string
description: The unit in which to retrieved the values. Defaults to system unit.
EventHook:
type: object
required:
- method
- url
properties:
headers:
type: object
description: Headers of the HTTP request
additionalProperties:
type: object
method:
type: string
description: Method of the HTTP request
payload:
type: object
description: Payload of the HTTP request
additionalProperties:
type: object
url:
type: string
description: Url of the HTTP request
GatewayClusterWithSecrets:
type: object
properties:
name:
type: string
description: Gateway cluster name
siteId:
type: string
description: The site this gateway cluster belongs to.
gateways:
type: array
items:
$ref: '#/components/schemas/Gateway'
clusterId:
type: string
description: Gateway cluster id.
organizationId:
type: string
locationId:
type: string
description: The site this gateway cluster belongs to, use siteId instead.
description: A cluster of gateways in the same wireless network.
Gateway:
type: object
properties:
alarmsChecks:
type: array
description: The alarms checks ids of the gateway.
uniqueItems: true
items:
type: string
fleetManagerDeviceId:
type: string
description: The fleet manager id.
gatewayClusterId:
type: string
description: The gateway cluster id.
gatewayInfoCheckId:
type: string
description: Id of the gateway info check.
isBillable:
type: boolean
description: States if the gateway is billable or not.
name:
type: string
description: Gateway name
organizationId:
type: string
description: The organization of the gateway.
remarks:
type: string
description: The remarks for the gateway.
siteId:
type: string
description: The site of the gateway.
state:
type: string
description: The state of the gateway.
templateId:
type: string
description: Gateway's template id.
gatewayId:
type: string
description: Gateway Id.
macAddress:
type: string
description: The mac address of the gateway.
monitoringCheckId:
type: string
description: Id of the gateway monitoring check.
xbeeAddress:
type: string
description: The address of the xbee.
createdAt:
type: string
description: The date and time a gateway was created.
deletedAt:
type: string
description: The date and time a gateway was deleted.
deletedBy:
type: string
description: User that deleted the gateway.
deployedAt:
type: string
description: The date and time a gateway was deployed.
jsonEnvironmentVariableOnDevice:
type: boolean
description: Indicates if the json environment variable was successfully set on the actual device via the resin api call when creating a gateway
updatedAt:
type: string
description: The date and time a gateway was last updated.
Check:
type: object
required:
- checkId
- enabled
- frequency
- hasNotifications
- healthyThreshold
- locationThreshold
- maxReminders
- method
- name
- notificationIds
- notifications
- organizationId
- recentlyDownAt
- remindEvery
- state
- statusCodes
- timeout
- unhealthyThreshold
- url
properties:
allowRedirects:
type: boolean
description: Whether to follow redirects when a page returns HTTP code 302. Default is false.
calculationId:
type: string
description: The id of the calculation called by the webcheck
collectJson:
type: boolean
description: If the recollection of the JSON object has to be effectuated or not
conditional:
type: string
description: A javascript expression that is applied to the json result and has to evaluate to true for the data source to be UP.
contains:
type: string
description: Verify that the page returned contains this text, otherwise the data source will be reported as DOWN.
containsNot:
type: string
description: Verify that the page returned does NOT contain this text, if it does, the data source will be reported as DOWN.
cookies:
type: string
description: Send these cookies in each request when pinging the data source. You can use this, for example, for adding authentication data.
cron:
type: string
description: Only run this data source in the given schedule. This is written in Unix-like notation. For example, to run it only weekdays 8 to 17, write '* * 8-17 ? * MON-FRI'
data:
type: string
description: Payload to send, usually for POST or PUT methods
decimalsPerField:
type: object
description: The number of decimals used for each field of the data source.
additionalProperties:
type: integer
format: int32
description:
type: string
description: Brief description that elaborates on the name
email:
type: string
description: Email address.
enabled:
type: boolean
description: Whether the data source is enabled.
frequency:
type: integer
format: int32
description: The frequency with which the data source is pinged, in seconds.
gatewayId:
type: string
description: Identifier of the gateway the data source belongs to.
headers:
type: string
description: Send these HTTP headers in each request when pinging the data source. You can use this, for example, for adding authentication data.
healthyThreshold:
type: integer
format: int32
description: How many consecutive successful responses indicate that the data source is up.
locationThreshold:
type: integer
format: int64
description: How many locations indicate the data source is up/down.
locations:
type: array
description: From which locations to ping the data source from.
uniqueItems: true
items:
type: string
maxDecimals:
type: integer
format: int32
description: Max decimals for fields of the data source.
maxReminders:
type: integer
format: int32
description: The maximum number of times you want to be notified if DOWN.
method:
type: string
description: HTTP method (get/post/put/delete) to user for pinging the data source
name:
type: string
description: Displayable name.
organizationId:
type: string
description: Identifier of the organization this data source belongs to.
params:
type: string
description: Send these HTTP parameters in each request when pinging the data source.
remindEvery:
type: integer
format: int32
description: Every how many seconds to send another notification if data source is still DOWN. (See also Number of reminders).
sensorType:
type: string
description: The sensor type.
siteId:
type: string
description: Identifier of the site it belongs to, together with the organizationId this is unique.
status:
type: string
description: The status of the data source, e.g. ACTIVE, DEACTIVATED or PAUSED.
enum:
- ACTIVE
- DEACTIVATED
- PAUSED
statusCodes:
type: array
description: What HTTP status code are expected when pinging the data source. If the received HTTP status is not in this list, the data source will be reported as DOWN.
uniqueItems: true
items:
type: integer
format: int32
maxItems: 2147483647
minItems: 1
stream:
type: boolean
description: Whether the stream is enabled for the response validation
tags:
type: array
description: The tags associated with the data source.
uniqueItems: true
items:
type: string
timeout:
type: integer
format: int32
description: How long we wait for the data source to respond before we consider it down.
timezone:
type: string
description: An area which observes a uniform standard time.
unhealthyThreshold:
type: integer
format: int32
description: How many consecutive failed responses indicate that the data source is down.
units:
type: array
description: The units associated with the sensor data source.
uniqueItems: true
items:
type: string
url:
type: string
description: The URL of the data source.
verify:
type: boolean
description: Whether SSL verification is enabled.
zoneId:
type: string
description: Identifier of the zone within a site where the data source belongs.
rangePerJsonKey:
type: object
description: Min/max ranges for each json key of the data source.
additionalProperties:
type: array
items:
type: number
format: double
timezoneOffset:
type: integer
format: int64
description: Offset of the timezone in minutes.
batteryStatus:
type: string
description: The battery status warnings or errors associated with this data source. Expected values are OK, WARNING and CRITICAL.
checkId:
type: string
description: Identifier of the data source
createdAt:
type: string
description: Timestamp of when it was created.
dataSourceCoordinateHistory:
type: array
description: A collection of all positions of this data source.
items:
$ref: '#/components/schemas/DataSourceCoordinates'
dataSourceCoordinates:
description: A set of numbers that represent the current position of a data source
$ref: '#/components/schemas/DataSourceCoordinates'
hasNotifications:
type: boolean
description: Does the data source have any notifications associated with it
notificationIds:
type: array
description: Ids of the notifications for this check
items:
type: string
notifications:
type: array
description: The notifications set for this sensor.
items:
$ref: '#/components/schemas/Notification'
recentlyDownAt:
type: number
format: double
description: Last moment when the data source was DOWN, as a Unix Timestamp
state:
type: string
description: 'The current state of the data source: UP or DOWN.'
owner:
type: string
description: Email address.
description: A check
DataSourceCoordinates:
type: object
required:
- dataSourceId
- sinceDate
properties:
coordinateX:
type: number
format: double
description: X coordinate in space
coordinateY:
type: number
format: double
description: Y coordinate in space
sinceDate:
type: string
description: UTC ISO 8601 timestamp since when, e.g 2024-11-12T15:00:00Z.
dataSourceId:
type: string
description: Identifier of the data source
geoJson:
type: object
description: GeoJson definition.
additionalProperties:
type: object
zoneName:
type: string
description: Name of the zone
zoneUuid:
type: string
description: Unique identifier of the zone
description: Coordinates of a data source since a given timestamp.
securitySchemes:
Bearer:
description: ''
type: apiKey
name: Authorization
in: header