API Reference
The MQCentral API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Getting Started
To begin using the API, you'll need a Client ID and Client Secret. Follow the steps in our Authentication & API Access guide to make your first request.
https://api.machineq.net
Authentication
The MQCentral API uses bearer tokens to authenticate requests. To get a bearer token, you need to use your account's Client ID and Client Secret to authenticate through the "get token" API. A successful response will include your bearer token, which you must include with every API request you make.
Your client credentials carry many privileges, so be sure to keep them secure! Do not share your secret Client ID and Client Secret in publicly accessible areas such as GitHub, client-side code, and so forth.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
curl https://api.machineq.net/v1/endpoint \
-H "Authorization: Bearer eyJhbGciSR5cC...kpXVCIstpZeGYeVg" \
-H "Content-Type: application/json"
Errors
MQCentral uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Code in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a parameter key was spelled wrong, etc.). Codes in the 5xx range indicate an error with MQCentral's servers (these are rare).
Some 4xx errors that could be handled programmatically include an error code that briefly explains the error reported.
| 200 | OK | Everything worked as expected. |
| 400 | Bad Request | The request was unacceptable, often due to missing a required parameter. |
| 401 | Unauthorized | No valid Client Credential provided. |
| 402 | Request Failed | The parameters were valid but the request failed. |
| 403 | Forbidden | The bearer token doesn’t have permissions to perform the request. |
| 404 | Not Found | The requested resource doesn’t exist. |
| 409 | Conflict | The request conflicts with another request (perhaps due to using the same idempotent key). |
| 424 | External Dependency Failed | The request couldn’t be completed due to a failure in a dependency external to MQCentral. |
| 429 | Too Many Requests | Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. |
| 500, 502, 503, 504 | Server Errors | Something went wrong on MQCentral’s end. (These are rare.) |
Account
User and subscriber account information for the currently authenticated user.
- GET/v1/account
- PUT/v1/account/passwordReset
- PATCH/v1/account/patchUserInfo
- GET/v1/account/permissions
- PUT/v1/account/updateUserInfo
The Account object
Attributes
Profile and role information for the authenticated user.
Organization and address information for the subscriber associated with the authenticated user.
{
"UserInfo": {
"Id": "string",
"Email": "string",
"Username": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"Roles": [
"string"
]
},
"SubscriberInfo": {
"Id": "string",
"Name": "string",
"Address": "string",
"Address2": "string",
"City": "string",
"State": "string",
"Country": "string",
"PostalCode": "string"
}
}
Retrieves the current user's account info
Retrieves user and subscriber information for the currently authenticated user.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/account'
Changes the current user's password
Changes the password for the currently authenticated user. Requires the current password for verification. The new password must be at least 12 characters long and include at least 3 of the following 4 character types: lowercase letter, uppercase letter, number, or special character (such as !@#$%^&*). The new password cannot match any password in the user's password history.
Body Parameters
Current password for the account. Required for verification before the password can be changed.
Replacement password for the account. Must be at least 12 characters long and include at least 3 of the following 4 character types: lowercase letter, uppercase letter, number, or special character (such as !@#$%^&*). Cannot match any password in the user's password history.
Returns
{
"CurrentPassword": "string",
"NewPassword": "string"
}
curl -X PUT 'https://api.machineq.net/v1/account/passwordReset'
Partially updates the current user's info
Updates only the fields provided in the request body for the currently authenticated user. Omitted fields remain unchanged.
Body Parameters
Email address for the user, in RFC 5322 format. Optional; omit to leave the current value unchanged.
First (given) name of the user. Optional; omit to leave the current value unchanged.
Last (family) name of the user. Optional; omit to leave the current value unchanged.
Contact phone number for the user. Optional; omit to leave the current value unchanged.
Returns
{
"Email": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string"
}
curl -X PATCH 'https://api.machineq.net/v1/account/patchUserInfo'
Retrieves the current user's permissions
Retrieves the full permission set for the currently authenticated user.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/account/permissions'
Replaces the current user's info
Replaces all user information fields for the currently authenticated user. All required fields must be provided; omitting a field resets it to its default value.
Body Parameters
Email address for the user, in RFC 5322 format. Required.
First (given) name of the user. Required.
Last (family) name of the user. Required.
Contact phone number for the user. Optional; omit or send an empty string to clear the value.
Returns
{
"Email": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string"
}
curl -X PUT 'https://api.machineq.net/v1/account/updateUserInfo'
Application
A client credential application used to authenticate and access the MQcentral API.
- GET/v1/applications
- POST/v1/applications
- GET/v1/applications/{Id}
- PUT/v1/applications/{Id}
- PATCH/v1/applications/{Id}
- DELETE/v1/applications/{Id}
- POST/v1/applications/{Id}/refreshToken
The Application object
Attributes
Unique identifier of the application.
Human-readable name of the application.
UUID (client ID) used to authenticate this application when requesting access tokens.
List of role IDs that define the access permissions granted to this application.
Unique identifier of the subscriber that owns this application.
{
"Id": "string",
"Name": "string",
"UUID": "string",
"Roles": [
"string"
],
"SubscriberId": "string"
}
Lists all applications
Retrieves all applications belonging to the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/applications'
Creates a new application
Creates a new application and returns its credentials. The client secret is only returned once and cannot be retrieved again.
Body Parameters
Human-readable name of the application. Required. Must be at least 1 character.
List of role IDs that control what the application can access. Optional. Omit to create an application with no roles.
Returns
{
"Name": "string",
"Roles": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v1/applications'
Retrieves an application by ID
Retrieves a single application by its unique identifier.
Path Parameters
Unique identifier of the application.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/applications/{Id}'
Replaces an application by ID
Replaces all fields of an existing application by ID. The UUID (client ID) cannot be changed.
Path Parameters
Unique identifier of the application. Required.
Body Parameters
Human-readable name of the application. Required. Must be at least 1 character.
List of role IDs that control what the application can access. Replaces the existing list of roles.
Returns
{
"Name": "string",
"Roles": [
"string"
]
}
curl -X PUT 'https://api.machineq.net/v1/applications/{Id}'
Partially updates an application by ID
Partially updates an existing application by ID. Only provided fields are modified. The UUID (client ID) cannot be changed.
Path Parameters
Unique identifier of the application. Required.
Body Parameters
Human-readable name of the application. Optional. Omit to leave unchanged.
List of role IDs that control what the application can access. Optional. Replaces the existing list of roles when provided.
Returns
{
"Name": "string",
"Roles": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/applications/{Id}'
Deletes an application by ID
Permanently deletes an application by ID. This action is irreversible.
Path Parameters
Unique identifier of the application.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/applications/{Id}'
Refreshes the client secret for an application by ID
Generates a new client secret for the application identified by ID. The previous client secret is permanently invalidated and any integrations using it will stop working.
Path Parameters
Unique identifier of the application.
Body Parameters
No parameters.
Returns
curl -X POST 'https://api.machineq.net/v1/applications/{Id}/refreshToken'
DecoderType
A decoder type defining the method used to decode device payloads.
- GET/v1/decodertypes
- GET/v1/decodertypes/{Id}
The DecoderType object
Attributes
Unique identifier of the decoder type.
Human-readable name of the decoder type. Required. Must be at least 1 character.
Enum value identifying the internal payload decoding algorithm associated with this decoder type.
{
"Id": "string",
"Name": "string",
"PayloadDecoder": "string"
}
Lists all decoder types
Retrieves all available decoder types.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/decodertypes'
Retrieves a decoder type by ID
Retrieves a single decoder type by its unique identifier.
Path Parameters
Unique identifier of the decoder type.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/decodertypes/{Id}'
Device
A device with its configuration, connectivity parameters, and health statistics.
- GET/v1/devices
- POST/v1/devices
- GET/v1/devices/health
- GET/v1/devices/healthcount
- GET/v1/devices/{DevEUI}
- PUT/v1/devices/{DevEUI}
- PATCH/v1/devices/{DevEUI}
- DELETE/v1/devices/{DevEUI}
- POST/v1/devices/{DevEUI}/message
- GET/v1/devices/{DevEUI}/payloads
The Device object
Attributes
Human-readable name of the device.
Unique identifier of the device. 16-character hexadecimal string.
Activation method for the device. Allowed values: ABP, OTAA.
Identifier of the service profile associated with this device.
Identifier of the device profile associated with this device.
Identifier of the decoder type used to decode payloads from this device.
Identifier of the output profile used to route payloads to external servers.
Whether data storage is suppressed. True means data is not stored; false means data is stored for future processing.
Timestamp when the device was created in RFC 3339 format.
Timestamp when the device was last updated in RFC 3339 format.
Identifier of the user who last updated the device.
Timestamp of the last uplink received from the device in RFC 3339 format.
Health and connectivity statistics for the device.
Enum value identifying the internal payload decoding algorithm for this device.
{
"Name": "string",
"DevEUI": "string",
"ActivationType": "string",
"ServiceProfile": "string",
"DeviceProfile": "string",
"DecoderType": "string",
"OutputProfile": "string",
"PrivateData": true,
"CreatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedBy": "string",
"LastUplink": "2006-01-02T15:04:05.000Z",
"Statistics": {
"HealthState": "string",
"SpreadingFactor": 0,
"AverageRSSI": 0.0,
"AverageESP": 0.0,
"AverageSNR": 0.0,
"PacketErrorRate": 0.0,
"BatteryLevel": 0,
"AverageWeeklyPackets": 0
},
"PayloadDecoder": "string"
}
Lists all devices
Retrieves all devices associated with the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/devices'
Creates a new device
Creates a new device. Requires the IDs for Service Profile and Device Profile. Decoder Type and Output Profile are optional. ActivationType must be either OTAA or ABP.
Body Parameters
Human-readable name of the device. Required. Must be at least 1 character.
Unique identifier of the device. Required. Must be a 16-character hexadecimal string.
Device address. Required for ABP activation; optional for OTAA. Must be an 8-character hexadecimal string.
Network session key. Required for ABP activation; omit for OTAA. Must be a 32-character hexadecimal string.
Activation method for the device. Required. Allowed values: ABP, OTAA.
Application EUI. Required for OTAA activation; omit for ABP. Must be a 16-character hexadecimal string.
Application key. Required for OTAA activation; omit for ABP. For LoRaWAN 1.0 devices, only the application key is needed. For LoRaWAN 1.1 devices, both the application key and network key are required. Must be a 32-character hexadecimal string.
Application session key. Required for ABP activation; omit for OTAA. Must be a 32-character hexadecimal string.
Identifier of the service profile to associate with this device. Required. Retrieve available values from GET /v1/serviceprofiles.
Identifier of the device profile to associate with this device. Required. Retrieve available values from GET /v1/deviceprofiles.
Identifier of the decoder type used to decode payloads from this device. Optional. Retrieve available values from GET /v1/decodertypes.
Identifier of the output profile used to route payloads to external servers. Optional. Retrieve available values from GET /v1/outputprofiles.
Whether to suppress data storage. True means data is not stored; false means data is stored for future processing. Default: false.
Network key. Required for OTAA activation with LoRaWAN 1.1 devices only. Must be a 32-character hexadecimal string.
Returns
{
"Name": "string",
"DevEUI": "string",
"DevAddr": "string",
"NetworkSkey": "string",
"ActivationType": "string",
"ApplicationEUI": "string",
"ApplicationKey": "string",
"ApplicationSKey": "string",
"ServiceProfile": "string",
"DeviceProfile": "string",
"DecoderType": "string",
"OutputProfile": "string",
"PrivateData": true,
"NetworkKey": "string"
}
curl -X POST 'https://api.machineq.net/v1/devices'
Lists all devices grouped by health status
Retrieves all devices grouped by health status: good, fair, poor, and offline.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/devices/health'
Retrieves device counts grouped by health status
Retrieves the count of devices grouped by health status: good, fair, poor, and offline.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/devices/healthcount'
Retrieves a device by DevEUI
Retrieves a single device by DevEUI, including its connectivity parameters, output profile, and latest health statistics.
Path Parameters
Unique identifier of the device. Required. Must be a 16-character hexadecimal string.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/devices/{DevEUI}'
Replaces a device by DevEUI
Replaces all fields of an existing device by DevEUI. Security keys cannot be changed.
Path Parameters
Unique identifier of the device. Required. Must be a 16-character hexadecimal string.
Body Parameters
Human-readable name of the device. Required. Must be at least 1 character.
Identifier of the service profile associated with this device. Required.
Identifier of the device profile associated with this device. Required.
Identifier of the decoder type used to decode payloads from this device. Optional.
Identifier of the output profile used to route payloads to external servers. Optional.
Whether to suppress data storage. True means data is not stored; false means data is stored for future processing.
Returns
{
"Name": "string",
"ServiceProfile": "string",
"DeviceProfile": "string",
"DecoderType": "string",
"OutputProfile": "string",
"PrivateData": true
}
curl -X PUT 'https://api.machineq.net/v1/devices/{DevEUI}'
Partially updates a device by DevEUI
Partially updates an existing device by DevEUI. Only provided fields are modified. Security keys cannot be changed.
Path Parameters
Unique identifier of the device. Required. Must be a 16-character hexadecimal string.
Body Parameters
Human-readable name of the device. Optional. Omit to leave unchanged.
Identifier of the service profile associated with this device. Optional. Omit to leave unchanged.
Identifier of the device profile associated with this device. Optional. Omit to leave unchanged.
Identifier of the decoder type used to decode payloads from this device. Optional. Omit to leave unchanged.
Identifier of the output profile used to route payloads to external servers. Optional. Omit to leave unchanged.
Whether to suppress data storage. True means data is not stored; false means data is stored for future processing.
Whether to remove the output profile association. True means the output profile reference is removed; false leaves it unchanged.
Returns
{
"Name": "string",
"ServiceProfile": "string",
"DeviceProfile": "string",
"DecoderType": "string",
"OutputProfile": "string",
"PrivateData": true,
"RemoveOutputProfile": true
}
curl -X PATCH 'https://api.machineq.net/v1/devices/{DevEUI}'
Deletes a device by DevEUI
Permanently deletes a device by DevEUI. This action is irreversible.
Path Parameters
Unique identifier of the device. Required. Must be a 16-character hexadecimal string.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/devices/{DevEUI}'
Sends a downstream message to a device by DevEUI
Sends a downstream message to a device by DevEUI. Either Payload or ApplicationPayload must be provided.
Path Parameters
Unique identifier of the target device. Required. Must be a 16-character hexadecimal string.
Body Parameters
Raw hexadecimal payload to send to the device (e.g., "a1b2c3"). Either Payload or ApplicationPayload must be provided.
LoRaWAN port number for the message. Required when Payload is provided; optional otherwise. Allowed range: 1–223 or 225.
Whether the device must acknowledge receipt. True means the message requires acknowledgment; false means it does not.
Whether to clear all pending messages before sending this one. True means the queue is flushed first; false means existing messages are preserved.
LoRaWAN application payload for the downlink message. Device-specific JSON object whose structure varies based on the receiving device type. Consult the device documentation for the correct payload format. Either Payload or ApplicationPayload must be provided.
Returns
{
"Payload": "string",
"TargetPort": "string",
"Confirm": true,
"FlushQueue": true,
"ApplicationPayload": {}
}
curl -X POST 'https://api.machineq.net/v1/devices/{DevEUI}/message'
Lists device payloads by DevEUI
Retrieves payload records for a device by DevEUI. Supports filtering by start time and end time in RFC 3339 format. Example: /v1/devices/0100100020005001/payloads?StartTime=2012-11-09T21:03:59.000Z.
Path Parameters
Unique identifier of the device. Required. Must be a 16-character hexadecimal string.
Query Parameters
Filters payloads to those received at or after this timestamp in RFC 3339 format. Optional.
Filters payloads to those received at or before this timestamp in RFC 3339 format. Optional.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/devices/{DevEUI}/payloads'
DeviceGroup
A logical collection of devices.
- GET/v1/groups/devices
- POST/v1/groups/devices
- GET/v1/groups/devices/{Id}
- PUT/v1/groups/devices/{Id}
- PATCH/v1/groups/devices/{Id}
- DELETE/v1/groups/devices/{Id}
- GET/v1/groups/devices/{Id}/recent
The DeviceGroup object
Attributes
Unique identifier of the device group.
Human-readable name of the device group.
List of device EUIs belonging to this group.
List of full device objects belonging to this group.
{
"Id": "string",
"Name": "string",
"DeviceList": [
"string"
],
"Devices": [
{
"Name": "string",
"DevEUI": "string",
"ActivationType": "string",
"ServiceProfile": "string",
"DeviceProfile": "string",
"DecoderType": "string",
"OutputProfile": "string",
"PrivateData": true,
"CreatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedBy": "string",
"LastUplink": "2006-01-02T15:04:05.000Z",
"Statistics": {
"HealthState": "string",
"SpreadingFactor": 0,
"AverageRSSI": 0.0,
"AverageESP": 0.0,
"AverageSNR": 0.0,
"PacketErrorRate": 0.0,
"BatteryLevel": 0,
"AverageWeeklyPackets": 0
},
"PayloadDecoder": "string"
}
]
}
Lists all device groups
Retrieves all device groups, including the devices associated with each group.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/groups/devices'
Creates a new device group
Creates a new device group with an optional list of device EUIs.
Body Parameters
Human-readable name of the device group. Required. Must be at least 1 character.
List of device EUIs to include in this group. Optional.
Returns
{
"Name": "string",
"DeviceList": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v1/groups/devices'
Retrieves a device group by ID
Retrieves a single device group by ID, including associated device statistics.
Path Parameters
Unique identifier of the device group.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/groups/devices/{Id}'
Replaces a device group by ID
Replaces all fields of an existing device group by ID.
Path Parameters
Unique identifier of the device group. Required.
Body Parameters
Human-readable name of the device group. Required. Must be at least 1 character.
List of device EUIs to include in this group. Replaces the existing list.
Returns
{
"Name": "string",
"DeviceList": [
"string"
]
}
curl -X PUT 'https://api.machineq.net/v1/groups/devices/{Id}'
Partially updates a device group by ID
Partially updates an existing device group by ID. Only provided fields are modified.
Path Parameters
Unique identifier of the device group. Required.
Body Parameters
Human-readable name of the device group. Optional. Omit to leave unchanged.
List of device EUIs to include in this group. Optional. Replaces the existing list when provided.
Returns
{
"Name": "string",
"DeviceList": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/groups/devices/{Id}'
Deletes a device group by ID
Permanently deletes a device group by ID. This action is irreversible. Devices in the group are not deleted.
Path Parameters
Unique identifier of the device group.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/groups/devices/{Id}'
Lists devices with recent matching payloads by group ID
Retrieves devices in a group that sent a specific payload within the specified time range.
Path Parameters
Unique identifier of the device group. Required.
Query Parameters
Hexadecimal payload to search for (e.g., "a1b2c3"). Optional.
Filters results to those at or after this timestamp in RFC 3339 format. Optional.
Filters results to those at or before this timestamp in RFC 3339 format. Optional.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/groups/devices/{Id}/recent'
DeviceProfile
A configuration template on the network server that defines a device's technical capabilities and operating parameters.
- GET/v1/deviceprofiles
- PATCH/v1/deviceprofiles/{Id}/devices
The DeviceProfile object
Attributes
Unique identifier of the device profile.
Human-readable name of the device profile.
{
"Id": "string",
"Name": "string"
}
Lists all device profiles
Retrieves all device profiles available for device provisioning.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/deviceprofiles'
Associates devices with a device profile by ID
Associates the specified devices with a device profile by ID. Returns individual success or failure results for each device.
Path Parameters
Unique identifier of the device profile. Required.
Body Parameters
List of device EUIs to associate with this device profile.
Returns
{
"Devices": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/deviceprofiles/{Id}/devices'
MulticastGroup
A logical collection of devices configured to receive multicast transmissions simultaneously.
- GET/v0/multicastgroups
- POST/v0/multicastgroups
- GET/v0/multicastgroups/{MulticastDevEUI}
- PUT/v0/multicastgroups/{MulticastDevEUI}
- DELETE/v0/multicastgroups/{MulticastDevEUI}
- POST/v0/multicastgroups/{MulticastDevEUI}/devices/associate
- POST/v0/multicastgroups/{MulticastDevEUI}/devices/deassociate
- GET/v0/multicastgroups/{MulticastDevEUI}/gateways
- POST/v0/multicastgroups/{MulticastDevEUI}/gateways/associate
- POST/v0/multicastgroups/{MulticastDevEUI}/gateways/deassociate
The MulticastGroup object
Attributes
Human-readable name of the multicast group.
Unique DevEUI of the multicast group. 16-character hexadecimal string.
Device address of the multicast group. 8-character hexadecimal string.
LoRaWAN class type of the multicast group. Allowed values: B, C.
Data rate index for the multicast group transmissions.
Transmission frequency for the multicast group in hertz (Hz).
Ping slot period for Class B multicast groups. Allowed values: 1, 2, 4, 8, 16, 32, 64, 128.
{
"Name": "string",
"MulticastDevEUI": "string",
"MulticastDevAddr": "string",
"GroupType": "string",
"DataRate": 0,
"Frequency": 0,
"PingSlotPeriod": 0
}
Lists all multicast groups
Retrieves all multicast groups associated with the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v0/multicastgroups'
Creates a new multicast group
Creates a new multicast group with the specified configuration.
Body Parameters
Human-readable name of the multicast group. Required. Must be at least 1 character.
Unique DevEUI of the multicast group. Required. Must be a 16-character hexadecimal string.
Device address of the multicast group. Required. Must be an 8-character hexadecimal string.
LoRaWAN class type of the multicast group. Required. Allowed values: B, C.
Network session key for the multicast group. Required. Must be a 32-character hexadecimal string.
Application session key for the multicast group. Required. Must be a 32-character hexadecimal string.
Data rate index for the multicast group transmissions.
Transmission frequency for the multicast group in hertz (Hz).
Ping slot period for the multicast group. Required for Class B; ignored for Class C. Allowed values: 1, 2, 4, 8, 16, 32, 64, 128.
Returns
{
"Name": "string",
"MulticastDevEUI": "string",
"MulticastDevAddr": "string",
"GroupType": "string",
"MulticastNwkSKey": "string",
"MulticastAppSKey": "string",
"DataRate": 0,
"Frequency": 0,
"PingSlotPeriod": 0
}
curl -X POST 'https://api.machineq.net/v0/multicastgroups'
Retrieves a multicast group by MulticastDevEUI
Retrieves a single multicast group by its MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}'
Replaces a multicast group by MulticastDevEUI
Replaces all mutable fields of an existing multicast group by MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
Human-readable name of the multicast group. Optional. Omit to leave unchanged.
Data rate index for the multicast group transmissions. Optional.
Transmission frequency for the multicast group in hertz (Hz). Optional.
Returns
{
"Name": "string",
"DataRate": 0,
"Frequency": 0
}
curl -X PUT 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}'
Deletes a multicast group by MulticastDevEUI
Permanently deletes a multicast group by MulticastDevEUI. This action is irreversible.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}'
Associates devices with a multicast group by MulticastDevEUI
Associates one or more devices with a multicast group by MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
List of device identifiers to associate with the multicast group. Maximum 10 items.
Returns
{
"Devices": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}/devices/associate'
Removes devices from a multicast group by MulticastDevEUI
Removes one or more devices from a multicast group by MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
List of device EUIs to remove from the multicast group. Maximum 10 items.
Returns
{
"Devices": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}/devices/deassociate'
Lists gateways associated with a multicast group by MulticastDevEUI
Retrieves all gateways associated with a multicast group by MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}/gateways'
Associates gateways with a multicast group by MulticastDevEUI
Associates one or more gateways with a multicast group by MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
List of gateway node IDs to associate with the multicast group. Maximum 10 items.
Returns
{
"Gateways": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}/gateways/associate'
Removes gateways from a multicast group by MulticastDevEUI
Removes one or more gateways from a multicast group by MulticastDevEUI.
Path Parameters
Unique DevEUI of the multicast group. Required.
Body Parameters
List of gateway node IDs to remove from the multicast group. Maximum 10 items.
Returns
{
"Gateways": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}/gateways/deassociate'
Gateway
A networking device that bridges devices and a central network server.
- GET/v1/gateways
- POST/v1/gateways
- GET/v1/gateways/connection
- GET/v1/gateways/health
- GET/v1/gateways/{Id}
- PUT/v1/gateways/{Id}
- PATCH/v1/gateways/{Id}
- DELETE/v1/gateways/{Id}
- GET/v1/gateways/{Id}/devices
- GET/v1/gateways/{Id}/statistics
- GET/v1/gateways/{NodeID}/events
The Gateway object
Attributes
Unique identifier of the gateway.
Identifier of the gateway profile, or model, associated with this gateway.
MAC address of the gateway.
Node ID of the gateway. 16-character hexadecimal string.
Human-readable name of the gateway.
Gain of the attached antenna.
Installation location type. Allowed values: INDOOR, OUTDOOR.
Whether GPS is enabled on the gateway. True means coordinates are determined by GPS; false means coordinates are manually set.
Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters).
Whether cellular backhaul is enabled. True means the gateway uses a cellular connection.
IMEI of the cellular modem for backhaul connectivity.
ICCID of the SIM card for cellular backhaul.
Timestamp when the gateway was created in RFC 3339 format.
Timestamp when the gateway was last updated in RFC 3339 format.
Identifier of the user who last updated the gateway.
Manufacturer of the gateway. Reserved for future use.
Model designation reported by the gateway.
Health, connectivity, and performance statistics for the gateway. Null if the gateway has never connected to the network.
Identifier of the RF region associated with this gateway.
{
"Id": "string",
"GatewayProfile": "string",
"MacAddress": "string",
"NodeId": "string",
"Name": "string",
"AntennaGain": "string",
"LocationType": "string",
"GPSEnabled": true,
"Coordinates": {
"X": "string",
"Y": "string",
"Z": "string"
},
"CellularEnabled": true,
"IMEI": "string",
"ICCID": "string",
"CreatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedBy": "string",
"Manufacturer": "string",
"Model": "string",
"Statistics": {
"ConnectionState": "string",
"HealthState": "string",
"GpsSyncStatus": "string",
"TimeSyncStatus": "string",
"LastReportingTime": "2006-01-02T15:04:05.000Z",
"LastUplinkTime": "2006-01-02T15:04:05.000Z",
"LastDownlinkTime": "2006-01-02T15:04:05.000Z",
"LocationType": "string",
"RfRegionID": "string",
"IsRX2Activated": true,
"IsmBand": "string",
"LastGeoLatitude": 0.0,
"LastGeoLongitude": 0.0,
"LastGeoAltitude": 0.0,
"SoftwareVersion": "string",
"UplinkPacketPerHour": 0,
"DownlinkPacketPerHour": 0,
"LastSystemReboot": "2006-01-02T15:04:05.000Z",
"InterfaceStatistics": [
{
"Name": "string",
"State": "string",
"Type": "string"
}
],
"CPUPercent": 0,
"FreeMemKB": 0,
"CellRSSI": 0,
"CellProvider": "string",
"WiFiSSID": "string",
"RadioError": "string",
"TxPower": 0,
"VSWR": 0,
"LastGeoValid": true,
"SecureBackhaulEnabled": true,
"SecureBackhaulActive": true,
"Model": "string",
"LrrCNX": true
},
"RfRegion": "string"
}
Lists all gateways
Retrieves all gateways associated with the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways'
Creates a new gateway
Creates a new gateway with the specified configuration.
Body Parameters
Identifier of the gateway profile, or model, to associate with this gateway. Required.
MAC address of the gateway. Required. Six colon-separated pairs of hexadecimal digits (e.g., a1:b2:c3:d4:e5:aa).
Node ID of the gateway. Required. Must be a 16-character hexadecimal string.
Human-readable name of the gateway. Required. Must be at least 1 character.
Gain of the attached antenna. Required.
Installation location type. Required. Allowed values: INDOOR, OUTDOOR.
Whether GPS is enabled on the gateway. True means coordinates are determined by GPS and Coordinates should be omitted. Default: false.
Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters). Required if GPSEnabled is false.
Whether cellular backhaul is enabled. True means IMEI and ICCID may optionally be provided. Default: false.
IMEI of the cellular modem. Optional when CellularEnabled is true. 15-digit number; multiple entries separated by commas (e.g., "123451234512345,123451234512345").
ICCID of the SIM card. Optional when CellularEnabled is true. Must be a 20-digit number.
Returns
{
"GatewayProfile": "string",
"MacAddress": "string",
"NodeId": "string",
"Name": "string",
"AntennaGain": "string",
"LocationType": "string",
"GPSEnabled": true,
"Coordinates": {
"X": "string",
"Y": "string",
"Z": "string"
},
"CellularEnabled": true,
"IMEI": "string",
"ICCID": "string"
}
curl -X POST 'https://api.machineq.net/v1/gateways'
Lists all gateways grouped by connection status
Retrieves all gateways grouped by connection status: never connected, disconnected, and connected.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways/connection'
Lists all gateways grouped by health status
Retrieves all gateways grouped by health status: initializing, connect error, RF error, and active.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways/health'
Retrieves a gateway by ID or Node ID
Retrieves a single gateway by ID or Node ID, including its configuration and statistics.
Path Parameters
Unique identifier or Node ID of the gateway.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways/{Id}'
Replaces a gateway by ID or Node ID
Replaces all mutable fields of an existing gateway by ID or Node ID.
Path Parameters
Unique identifier or Node ID of the gateway. Required.
Body Parameters
Human-readable name of the gateway. Required. Must be at least 1 character.
Gain of the attached antenna. Required.
Installation location type. Required. Allowed values: INDOOR, OUTDOOR.
Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters). Required if GPSEnabled is false.
Identifier of the gateway profile, or model, to associate with this gateway. Required.
Whether GPS is enabled on the gateway. True means coordinates are determined by GPS and Coordinates should be omitted.
Whether cellular backhaul is enabled. True means IMEI and ICCID may optionally be provided.
IMEI of the cellular modem. Optional when CellularEnabled is true. 15-digit number; multiple entries separated by commas.
ICCID of the SIM card. Optional when CellularEnabled is true. Must be a 20-digit number.
Returns
{
"Name": "string",
"AntennaGain": "string",
"LocationType": "string",
"Coordinates": {
"X": "string",
"Y": "string",
"Z": "string"
},
"GatewayProfile": "string",
"GPSEnabled": true,
"CellularEnabled": true,
"IMEI": "string",
"ICCID": "string"
}
curl -X PUT 'https://api.machineq.net/v1/gateways/{Id}'
Partially updates a gateway by ID or Node ID
Partially updates an existing gateway by ID or Node ID. Only provided fields are modified.
Path Parameters
Unique identifier or Node ID of the gateway. Required.
Body Parameters
Human-readable name of the gateway. Optional. Omit to leave unchanged.
Gain of the attached antenna. Optional. Omit to leave unchanged.
Installation location type. Optional. Allowed values: INDOOR, OUTDOOR. Omit to leave unchanged.
Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters). Required if GPSEnabled is false.
Identifier of the gateway profile, or model, to associate with this gateway. Optional. Omit to leave unchanged.
Whether GPS is enabled on the gateway. True means coordinates are determined by GPS and Coordinates should be omitted.
Whether cellular backhaul is enabled. True means IMEI and ICCID may optionally be provided.
IMEI of the cellular modem. Optional when CellularEnabled is true. 15-digit number; multiple entries separated by commas.
ICCID of the SIM card. Optional when CellularEnabled is true. Must be a 20-digit number.
Identifier of the RF region to associate with this gateway. Optional. Retrieve available values from GET /v1/rfregions.
Returns
{
"Name": "string",
"AntennaGain": "string",
"LocationType": "string",
"Coordinates": {
"X": "string",
"Y": "string",
"Z": "string"
},
"GatewayProfile": "string",
"GPSEnabled": true,
"CellularEnabled": true,
"IMEI": "string",
"ICCID": "string",
"RfRegion": "string"
}
curl -X PATCH 'https://api.machineq.net/v1/gateways/{Id}'
Deletes a gateway by ID or Node ID
Permanently deletes a gateway by ID or Node ID. This action is irreversible.
Path Parameters
Unique identifier or Node ID of the gateway.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/gateways/{Id}'
Lists devices seen by a gateway by ID or Node ID
Retrieves devices that communicated through this gateway. Supports filtering by number of days.
Path Parameters
Unique identifier or Node ID of the gateway.
Query Parameters
Number of days to look back for device activity. Optional.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways/{Id}/devices'
Retrieves gateway statistics by ID or Node ID
Retrieves statistics for a gateway by ID or Node ID.
Path Parameters
Unique identifier or Node ID of the gateway.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways/{Id}/statistics'
Lists gateway events by Node ID
Retrieves events for a gateway by Node ID within the specified time range. Defaults to the last 30 days if no start and end time are provided.
Path Parameters
Unique Node ID of the gateway. Required. Must be a 16-character hexadecimal string.
Query Parameters
Filters events to those at or after this timestamp in RFC 3339 format. Optional. Defaults to 30 days ago.
Filters events to those at or before this timestamp in RFC 3339 format. Optional. Defaults to now.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gateways/{NodeID}/events'
GatewayGroup
A logical collection of gateways.
- GET/v1/groups/gateways
- POST/v1/groups/gateways
- GET/v1/groups/gateways/{Id}
- PUT/v1/groups/gateways/{Id}
- PATCH/v1/groups/gateways/{Id}
- DELETE/v1/groups/gateways/{Id}
The GatewayGroup object
Attributes
Unique identifier of the gateway group.
Human-readable name of the gateway group.
List of gateway identifiers belonging to this group.
List of full gateway objects belonging to this group.
{
"Id": "string",
"Name": "string",
"GatewayList": [
"string"
],
"Gateways": [
{
"Id": "string",
"GatewayProfile": "string",
"MacAddress": "string",
"NodeId": "string",
"Name": "string",
"AntennaGain": "string",
"LocationType": "string",
"GPSEnabled": true,
"Coordinates": {
"X": "string",
"Y": "string",
"Z": "string"
},
"CellularEnabled": true,
"IMEI": "string",
"ICCID": "string",
"CreatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedAt": "2006-01-02T15:04:05.000Z",
"UpdatedBy": "string",
"Manufacturer": "string",
"Model": "string",
"Statistics": {
"ConnectionState": "string",
"HealthState": "string",
"GpsSyncStatus": "string",
"TimeSyncStatus": "string",
"LastReportingTime": "2006-01-02T15:04:05.000Z",
"LastUplinkTime": "2006-01-02T15:04:05.000Z",
"LastDownlinkTime": "2006-01-02T15:04:05.000Z",
"LocationType": "string",
"RfRegionID": "string",
"IsRX2Activated": true,
"IsmBand": "string",
"LastGeoLatitude": 0.0,
"LastGeoLongitude": 0.0,
"LastGeoAltitude": 0.0,
"SoftwareVersion": "string",
"UplinkPacketPerHour": 0,
"DownlinkPacketPerHour": 0,
"LastSystemReboot": "2006-01-02T15:04:05.000Z",
"InterfaceStatistics": [
{
"Name": "string",
"State": "string",
"Type": "string"
}
],
"CPUPercent": 0,
"FreeMemKB": 0,
"CellRSSI": 0,
"CellProvider": "string",
"WiFiSSID": "string",
"RadioError": "string",
"TxPower": 0,
"VSWR": 0,
"LastGeoValid": true,
"SecureBackhaulEnabled": true,
"SecureBackhaulActive": true,
"Model": "string",
"LrrCNX": true
},
"RfRegion": "string"
}
]
}
Lists all gateway groups
Retrieves all gateway groups, including the gateway IDs in each group.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/groups/gateways'
Creates a new gateway group
Creates a new gateway group with an optional list of gateway IDs.
Body Parameters
Human-readable name of the gateway group. Required. Must be at least 1 character.
List of gateway identifiers to include in this group. Optional.
Returns
{
"Name": "string",
"GatewayList": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v1/groups/gateways'
Retrieves a gateway group by ID
Retrieves a single gateway group by ID, including associated gateway statistics.
Path Parameters
Unique identifier of the gateway group.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/groups/gateways/{Id}'
Replaces a gateway group by ID
Replaces all fields of an existing gateway group by ID.
Path Parameters
Unique identifier of the gateway group. Required.
Body Parameters
Human-readable name of the gateway group. Required. Must be at least 1 character.
List of gateway identifiers to include in this group. Replaces the existing list.
Returns
{
"Name": "string",
"GatewayList": [
"string"
]
}
curl -X PUT 'https://api.machineq.net/v1/groups/gateways/{Id}'
Partially updates a gateway group by ID
Partially updates an existing gateway group by ID. Only provided fields are modified.
Path Parameters
Unique identifier of the gateway group. Required.
Body Parameters
Human-readable name of the gateway group. Optional. Omit to leave unchanged.
List of gateway identifiers to include in this group. Optional. Replaces the existing list when provided.
Returns
{
"Name": "string",
"GatewayList": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/groups/gateways/{Id}'
Deletes a gateway group by ID
Permanently deletes a gateway group by ID. This action is irreversible. Gateways in the group are not deleted.
Path Parameters
Unique identifier of the gateway group.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/groups/gateways/{Id}'
GatewayProfile
A configuration template on the network server that defines the operational parameters, capabilities, and settings of a gateway model.
- GET/v1/gatewayprofiles
The GatewayProfile object
Attributes
Unique identifier of the gateway profile.
Human-readable name of the gateway profile.
Detailed description of the gateway profile. Required. Must be at least 1 character.
{
"Id": "string",
"Name": "string",
"Description": "string"
}
Lists all gateway profiles
Retrieves all gateway profiles, or models, available for gateway provisioning.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/gatewayprofiles'
Logs
A recorded event in the lifecycle of a device, capturing data transmissions and operational activities between the device and the network.
- GET/v1/logs
The Logs object
Attributes
Time the log entry was recorded in RFC 3339 format.
Device EUI associated with this log entry. 16-character hexadecimal string.
Device address assigned during activation. 8-character hexadecimal string.
LoRaWAN FPort value indicating the application port number used for this frame.
LoRaWAN frame counter value for this transmission.
Numeric code representing the LoRaWAN message type.
Human-readable label for the LoRaWAN message type.
Raw application payload encoded as a hexadecimal string.
Message Integrity Code (MIC) encoded as a hexadecimal string.
Received Signal Strength Indicator (RSSI) reported by the primary gateway in decibel-milliwatts (dBm).
Signal-to-Noise Ratio (SNR) reported by the primary gateway in decibels (dB).
Equivalent Signal Power (ESP) reported by the primary gateway in decibel-milliwatts (dBm).
LoRa spreading factor used for the transmission.
Time on air for the transmission in seconds.
Sub-band used for the transmission.
Radio channel used for the transmission.
Deprecated. Primary gateway ID that received the transmission. Use GatewayList instead.
Latitude of the primary gateway in decimal degrees.
Longitude of the primary gateway in decimal degrees.
Number of gateways that received this transmission.
List of gateways that received this transmission, with signal quality details for each.
Estimated latitude of the device in decimal degrees. Empty if location is unavailable.
Estimated longitude of the device in decimal degrees. Empty if location is unavailable.
Estimated accuracy radius of the device location in meters. Empty if location is unavailable.
Raw MAC commands included in the frame as a hexadecimal string. Empty if no MAC commands are present.
List of human-readable decoded MAC command strings. Empty if no MAC commands are present.
Adaptive Data Rate (ADR) bit value from the frame header. A value of 1 means ADR is enabled; 0 means ADR is disabled.
ADR acknowledgment request bit value. Indicates whether the device is requesting an ADR acknowledgment from the network.
Indicates whether an acknowledgment was requested for this frame.
Acknowledgment bit value from the frame header. Indicates whether this frame acknowledges a previously received frame.
Frame pending bit value. Indicates whether additional data is pending from the network server for the device.
Indicates whether the packet was marked as late by the network server.
Device nonce value used during the join procedure. Only present for join-request messages.
Join EUI (AppEUI) used during the join procedure. Only present for join-request messages. 16-character hexadecimal string.
Whether the primary gateway is owned by a different subscriber. True means the gateway belongs to another subscriber; false or omitted means the gateway belongs to the requesting subscriber.
Subscriber ID of the primary gateway owner. Only present when the gateway is owned by a different subscriber.
Node ID of the primary gateway that received this transmission.
Decoded application payload from the uplink message. Devices using a LoRa-compliant payload decoder return a 'data' object with the decoded payload, a 'warnings' array with any decoding warnings, and an 'errors' array if decoding fails (when present, 'data' and 'warnings' are omitted). Devices not using a LoRa-compliant decoder return a device-specific structure with no standard top-level fields. Successful decoding example: {"data": {"battery": 100, "temperature": 26.8}}. Failed decoding example: {"errors": ["Invalid payload format"]}.
Whether this log entry represents a multicast downlink transmission. True means the downlink was sent to a multicast group; omitted for uplink entries or unicast downlinks.
Whether the gateway transmitted this downlink over the air. True means the gateway transmitted successfully; false means the transmission failed. Omitted for uplink entries and join accepts.
Per-window detail strings describing the gateway transmission outcome (for example "RX1: LRC selected RX2" or "RX2: duty cycle constraint detected by LRR"). Empty when the network server provides no detail or the entry is not a data downlink.
{
"Timestamp": "2006-01-02T15:04:05.000Z",
"DevEUI": "string",
"DevAddr": "string",
"Fport": "string",
"FCnt": "string",
"MessageType": "string",
"MessageTypeText": "string",
"PayloadHex": "string",
"MICHex": "string",
"PrimaryGatewayRSSI": "string",
"PrimaryGatewaySNR": "string",
"PrimaryGatewayESP": "string",
"SpreadingFactor": "string",
"Airtime": "string",
"SubBand": "string",
"Channel": "string",
"GatewayID": "string",
"GatewayLatitide": "string",
"GatewayLongitude": "string",
"GatewayCount": "string",
"GatewayList": [
{
"Gateway": "string",
"RSSI": "string",
"SNR": "string",
"ESP": "string",
"Time": "string",
"Unowned": true,
"SubscriberID": "string",
"GatewayNodeID": "string"
}
],
"DeviceLatitude": "string",
"DeviceLongitude": "string",
"DeviceLocationRadius": "string",
"MacCommands": "string",
"DecodedMacCommands": [
"string"
],
"ADRbit": "string",
"ADRAckReq": "string",
"AckRequested": "string",
"ACKbit": "string",
"FPending": "string",
"Late": "string",
"DevNonce": "string",
"JoinEUI": "string",
"GatewayUnowned": true,
"GatewaySubscriberID": "string",
"GatewayNodeID": "string",
"PayloadDecoded": {},
"Multicast": true,
"GatewayTxSuccess": true,
"GatewayTxDetails": [
"string"
]
}
Lists log entries
Retrieves log entries for the authenticated account. Supports filtering by DevEUI, gateway ID, time range, frame type, and pagination. Returns up to 100 entries per page.
Query Parameters
Filters logs by device EUI. Optional. Must be a 16-character hexadecimal string.
Filters logs by gateway node ID. Optional.
Filters logs to those at or after this timestamp in RFC 3339 format. Optional.
Filters logs to those at or before this timestamp in RFC 3339 format. Optional.
Page number of results to retrieve. Each page contains up to 100 entries. Optional.
Filters by transmission direction. Allowed values: UPSTREAM, DOWNSTREAM. Optional.
Filters by LoRaWAN message type. Allowed values: MAC, MACDATA, DATA, NONE. Optional.
Filters by whether packets were marked as late. Allowed values: LATEFALSE, LATETRUE. Optional.
Filters by activation message type. Allowed values: JOINREQUEST, JOINACCEPT. Optional.
Filters by whether the message contains an acknowledgment. Allowed values: ACKFALSE, ACKTRUE. Optional.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/logs'
OutputProfile
A configuration for device payload delivery that specifies destination endpoints and protocols. Supports webhooks (REST), MQTT, Azure IoT Hub (AMQP), and AWS IoT Core.
- GET/v1/outputprofiles
- POST/v1/outputprofiles
- GET/v1/outputprofiles/{Id}
- PUT/v1/outputprofiles/{Id}
- PATCH/v1/outputprofiles/{Id}
- DELETE/v1/outputprofiles/{Id}
- PUT/v1/outputprofiles/{Id}/devices
- PATCH/v1/outputprofiles/{Id}/devices
The OutputProfile object
Attributes
Unique identifier of the output profile.
Human-readable name of the output profile.
List of MQTT destination configurations.
List of REST (webhook) destination configurations.
List of Azure IoT Hub destination configurations.
List of AWS IoT Core destination configurations.
{
"Id": "string",
"Name": "string",
"MqttParams": [
{
"Host": "string",
"Username": "string",
"Password": "string",
"Topic": "string",
"SSL": true,
"ClientId": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"RestParams": [
{
"URL": "string",
"TokenType": "string",
"TokenValue": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AzureParams": [
{
"Host": "string",
"SharedAccessPolicyName": "string",
"SharedAccessKey": "string",
"ApiVersion": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AWSParams": [
{
"Endpoint": "string",
"x509Certificate": "string",
"PrivateKey": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
]
}
Lists all output profiles
Retrieves all output profiles associated with the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/outputprofiles'
Creates a new output profile
Creates a new output profile with the specified destination configuration.
Body Parameters
Unique identifier of the output profile. Optional. Auto-generated if omitted.
Human-readable name of the output profile. Required. Must be at least 1 character.
List of MQTT destination configurations. Optional.
List of REST (webhook) destination configurations. Optional.
List of Azure IoT Hub destination configurations. Optional.
List of AWS IoT Core destination configurations. Optional.
Returns
{
"Id": "string",
"Name": "string",
"MqttParams": [
{
"Host": "string",
"Username": "string",
"Password": "string",
"Topic": "string",
"SSL": true,
"ClientId": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"RestParams": [
{
"URL": "string",
"TokenType": "string",
"TokenValue": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AzureParams": [
{
"Host": "string",
"SharedAccessPolicyName": "string",
"SharedAccessKey": "string",
"ApiVersion": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AWSParams": [
{
"Endpoint": "string",
"x509Certificate": "string",
"PrivateKey": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
]
}
curl -X POST 'https://api.machineq.net/v1/outputprofiles'
Retrieves an output profile by ID
Retrieves a single output profile by ID.
Path Parameters
Unique identifier of the output profile.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/outputprofiles/{Id}'
Replaces an output profile by ID
Replaces all fields of an existing output profile by ID.
Path Parameters
Unique identifier of the output profile. Required.
Body Parameters
Human-readable name of the output profile. Required. Must be at least 1 character.
List of MQTT destination configurations. Replaces existing MQTT destinations.
List of REST (webhook) destination configurations. Replaces existing REST destinations.
List of Azure IoT Hub destination configurations. Replaces existing Azure destinations.
List of AWS IoT Core destination configurations. Replaces existing AWS destinations.
Returns
{
"Name": "string",
"MqttParams": [
{
"Host": "string",
"Username": "string",
"Password": "string",
"Topic": "string",
"SSL": true,
"ClientId": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"RestParams": [
{
"URL": "string",
"TokenType": "string",
"TokenValue": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AzureParams": [
{
"Host": "string",
"SharedAccessPolicyName": "string",
"SharedAccessKey": "string",
"ApiVersion": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AWSParams": [
{
"Endpoint": "string",
"x509Certificate": "string",
"PrivateKey": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
]
}
curl -X PUT 'https://api.machineq.net/v1/outputprofiles/{Id}'
Partially updates an output profile by ID
Partially updates an existing output profile by ID. Only provided fields are modified.
Path Parameters
Unique identifier of the output profile. Required.
Body Parameters
Human-readable name of the output profile. Optional. Omit to leave unchanged.
List of MQTT destination configurations. Optional. Replaces existing MQTT destinations when provided.
List of REST (webhook) destination configurations. Optional. Replaces existing REST destinations when provided.
List of Azure IoT Hub destination configurations. Optional. Replaces existing Azure destinations when provided.
List of AWS IoT Core destination configurations. Optional. Replaces existing AWS destinations when provided.
Returns
{
"Name": "string",
"MqttParams": [
{
"Host": "string",
"Username": "string",
"Password": "string",
"Topic": "string",
"SSL": true,
"ClientId": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"RestParams": [
{
"URL": "string",
"TokenType": "string",
"TokenValue": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AzureParams": [
{
"Host": "string",
"SharedAccessPolicyName": "string",
"SharedAccessKey": "string",
"ApiVersion": "string",
"OutputFormat": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
],
"AWSParams": [
{
"Endpoint": "string",
"x509Certificate": "string",
"PrivateKey": "string",
"DestinationId": "string",
"Active": true,
"Environment": "string"
}
]
}
curl -X PATCH 'https://api.machineq.net/v1/outputprofiles/{Id}'
Deletes an output profile by ID
Permanently deletes an output profile by ID. This action is irreversible.
Path Parameters
Unique identifier of the output profile.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/outputprofiles/{Id}'
Replaces all devices on an output profile by ID
Replaces the full list of devices associated with an output profile by ID. All previously associated devices are removed and replaced with the provided list.
Path Parameters
Unique identifier of the output profile. Required.
Body Parameters
List of devices to associate with this output profile. All listed devices have their output profile updated to this one.
Returns
{
"Devices": [
"string"
]
}
curl -X PUT 'https://api.machineq.net/v1/outputprofiles/{Id}/devices'
Associates devices with an output profile by ID
Associates the specified devices with an output profile by ID. Returns individual success or failure results for each device.
Path Parameters
Unique identifier of the output profile. Required.
Body Parameters
List of devices to associate with this output profile. All listed devices have their output profile updated to this one.
Returns
{
"Devices": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/outputprofiles/{Id}/devices'
RFRegion
A predefined set of frequency bands, technical parameters, and regulatory rules governing device and gateway communication in a geographic area.
- GET/v1/rfregions
The RFRegion object
Attributes
Unique identifier of the RF region.
Human-readable name of the RF region.
List of gateway model identifiers compatible with this RF region.
{
"Id": "string",
"Name": "string",
"GatewayModels": [
"string"
]
}
Lists all RF regions
Retrieves all RF regions available for gateway provisioning.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/rfregions'
Role
A set of CRUD permissions that a user or application has for interacting with devices, users, and gateways.
- GET/v1/roles
- POST/v1/roles
- GET/v1/roles/{Id}
- PUT/v1/roles/{Id}
- PATCH/v1/roles/{Id}
- DELETE/v1/roles/{Id}
The Role object
Attributes
Unique identifier of the role.
Human-readable name of the role.
CRUD permissions for device resources.
CRUD permissions for user resources.
CRUD permissions for gateway resources.
List of user identifiers assigned to this role.
List of application identifiers assigned to this role.
{
"Id": "string",
"Name": "string",
"Device": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"User": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Gateway": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Users": [
"string"
],
"Applications": [
"string"
]
}
Lists all roles
Retrieves all roles associated with the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/roles'
Creates a new role
Creates a new role with the specified permissions.
Body Parameters
Human-readable name of the role. Required. Must be at least 1 character.
CRUD permissions for device resources. Optional.
CRUD permissions for user resources. Optional.
CRUD permissions for gateway resources. Optional.
List of user identifiers to assign to this role. Optional.
List of application identifiers to assign to this role. Optional.
Returns
{
"Name": "string",
"Device": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"User": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Gateway": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Users": [
"string"
],
"Applications": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v1/roles'
Retrieves a role by ID
Retrieves a single role by ID, including its permissions and assigned users and applications.
Path Parameters
Unique identifier of the role.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/roles/{Id}'
Replaces a role by ID
Replaces all fields of an existing role by ID.
Path Parameters
Unique identifier of the role. Required.
Body Parameters
Human-readable name of the role. Required. Must be at least 1 character.
CRUD permissions for device resources.
CRUD permissions for user resources.
CRUD permissions for gateway resources.
List of user identifiers to assign to this role. Replaces the existing list.
List of application identifiers to assign to this role. Replaces the existing list.
Returns
{
"Name": "string",
"Device": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"User": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Gateway": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Users": [
"string"
],
"Applications": [
"string"
]
}
curl -X PUT 'https://api.machineq.net/v1/roles/{Id}'
Partially updates a role by ID
Partially updates an existing role by ID. Only provided fields are modified.
Path Parameters
Unique identifier of the role. Required.
Body Parameters
Human-readable name of the role. Optional. Omit to leave unchanged.
CRUD permissions for device resources. Optional. Omit to leave unchanged.
CRUD permissions for user resources. Optional. Omit to leave unchanged.
CRUD permissions for gateway resources. Optional. Omit to leave unchanged.
List of user identifiers to assign to this role. Optional. Replaces the existing list when provided.
List of application identifiers to assign to this role. Optional. Replaces the existing list when provided.
Returns
{
"Name": "string",
"Device": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"User": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Gateway": {
"Create": true,
"Read": true,
"Update": true,
"Delete": true
},
"Users": [
"string"
],
"Applications": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/roles/{Id}'
Deletes a role by ID
Permanently deletes a role by ID. This action is irreversible.
Path Parameters
Unique identifier of the role.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/roles/{Id}'
ServiceProfile
A set of connectivity parameters that govern how a device communicates with a gateway, including uplink and downlink frame settings, network routing, and adaptive data rate (ADR) configuration.
- GET/v1/serviceprofiles
The ServiceProfile object
Attributes
Unique identifier of the service profile.
Human-readable name of the service profile.
Brief description of the service profile's purpose and configuration.
{
"Id": "string",
"Name": "string",
"Description": "string"
}
Lists all service profiles
Retrieves all service profiles available for device provisioning. Each service profile defines the connectivity parameters for a device.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/serviceprofiles'
Users
An account holder in the system with identifying information, assigned roles, and subscriber association.
- GET/v1/users
- POST/v1/users
- GET/v1/users/{Id}
- PUT/v1/users/{Id}
- PATCH/v1/users/{Id}
- DELETE/v1/users/{Id}
The Users object
Attributes
Unique identifier of the user.
Email address of the user.
Login username of the user.
First name of the user.
Last name of the user.
Phone number of the user.
Hashed password of the user. Not intended for direct use.
List of role identifiers assigned to this user.
List of administrative role identifiers assigned to this user.
Identifier of the subscriber this user belongs to.
{
"Id": "string",
"Email": "string",
"Username": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"PasswordHash": "string",
"Roles": [
"string"
],
"AdminRoles": [
"string"
],
"SubscriberId": "string"
}
Lists all users
Retrieves all users associated with the authenticated account.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/users'
Creates a new user
Creates a new user with the specified credentials and contact information.
Body Parameters
Email address of the user. Required. Must be a valid email in RFC 5322 format.
Login username for the user. Required. Must not have leading or trailing whitespace.
Password for the user. Required. Must be at least 12 characters long and include at least 3 of the following 4 character types: lowercase letter, uppercase letter, number, or special character (such as !@#$%^&*). The new password cannot match any password in the user's password history.
First name of the user. Required.
Last name of the user. Required.
Phone number of the user. Required.
List of role identifiers to assign to this user. Optional.
Returns
{
"Email": "string",
"Username": "string",
"Password": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"Roles": [
"string"
]
}
curl -X POST 'https://api.machineq.net/v1/users'
Retrieves a user by ID
Retrieves a single user by ID, including assigned roles and contact information.
Path Parameters
Unique identifier of the user.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/users/{Id}'
Replaces a user by ID
Replaces all mutable fields of an existing user by ID.
Path Parameters
Unique identifier of the user. Required.
Body Parameters
Email address of the user. Required. Must be a valid email in RFC 5322 format.
First name of the user. Required.
Last name of the user. Required.
Phone number of the user. Required.
Password for the user. Required. Must be at least 12 characters long and include at least 3 of the following 4 character types: lowercase letter, uppercase letter, number, or special character (such as !@#$%^&*). The new password cannot match any password in the user's password history.
List of role identifiers to assign to this user. Replaces the existing list.
Returns
{
"Email": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"Password": "string",
"Roles": [
"string"
]
}
curl -X PUT 'https://api.machineq.net/v1/users/{Id}'
Partially updates a user by ID
Partially updates an existing user by ID. Only provided fields are modified.
Path Parameters
Unique identifier of the user. Required.
Body Parameters
Email address of the user. Optional. Must be a valid email in RFC 5322 format. Null to leave unchanged.
First name of the user. Optional. Null to leave unchanged.
Last name of the user. Optional. Null to leave unchanged.
Phone number of the user. Optional. Null to leave unchanged.
Password for the user. Optional. Must be at least 12 characters long and include at least 3 of the following 4 character types: lowercase letter, uppercase letter, number, or special character (such as !@#$%^&*). The new password cannot match any password in the user's password history.
List of role identifiers to assign to this user. Optional. Replaces the existing list when provided.
Returns
{
"Email": "string",
"FirstName": "string",
"LastName": "string",
"PhoneNumber": "string",
"Password": "string",
"Roles": [
"string"
]
}
curl -X PATCH 'https://api.machineq.net/v1/users/{Id}'
Deletes a user by ID
Permanently deletes a user by ID. This action is irreversible.
Path Parameters
Unique identifier of the user.
Body Parameters
No parameters.
Returns
curl -X DELETE 'https://api.machineq.net/v1/users/{Id}'
Version
Semantic version information for the application software.
- GET/v1/version
The Version object
Attributes
Full semantic version string of the build. Default: "unset".
Major version component. Default: "unset".
Minor version component. Default: "unset".
Patch version component. Default: "unset".
Timestamp when the build was created (e.g., "2018-10-16_15:39:54").
{
"Semantic": "string",
"Major": "string",
"Minor": "string",
"Patch": "string",
"BuildTime": "string"
}
Retrieves the application version
Retrieves the current application version.
Body Parameters
No parameters.
Returns
curl 'https://api.machineq.net/v1/version'