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.

Base URL
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.

Authenticated Request
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.

HTTP Error Codes
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.

Endpoints
  • GET/v1/account
  • PUT/v1/account/passwordReset
  • PATCH/v1/account/patchUserInfo
  • GET/v1/account/permissions
  • PUT/v1/account/updateUserInfo

The Account object

Attributes

UserInfo object

Profile and role information for the authenticated user.

SubscriberInfo object

Organization and address information for the subscriber associated with the authenticated user.

The Account object
{
  "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

GET /v1/account
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

CurrentPassword string required

Current password for the account. Required for verification before the password can be changed.

NewPassword string required

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

Body
{
  "CurrentPassword": "string",
  "NewPassword": "string"
}
PUT /v1/account/passwordReset
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 string

Email address for the user, in RFC 5322 format. Optional; omit to leave the current value unchanged.

FirstName string

First (given) name of the user. Optional; omit to leave the current value unchanged.

LastName string

Last (family) name of the user. Optional; omit to leave the current value unchanged.

PhoneNumber string

Contact phone number for the user. Optional; omit to leave the current value unchanged.

Returns

Body
{
  "Email": "string",
  "FirstName": "string",
  "LastName": "string",
  "PhoneNumber": "string"
}
PATCH /v1/account/patchUserInfo
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

GET /v1/account/permissions
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 string required

Email address for the user, in RFC 5322 format. Required.

FirstName string required

First (given) name of the user. Required.

LastName string required

Last (family) name of the user. Required.

PhoneNumber string

Contact phone number for the user. Optional; omit or send an empty string to clear the value.

Returns

Body
{
  "Email": "string",
  "FirstName": "string",
  "LastName": "string",
  "PhoneNumber": "string"
}
PUT /v1/account/updateUserInfo
curl -X PUT 'https://api.machineq.net/v1/account/updateUserInfo'

Application

A client credential application used to authenticate and access the MQcentral API.

Endpoints
  • 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

Id string

Unique identifier of the application.

Name string

Human-readable name of the application.

UUID string

UUID (client ID) used to authenticate this application when requesting access tokens.

Roles array of strings

List of role IDs that define the access permissions granted to this application.

SubscriberId string

Unique identifier of the subscriber that owns this application.

The Application object
{
  "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

GET /v1/applications
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

Name string required

Human-readable name of the application. Required. Must be at least 1 character.

Roles array of strings

List of role IDs that control what the application can access. Optional. Omit to create an application with no roles.

Returns

Body
{
  "Name": "string",
  "Roles": [
    "string"
  ]
}
POST /v1/applications
curl -X POST 'https://api.machineq.net/v1/applications'

Retrieves an application by ID

Retrieves a single application by its unique identifier.

Path Parameters

Id string required

Unique identifier of the application.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/applications/{Id}
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

Id string required

Unique identifier of the application. Required.

Body Parameters

Name string required

Human-readable name of the application. Required. Must be at least 1 character.

Roles array of strings

List of role IDs that control what the application can access. Replaces the existing list of roles.

Returns

Path Parameters
Body
{
  "Name": "string",
  "Roles": [
    "string"
  ]
}
PUT /v1/applications/{Id}
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

Id string required

Unique identifier of the application. Required.

Body Parameters

Name string

Human-readable name of the application. Optional. Omit to leave unchanged.

Roles array of strings

List of role IDs that control what the application can access. Optional. Replaces the existing list of roles when provided.

Returns

Path Parameters
Body
{
  "Name": "string",
  "Roles": [
    "string"
  ]
}
PATCH /v1/applications/{Id}
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

Id string required

Unique identifier of the application.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/applications/{Id}
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

Id string required

Unique identifier of the application.

Body Parameters

No parameters.

Returns

Path Parameters
POST /v1/applications/{Id}/refreshToken
curl -X POST 'https://api.machineq.net/v1/applications/{Id}/refreshToken'

DecoderType

A decoder type defining the method used to decode device payloads.

Endpoints
  • GET/v1/decodertypes
  • GET/v1/decodertypes/{Id}

The DecoderType object

Attributes

Id string

Unique identifier of the decoder type.

Name string

Human-readable name of the decoder type. Required. Must be at least 1 character.

PayloadDecoder enum (string)

Enum value identifying the internal payload decoding algorithm associated with this decoder type.

The DecoderType object
{
  "Id": "string",
  "Name": "string",
  "PayloadDecoder": "string"
}

Lists all decoder types

Retrieves all available decoder types.

Body Parameters

No parameters.

Returns

GET /v1/decodertypes
curl 'https://api.machineq.net/v1/decodertypes'

Retrieves a decoder type by ID

Retrieves a single decoder type by its unique identifier.

Path Parameters

Id string required

Unique identifier of the decoder type.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/decodertypes/{Id}
curl 'https://api.machineq.net/v1/decodertypes/{Id}'

Device

A device with its configuration, connectivity parameters, and health statistics.

Endpoints
  • 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

Name string

Human-readable name of the device.

DevEUI string

Unique identifier of the device. 16-character hexadecimal string.

ActivationType string

Activation method for the device. Allowed values: ABP, OTAA.

ServiceProfile string

Identifier of the service profile associated with this device.

DeviceProfile string

Identifier of the device profile associated with this device.

DecoderType string

Identifier of the decoder type used to decode payloads from this device.

OutputProfile string

Identifier of the output profile used to route payloads to external servers.

PrivateData boolean

Whether data storage is suppressed. True means data is not stored; false means data is stored for future processing.

CreatedAt string (date-time)

Timestamp when the device was created in RFC 3339 format.

UpdatedAt string (date-time)

Timestamp when the device was last updated in RFC 3339 format.

UpdatedBy string

Identifier of the user who last updated the device.

LastUplink string (date-time)

Timestamp of the last uplink received from the device in RFC 3339 format.

Statistics object

Health and connectivity statistics for the device.

PayloadDecoder enum (string)

Enum value identifying the internal payload decoding algorithm for this device.

The Device object
{
  "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

GET /v1/devices
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

Name string required

Human-readable name of the device. Required. Must be at least 1 character.

DevEUI string required

Unique identifier of the device. Required. Must be a 16-character hexadecimal string.

DevAddr string

Device address. Required for ABP activation; optional for OTAA. Must be an 8-character hexadecimal string.

NetworkSkey string

Network session key. Required for ABP activation; omit for OTAA. Must be a 32-character hexadecimal string.

ActivationType string required

Activation method for the device. Required. Allowed values: ABP, OTAA.

ApplicationEUI string

Application EUI. Required for OTAA activation; omit for ABP. Must be a 16-character hexadecimal string.

ApplicationKey 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.

ApplicationSKey string

Application session key. Required for ABP activation; omit for OTAA. Must be a 32-character hexadecimal string.

ServiceProfile string required

Identifier of the service profile to associate with this device. Required. Retrieve available values from GET /v1/serviceprofiles.

DeviceProfile string required

Identifier of the device profile to associate with this device. Required. Retrieve available values from GET /v1/deviceprofiles.

DecoderType string

Identifier of the decoder type used to decode payloads from this device. Optional. Retrieve available values from GET /v1/decodertypes.

OutputProfile string

Identifier of the output profile used to route payloads to external servers. Optional. Retrieve available values from GET /v1/outputprofiles.

PrivateData boolean

Whether to suppress data storage. True means data is not stored; false means data is stored for future processing. Default: false.

NetworkKey string

Network key. Required for OTAA activation with LoRaWAN 1.1 devices only. Must be a 32-character hexadecimal string.

Returns

Body
{
  "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"
}
POST /v1/devices
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

GET /v1/devices/health
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

GET /v1/devices/healthcount
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

DevEUI string required

Unique identifier of the device. Required. Must be a 16-character hexadecimal string.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/devices/{DevEUI}
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

DevEUI string required

Unique identifier of the device. Required. Must be a 16-character hexadecimal string.

Body Parameters

Name string required

Human-readable name of the device. Required. Must be at least 1 character.

ServiceProfile string required

Identifier of the service profile associated with this device. Required.

DeviceProfile string required

Identifier of the device profile associated with this device. Required.

DecoderType string

Identifier of the decoder type used to decode payloads from this device. Optional.

OutputProfile string

Identifier of the output profile used to route payloads to external servers. Optional.

PrivateData boolean

Whether to suppress data storage. True means data is not stored; false means data is stored for future processing.

Returns

Path Parameters
Body
{
  "Name": "string",
  "ServiceProfile": "string",
  "DeviceProfile": "string",
  "DecoderType": "string",
  "OutputProfile": "string",
  "PrivateData": true
}
PUT /v1/devices/{DevEUI}
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

DevEUI string required

Unique identifier of the device. Required. Must be a 16-character hexadecimal string.

Body Parameters

Name string required

Human-readable name of the device. Optional. Omit to leave unchanged.

ServiceProfile string

Identifier of the service profile associated with this device. Optional. Omit to leave unchanged.

DeviceProfile string

Identifier of the device profile associated with this device. Optional. Omit to leave unchanged.

DecoderType string

Identifier of the decoder type used to decode payloads from this device. Optional. Omit to leave unchanged.

OutputProfile string

Identifier of the output profile used to route payloads to external servers. Optional. Omit to leave unchanged.

PrivateData boolean

Whether to suppress data storage. True means data is not stored; false means data is stored for future processing.

RemoveOutputProfile boolean

Whether to remove the output profile association. True means the output profile reference is removed; false leaves it unchanged.

Returns

Path Parameters
Body
{
  "Name": "string",
  "ServiceProfile": "string",
  "DeviceProfile": "string",
  "DecoderType": "string",
  "OutputProfile": "string",
  "PrivateData": true,
  "RemoveOutputProfile": true
}
PATCH /v1/devices/{DevEUI}
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

DevEUI string required

Unique identifier of the device. Required. Must be a 16-character hexadecimal string.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/devices/{DevEUI}
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

DevEUI string required

Unique identifier of the target device. Required. Must be a 16-character hexadecimal string.

Body Parameters

Payload string

Raw hexadecimal payload to send to the device (e.g., "a1b2c3"). Either Payload or ApplicationPayload must be provided.

TargetPort string

LoRaWAN port number for the message. Required when Payload is provided; optional otherwise. Allowed range: 1–223 or 225.

Confirm boolean

Whether the device must acknowledge receipt. True means the message requires acknowledgment; false means it does not.

FlushQueue boolean

Whether to clear all pending messages before sending this one. True means the queue is flushed first; false means existing messages are preserved.

ApplicationPayload object

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

Path Parameters
Body
{
  "Payload": "string",
  "TargetPort": "string",
  "Confirm": true,
  "FlushQueue": true,
  "ApplicationPayload": {}
}
POST /v1/devices/{DevEUI}/message
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

DevEUI string required

Unique identifier of the device. Required. Must be a 16-character hexadecimal string.

Query Parameters

StartTime string (date-time)

Filters payloads to those received at or after this timestamp in RFC 3339 format. Optional.

EndTime string (date-time)

Filters payloads to those received at or before this timestamp in RFC 3339 format. Optional.

Body Parameters

No parameters.

Returns

Path Parameters
Query Parameters
GET /v1/devices/{DevEUI}/payloads
curl 'https://api.machineq.net/v1/devices/{DevEUI}/payloads'

DeviceGroup

A logical collection of devices.

Endpoints
  • 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

Id string

Unique identifier of the device group.

Name string

Human-readable name of the device group.

DeviceList array of strings

List of device EUIs belonging to this group.

Devices array of objects

List of full device objects belonging to this group.

The DeviceGroup object
{
  "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

GET /v1/groups/devices
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

Name string required

Human-readable name of the device group. Required. Must be at least 1 character.

DeviceList array of strings

List of device EUIs to include in this group. Optional.

Returns

Body
{
  "Name": "string",
  "DeviceList": [
    "string"
  ]
}
POST /v1/groups/devices
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

Id string required

Unique identifier of the device group.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/groups/devices/{Id}
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

Id string required

Unique identifier of the device group. Required.

Body Parameters

Name string required

Human-readable name of the device group. Required. Must be at least 1 character.

DeviceList array of strings

List of device EUIs to include in this group. Replaces the existing list.

Returns

Path Parameters
Body
{
  "Name": "string",
  "DeviceList": [
    "string"
  ]
}
PUT /v1/groups/devices/{Id}
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

Id string required

Unique identifier of the device group. Required.

Body Parameters

Name string

Human-readable name of the device group. Optional. Omit to leave unchanged.

DeviceList array of strings

List of device EUIs to include in this group. Optional. Replaces the existing list when provided.

Returns

Path Parameters
Body
{
  "Name": "string",
  "DeviceList": [
    "string"
  ]
}
PATCH /v1/groups/devices/{Id}
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

Id string required

Unique identifier of the device group.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/groups/devices/{Id}
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

Id string required

Unique identifier of the device group. Required.

Query Parameters

Payload string

Hexadecimal payload to search for (e.g., "a1b2c3"). Optional.

StartTime string (date-time)

Filters results to those at or after this timestamp in RFC 3339 format. Optional.

EndTime string (date-time)

Filters results to those at or before this timestamp in RFC 3339 format. Optional.

Body Parameters

No parameters.

Returns

Path Parameters
Query Parameters
GET /v1/groups/devices/{Id}/recent
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.

Endpoints
  • GET/v1/deviceprofiles
  • PATCH/v1/deviceprofiles/{Id}/devices

The DeviceProfile object

Attributes

Id string

Unique identifier of the device profile.

Name string

Human-readable name of the device profile.

The DeviceProfile object
{
  "Id": "string",
  "Name": "string"
}

Lists all device profiles

Retrieves all device profiles available for device provisioning.

Body Parameters

No parameters.

Returns

GET /v1/deviceprofiles
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

Id string required

Unique identifier of the device profile. Required.

Body Parameters

Devices array of strings

List of device EUIs to associate with this device profile.

Returns

Path Parameters
Body
{
  "Devices": [
    "string"
  ]
}
PATCH /v1/deviceprofiles/{Id}/devices
curl -X PATCH 'https://api.machineq.net/v1/deviceprofiles/{Id}/devices'

MulticastGroup

A logical collection of devices configured to receive multicast transmissions simultaneously.

Endpoints
  • 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

Name string

Human-readable name of the multicast group.

MulticastDevEUI string

Unique DevEUI of the multicast group. 16-character hexadecimal string.

MulticastDevAddr string

Device address of the multicast group. 8-character hexadecimal string.

GroupType string

LoRaWAN class type of the multicast group. Allowed values: B, C.

DataRate integer

Data rate index for the multicast group transmissions.

Frequency integer

Transmission frequency for the multicast group in hertz (Hz).

PingSlotPeriod integer

Ping slot period for Class B multicast groups. Allowed values: 1, 2, 4, 8, 16, 32, 64, 128.

The MulticastGroup object
{
  "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

GET /v0/multicastgroups
curl 'https://api.machineq.net/v0/multicastgroups'

Creates a new multicast group

Creates a new multicast group with the specified configuration.

Body Parameters

Name string

Human-readable name of the multicast group. Required. Must be at least 1 character.

MulticastDevEUI string

Unique DevEUI of the multicast group. Required. Must be a 16-character hexadecimal string.

MulticastDevAddr string

Device address of the multicast group. Required. Must be an 8-character hexadecimal string.

GroupType string

LoRaWAN class type of the multicast group. Required. Allowed values: B, C.

MulticastNwkSKey string

Network session key for the multicast group. Required. Must be a 32-character hexadecimal string.

MulticastAppSKey string

Application session key for the multicast group. Required. Must be a 32-character hexadecimal string.

DataRate integer

Data rate index for the multicast group transmissions.

Frequency integer

Transmission frequency for the multicast group in hertz (Hz).

PingSlotPeriod integer

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

Body
{
  "Name": "string",
  "MulticastDevEUI": "string",
  "MulticastDevAddr": "string",
  "GroupType": "string",
  "MulticastNwkSKey": "string",
  "MulticastAppSKey": "string",
  "DataRate": 0,
  "Frequency": 0,
  "PingSlotPeriod": 0
}
POST /v0/multicastgroups
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

MulticastDevEUI string required

Unique DevEUI of the multicast group.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v0/multicastgroups/{MulticastDevEUI}
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

Name string

Human-readable name of the multicast group. Optional. Omit to leave unchanged.

DataRate integer

Data rate index for the multicast group transmissions. Optional.

Frequency integer

Transmission frequency for the multicast group in hertz (Hz). Optional.

Returns

Path Parameters
Body
{
  "Name": "string",
  "DataRate": 0,
  "Frequency": 0
}
PUT /v0/multicastgroups/{MulticastDevEUI}
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v0/multicastgroups/{MulticastDevEUI}
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

Devices array of strings

List of device identifiers to associate with the multicast group. Maximum 10 items.

Returns

Path Parameters
Body
{
  "Devices": [
    "string"
  ]
}
POST /v0/multicastgroups/{MulticastDevEUI}/devices/associate
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

Devices array of strings

List of device EUIs to remove from the multicast group. Maximum 10 items.

Returns

Path Parameters
Body
{
  "Devices": [
    "string"
  ]
}
POST /v0/multicastgroups/{MulticastDevEUI}/devices/deassociate
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v0/multicastgroups/{MulticastDevEUI}/gateways
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

Gateways array of strings

List of gateway node IDs to associate with the multicast group. Maximum 10 items.

Returns

Path Parameters
Body
{
  "Gateways": [
    "string"
  ]
}
POST /v0/multicastgroups/{MulticastDevEUI}/gateways/associate
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

MulticastDevEUI string required

Unique DevEUI of the multicast group. Required.

Body Parameters

Gateways array of strings

List of gateway node IDs to remove from the multicast group. Maximum 10 items.

Returns

Path Parameters
Body
{
  "Gateways": [
    "string"
  ]
}
POST /v0/multicastgroups/{MulticastDevEUI}/gateways/deassociate
curl -X POST 'https://api.machineq.net/v0/multicastgroups/{MulticastDevEUI}/gateways/deassociate'

Gateway

A networking device that bridges devices and a central network server.

Endpoints
  • 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

Id string

Unique identifier of the gateway.

GatewayProfile string

Identifier of the gateway profile, or model, associated with this gateway.

MacAddress string

MAC address of the gateway.

NodeId string

Node ID of the gateway. 16-character hexadecimal string.

Name string

Human-readable name of the gateway.

AntennaGain string

Gain of the attached antenna.

LocationType string

Installation location type. Allowed values: INDOOR, OUTDOOR.

GPSEnabled boolean

Whether GPS is enabled on the gateway. True means coordinates are determined by GPS; false means coordinates are manually set.

Coordinates object

Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters).

CellularEnabled boolean

Whether cellular backhaul is enabled. True means the gateway uses a cellular connection.

IMEI string

IMEI of the cellular modem for backhaul connectivity.

ICCID string

ICCID of the SIM card for cellular backhaul.

CreatedAt string (date-time)

Timestamp when the gateway was created in RFC 3339 format.

UpdatedAt string (date-time)

Timestamp when the gateway was last updated in RFC 3339 format.

UpdatedBy string

Identifier of the user who last updated the gateway.

Manufacturer enum (string)

Manufacturer of the gateway. Reserved for future use.

Model string

Model designation reported by the gateway.

Statistics object

Health, connectivity, and performance statistics for the gateway. Null if the gateway has never connected to the network.

RfRegion string

Identifier of the RF region associated with this gateway.

The Gateway object
{
  "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

GET /v1/gateways
curl 'https://api.machineq.net/v1/gateways'

Creates a new gateway

Creates a new gateway with the specified configuration.

Body Parameters

GatewayProfile string required

Identifier of the gateway profile, or model, to associate with this gateway. Required.

MacAddress string required

MAC address of the gateway. Required. Six colon-separated pairs of hexadecimal digits (e.g., a1:b2:c3:d4:e5:aa).

NodeId string required

Node ID of the gateway. Required. Must be a 16-character hexadecimal string.

Name string required

Human-readable name of the gateway. Required. Must be at least 1 character.

AntennaGain string required

Gain of the attached antenna. Required.

LocationType string required

Installation location type. Required. Allowed values: INDOOR, OUTDOOR.

GPSEnabled boolean

Whether GPS is enabled on the gateway. True means coordinates are determined by GPS and Coordinates should be omitted. Default: false.

Coordinates object

Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters). Required if GPSEnabled is false.

CellularEnabled boolean

Whether cellular backhaul is enabled. True means IMEI and ICCID may optionally be provided. Default: false.

IMEI string

IMEI of the cellular modem. Optional when CellularEnabled is true. 15-digit number; multiple entries separated by commas (e.g., "123451234512345,123451234512345").

ICCID string

ICCID of the SIM card. Optional when CellularEnabled is true. Must be a 20-digit number.

Returns

Body
{
  "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"
}
POST /v1/gateways
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

GET /v1/gateways/connection
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

GET /v1/gateways/health
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

Id string required

Unique identifier or Node ID of the gateway.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/gateways/{Id}
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

Id string required

Unique identifier or Node ID of the gateway. Required.

Body Parameters

Name string required

Human-readable name of the gateway. Required. Must be at least 1 character.

AntennaGain string required

Gain of the attached antenna. Required.

LocationType string required

Installation location type. Required. Allowed values: INDOOR, OUTDOOR.

Coordinates object

Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters). Required if GPSEnabled is false.

GatewayProfile string required

Identifier of the gateway profile, or model, to associate with this gateway. Required.

GPSEnabled boolean

Whether GPS is enabled on the gateway. True means coordinates are determined by GPS and Coordinates should be omitted.

CellularEnabled boolean

Whether cellular backhaul is enabled. True means IMEI and ICCID may optionally be provided.

IMEI string

IMEI of the cellular modem. Optional when CellularEnabled is true. 15-digit number; multiple entries separated by commas.

ICCID string

ICCID of the SIM card. Optional when CellularEnabled is true. Must be a 20-digit number.

Returns

Path Parameters
Body
{
  "Name": "string",
  "AntennaGain": "string",
  "LocationType": "string",
  "Coordinates": {
    "X": "string",
    "Y": "string",
    "Z": "string"
  },
  "GatewayProfile": "string",
  "GPSEnabled": true,
  "CellularEnabled": true,
  "IMEI": "string",
  "ICCID": "string"
}
PUT /v1/gateways/{Id}
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

Id string required

Unique identifier or Node ID of the gateway. Required.

Body Parameters

Name string

Human-readable name of the gateway. Optional. Omit to leave unchanged.

AntennaGain string

Gain of the attached antenna. Optional. Omit to leave unchanged.

LocationType string

Installation location type. Optional. Allowed values: INDOOR, OUTDOOR. Omit to leave unchanged.

Coordinates object

Geographic location of the gateway with X (latitude), Y (longitude), and Z (height in meters). Required if GPSEnabled is false.

GatewayProfile string

Identifier of the gateway profile, or model, to associate with this gateway. Optional. Omit to leave unchanged.

GPSEnabled boolean

Whether GPS is enabled on the gateway. True means coordinates are determined by GPS and Coordinates should be omitted.

CellularEnabled boolean

Whether cellular backhaul is enabled. True means IMEI and ICCID may optionally be provided.

IMEI string

IMEI of the cellular modem. Optional when CellularEnabled is true. 15-digit number; multiple entries separated by commas.

ICCID string

ICCID of the SIM card. Optional when CellularEnabled is true. Must be a 20-digit number.

RfRegion string

Identifier of the RF region to associate with this gateway. Optional. Retrieve available values from GET /v1/rfregions.

Returns

Path Parameters
Body
{
  "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"
}
PATCH /v1/gateways/{Id}
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

Id string required

Unique identifier or Node ID of the gateway.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/gateways/{Id}
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

Id string required

Unique identifier or Node ID of the gateway.

Query Parameters

Days integer

Number of days to look back for device activity. Optional.

Body Parameters

No parameters.

Returns

Path Parameters
Query Parameters
GET /v1/gateways/{Id}/devices
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

Id string required

Unique identifier or Node ID of the gateway.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/gateways/{Id}/statistics
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

NodeID string required

Unique Node ID of the gateway. Required. Must be a 16-character hexadecimal string.

Query Parameters

StartTime string (date-time)

Filters events to those at or after this timestamp in RFC 3339 format. Optional. Defaults to 30 days ago.

EndTime string (date-time)

Filters events to those at or before this timestamp in RFC 3339 format. Optional. Defaults to now.

Body Parameters

No parameters.

Returns

Path Parameters
Query Parameters
GET /v1/gateways/{NodeID}/events
curl 'https://api.machineq.net/v1/gateways/{NodeID}/events'

GatewayGroup

A logical collection of gateways.

Endpoints
  • 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

Id string

Unique identifier of the gateway group.

Name string

Human-readable name of the gateway group.

GatewayList array of strings

List of gateway identifiers belonging to this group.

Gateways array of objects

List of full gateway objects belonging to this group.

The GatewayGroup object
{
  "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

GET /v1/groups/gateways
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

Name string required

Human-readable name of the gateway group. Required. Must be at least 1 character.

GatewayList array of strings

List of gateway identifiers to include in this group. Optional.

Returns

Body
{
  "Name": "string",
  "GatewayList": [
    "string"
  ]
}
POST /v1/groups/gateways
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

Id string required

Unique identifier of the gateway group.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/groups/gateways/{Id}
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

Id string required

Unique identifier of the gateway group. Required.

Body Parameters

Name string required

Human-readable name of the gateway group. Required. Must be at least 1 character.

GatewayList array of strings

List of gateway identifiers to include in this group. Replaces the existing list.

Returns

Path Parameters
Body
{
  "Name": "string",
  "GatewayList": [
    "string"
  ]
}
PUT /v1/groups/gateways/{Id}
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

Id string required

Unique identifier of the gateway group. Required.

Body Parameters

Name string

Human-readable name of the gateway group. Optional. Omit to leave unchanged.

GatewayList array of strings

List of gateway identifiers to include in this group. Optional. Replaces the existing list when provided.

Returns

Path Parameters
Body
{
  "Name": "string",
  "GatewayList": [
    "string"
  ]
}
PATCH /v1/groups/gateways/{Id}
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

Id string required

Unique identifier of the gateway group.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/groups/gateways/{Id}
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.

Endpoints
  • GET/v1/gatewayprofiles

The GatewayProfile object

Attributes

Id string

Unique identifier of the gateway profile.

Name string

Human-readable name of the gateway profile.

Description string

Detailed description of the gateway profile. Required. Must be at least 1 character.

The GatewayProfile object
{
  "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

GET /v1/gatewayprofiles
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.

Endpoints
  • GET/v1/logs

The Logs object

Attributes

Timestamp string (date-time)

Time the log entry was recorded in RFC 3339 format.

DevEUI string

Device EUI associated with this log entry. 16-character hexadecimal string.

DevAddr string

Device address assigned during activation. 8-character hexadecimal string.

Fport string

LoRaWAN FPort value indicating the application port number used for this frame.

FCnt string

LoRaWAN frame counter value for this transmission.

MessageType string

Numeric code representing the LoRaWAN message type.

MessageTypeText string

Human-readable label for the LoRaWAN message type.

PayloadHex string

Raw application payload encoded as a hexadecimal string.

MICHex string

Message Integrity Code (MIC) encoded as a hexadecimal string.

PrimaryGatewayRSSI string

Received Signal Strength Indicator (RSSI) reported by the primary gateway in decibel-milliwatts (dBm).

PrimaryGatewaySNR string

Signal-to-Noise Ratio (SNR) reported by the primary gateway in decibels (dB).

PrimaryGatewayESP string

Equivalent Signal Power (ESP) reported by the primary gateway in decibel-milliwatts (dBm).

SpreadingFactor string

LoRa spreading factor used for the transmission.

Airtime string

Time on air for the transmission in seconds.

SubBand string

Sub-band used for the transmission.

Channel string

Radio channel used for the transmission.

GatewayID string

Deprecated. Primary gateway ID that received the transmission. Use GatewayList instead.

GatewayLatitide string

Latitude of the primary gateway in decimal degrees.

GatewayLongitude string

Longitude of the primary gateway in decimal degrees.

GatewayCount string

Number of gateways that received this transmission.

GatewayList array of objects

List of gateways that received this transmission, with signal quality details for each.

DeviceLatitude string

Estimated latitude of the device in decimal degrees. Empty if location is unavailable.

DeviceLongitude string

Estimated longitude of the device in decimal degrees. Empty if location is unavailable.

DeviceLocationRadius string

Estimated accuracy radius of the device location in meters. Empty if location is unavailable.

MacCommands string

Raw MAC commands included in the frame as a hexadecimal string. Empty if no MAC commands are present.

DecodedMacCommands array of strings

List of human-readable decoded MAC command strings. Empty if no MAC commands are present.

ADRbit string

Adaptive Data Rate (ADR) bit value from the frame header. A value of 1 means ADR is enabled; 0 means ADR is disabled.

ADRAckReq string

ADR acknowledgment request bit value. Indicates whether the device is requesting an ADR acknowledgment from the network.

AckRequested string

Indicates whether an acknowledgment was requested for this frame.

ACKbit string

Acknowledgment bit value from the frame header. Indicates whether this frame acknowledges a previously received frame.

FPending string

Frame pending bit value. Indicates whether additional data is pending from the network server for the device.

Late string

Indicates whether the packet was marked as late by the network server.

DevNonce string

Device nonce value used during the join procedure. Only present for join-request messages.

JoinEUI string

Join EUI (AppEUI) used during the join procedure. Only present for join-request messages. 16-character hexadecimal string.

GatewayUnowned boolean

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.

GatewaySubscriberID string

Subscriber ID of the primary gateway owner. Only present when the gateway is owned by a different subscriber.

GatewayNodeID string

Node ID of the primary gateway that received this transmission.

PayloadDecoded object

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"]}.

Multicast boolean

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.

GatewayTxSuccess boolean

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.

GatewayTxDetails array of strings

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.

The Logs object
{
  "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

DevEUI string

Filters logs by device EUI. Optional. Must be a 16-character hexadecimal string.

GatewayID string

Filters logs by gateway node ID. Optional.

StartTime string (date-time)

Filters logs to those at or after this timestamp in RFC 3339 format. Optional.

EndTime string (date-time)

Filters logs to those at or before this timestamp in RFC 3339 format. Optional.

Page string

Page number of results to retrieve. Each page contains up to 100 entries. Optional.

LogFrameFilter.Stream array

Filters by transmission direction. Allowed values: UPSTREAM, DOWNSTREAM. Optional.

LogFrameFilter.MessageType array

Filters by LoRaWAN message type. Allowed values: MAC, MACDATA, DATA, NONE. Optional.

LogFrameFilter.Late array

Filters by whether packets were marked as late. Allowed values: LATEFALSE, LATETRUE. Optional.

LogFrameFilter.Activation array

Filters by activation message type. Allowed values: JOINREQUEST, JOINACCEPT. Optional.

LogFrameFilter.Ack array

Filters by whether the message contains an acknowledgment. Allowed values: ACKFALSE, ACKTRUE. Optional.

Body Parameters

No parameters.

Returns

Query Parameters
GET /v1/logs
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.

Endpoints
  • 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

Id string

Unique identifier of the output profile.

Name string

Human-readable name of the output profile.

MqttParams array of objects

List of MQTT destination configurations.

RestParams array of objects

List of REST (webhook) destination configurations.

AzureParams array of objects

List of Azure IoT Hub destination configurations.

AWSParams array of objects

List of AWS IoT Core destination configurations.

The OutputProfile object
{
  "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

GET /v1/outputprofiles
curl 'https://api.machineq.net/v1/outputprofiles'

Creates a new output profile

Creates a new output profile with the specified destination configuration.

Body Parameters

Id string

Unique identifier of the output profile. Optional. Auto-generated if omitted.

Name string required

Human-readable name of the output profile. Required. Must be at least 1 character.

MqttParams array of objects

List of MQTT destination configurations. Optional.

RestParams array of objects

List of REST (webhook) destination configurations. Optional.

AzureParams array of objects

List of Azure IoT Hub destination configurations. Optional.

AWSParams array of objects

List of AWS IoT Core destination configurations. Optional.

Returns

Body
{
  "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"
    }
  ]
}
POST /v1/outputprofiles
curl -X POST 'https://api.machineq.net/v1/outputprofiles'

Retrieves an output profile by ID

Retrieves a single output profile by ID.

Path Parameters

Id string required

Unique identifier of the output profile.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/outputprofiles/{Id}
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

Id string required

Unique identifier of the output profile. Required.

Body Parameters

Name string required

Human-readable name of the output profile. Required. Must be at least 1 character.

MqttParams array of objects

List of MQTT destination configurations. Replaces existing MQTT destinations.

RestParams array of objects

List of REST (webhook) destination configurations. Replaces existing REST destinations.

AzureParams array of objects

List of Azure IoT Hub destination configurations. Replaces existing Azure destinations.

AWSParams array of objects

List of AWS IoT Core destination configurations. Replaces existing AWS destinations.

Returns

Path Parameters
Body
{
  "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"
    }
  ]
}
PUT /v1/outputprofiles/{Id}
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

Id string required

Unique identifier of the output profile. Required.

Body Parameters

Name string

Human-readable name of the output profile. Optional. Omit to leave unchanged.

MqttParams array of objects

List of MQTT destination configurations. Optional. Replaces existing MQTT destinations when provided.

RestParams array of objects

List of REST (webhook) destination configurations. Optional. Replaces existing REST destinations when provided.

AzureParams array of objects

List of Azure IoT Hub destination configurations. Optional. Replaces existing Azure destinations when provided.

AWSParams array of objects

List of AWS IoT Core destination configurations. Optional. Replaces existing AWS destinations when provided.

Returns

Path Parameters
Body
{
  "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"
    }
  ]
}
PATCH /v1/outputprofiles/{Id}
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

Id string required

Unique identifier of the output profile.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/outputprofiles/{Id}
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

Id string required

Unique identifier of the output profile. Required.

Body Parameters

Devices array of strings

List of devices to associate with this output profile. All listed devices have their output profile updated to this one.

Returns

Path Parameters
Body
{
  "Devices": [
    "string"
  ]
}
PUT /v1/outputprofiles/{Id}/devices
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

Id string required

Unique identifier of the output profile. Required.

Body Parameters

Devices array of strings

List of devices to associate with this output profile. All listed devices have their output profile updated to this one.

Returns

Path Parameters
Body
{
  "Devices": [
    "string"
  ]
}
PATCH /v1/outputprofiles/{Id}/devices
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.

Endpoints
  • GET/v1/rfregions

The RFRegion object

Attributes

Id string

Unique identifier of the RF region.

Name string

Human-readable name of the RF region.

GatewayModels array of strings

List of gateway model identifiers compatible with this RF region.

The RFRegion object
{
  "Id": "string",
  "Name": "string",
  "GatewayModels": [
    "string"
  ]
}

Lists all RF regions

Retrieves all RF regions available for gateway provisioning.

Body Parameters

No parameters.

Returns

GET /v1/rfregions
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.

Endpoints
  • 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

Id string

Unique identifier of the role.

Name string

Human-readable name of the role.

Device object

CRUD permissions for device resources.

User object

CRUD permissions for user resources.

Gateway object

CRUD permissions for gateway resources.

Users array of strings

List of user identifiers assigned to this role.

Applications array of strings

List of application identifiers assigned to this role.

The Role object
{
  "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

GET /v1/roles
curl 'https://api.machineq.net/v1/roles'

Creates a new role

Creates a new role with the specified permissions.

Body Parameters

Name string required

Human-readable name of the role. Required. Must be at least 1 character.

Device object

CRUD permissions for device resources. Optional.

User object

CRUD permissions for user resources. Optional.

Gateway object

CRUD permissions for gateway resources. Optional.

Users array of strings

List of user identifiers to assign to this role. Optional.

Applications array of strings

List of application identifiers to assign to this role. Optional.

Returns

Body
{
  "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"
  ]
}
POST /v1/roles
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

Id string required

Unique identifier of the role.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/roles/{Id}
curl 'https://api.machineq.net/v1/roles/{Id}'

Replaces a role by ID

Replaces all fields of an existing role by ID.

Path Parameters

Id string required

Unique identifier of the role. Required.

Body Parameters

Name string required

Human-readable name of the role. Required. Must be at least 1 character.

Device object

CRUD permissions for device resources.

User object

CRUD permissions for user resources.

Gateway object

CRUD permissions for gateway resources.

Users array of strings

List of user identifiers to assign to this role. Replaces the existing list.

Applications array of strings

List of application identifiers to assign to this role. Replaces the existing list.

Returns

Path Parameters
Body
{
  "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"
  ]
}
PUT /v1/roles/{Id}
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

Id string required

Unique identifier of the role. Required.

Body Parameters

Name string

Human-readable name of the role. Optional. Omit to leave unchanged.

Device object

CRUD permissions for device resources. Optional. Omit to leave unchanged.

User object

CRUD permissions for user resources. Optional. Omit to leave unchanged.

Gateway object

CRUD permissions for gateway resources. Optional. Omit to leave unchanged.

Users array of strings

List of user identifiers to assign to this role. Optional. Replaces the existing list when provided.

Applications array of strings

List of application identifiers to assign to this role. Optional. Replaces the existing list when provided.

Returns

Path Parameters
Body
{
  "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"
  ]
}
PATCH /v1/roles/{Id}
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

Id string required

Unique identifier of the role.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/roles/{Id}
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.

Endpoints
  • GET/v1/serviceprofiles

The ServiceProfile object

Attributes

Id string

Unique identifier of the service profile.

Name string

Human-readable name of the service profile.

Description string

Brief description of the service profile's purpose and configuration.

The ServiceProfile object
{
  "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

GET /v1/serviceprofiles
curl 'https://api.machineq.net/v1/serviceprofiles'

Users

An account holder in the system with identifying information, assigned roles, and subscriber association.

Endpoints
  • 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

Id string

Unique identifier of the user.

Email string

Email address of the user.

Username string

Login username of the user.

FirstName string

First name of the user.

LastName string

Last name of the user.

PhoneNumber string

Phone number of the user.

PasswordHash string

Hashed password of the user. Not intended for direct use.

Roles array of strings

List of role identifiers assigned to this user.

AdminRoles array of strings

List of administrative role identifiers assigned to this user.

SubscriberId string

Identifier of the subscriber this user belongs to.

The Users object
{
  "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

GET /v1/users
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 string required

Email address of the user. Required. Must be a valid email in RFC 5322 format.

Username string required

Login username for the user. Required. Must not have leading or trailing whitespace.

Password string 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.

FirstName string required

First name of the user. Required.

LastName string required

Last name of the user. Required.

PhoneNumber string required

Phone number of the user. Required.

Roles array of strings

List of role identifiers to assign to this user. Optional.

Returns

Body
{
  "Email": "string",
  "Username": "string",
  "Password": "string",
  "FirstName": "string",
  "LastName": "string",
  "PhoneNumber": "string",
  "Roles": [
    "string"
  ]
}
POST /v1/users
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

Id string required

Unique identifier of the user.

Body Parameters

No parameters.

Returns

Path Parameters
GET /v1/users/{Id}
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

Id string required

Unique identifier of the user. Required.

Body Parameters

Email string required

Email address of the user. Required. Must be a valid email in RFC 5322 format.

FirstName string required

First name of the user. Required.

LastName string required

Last name of the user. Required.

PhoneNumber string required

Phone number of the user. Required.

Password string 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.

Roles array of strings

List of role identifiers to assign to this user. Replaces the existing list.

Returns

Path Parameters
Body
{
  "Email": "string",
  "FirstName": "string",
  "LastName": "string",
  "PhoneNumber": "string",
  "Password": "string",
  "Roles": [
    "string"
  ]
}
PUT /v1/users/{Id}
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

Id string required

Unique identifier of the user. Required.

Body Parameters

Email string

Email address of the user. Optional. Must be a valid email in RFC 5322 format. Null to leave unchanged.

FirstName string

First name of the user. Optional. Null to leave unchanged.

LastName string

Last name of the user. Optional. Null to leave unchanged.

PhoneNumber string

Phone number of the user. Optional. Null to leave unchanged.

Password string

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.

Roles array of strings

List of role identifiers to assign to this user. Optional. Replaces the existing list when provided.

Returns

Path Parameters
Body
{
  "Email": "string",
  "FirstName": "string",
  "LastName": "string",
  "PhoneNumber": "string",
  "Password": "string",
  "Roles": [
    "string"
  ]
}
PATCH /v1/users/{Id}
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

Id string required

Unique identifier of the user.

Body Parameters

No parameters.

Returns

Path Parameters
DELETE /v1/users/{Id}
curl -X DELETE 'https://api.machineq.net/v1/users/{Id}'

Version

Semantic version information for the application software.

Endpoints
  • GET/v1/version

The Version object

Attributes

Semantic string

Full semantic version string of the build. Default: "unset".

Major string

Major version component. Default: "unset".

Minor string

Minor version component. Default: "unset".

Patch string

Patch version component. Default: "unset".

BuildTime string

Timestamp when the build was created (e.g., "2018-10-16_15:39:54").

The Version object
{
  "Semantic": "string",
  "Major": "string",
  "Minor": "string",
  "Patch": "string",
  "BuildTime": "string"
}

Retrieves the application version

Retrieves the current application version.

Body Parameters

No parameters.

Returns

GET /v1/version
curl 'https://api.machineq.net/v1/version'