Download OpenAPI specification:
API for the ABC Dust Platform — sensor data ingestion, health checks, and IoT device command control.
token query parameter.X-Api-Key header.Operations related to sensor data ingestion.
Use the /{clientCode}/sensors endpoint with your assigned client code.
Authentication via token query parameter.
Accepts sensor data as JSON in the request body and stores it in ABC Dust Platform.
The clientCode path parameter identifies the customer tenant.
Available Client Codes:
Requires a valid token as a query parameter.
| clientCode required | string^[A-Z0-9]{6}$ Example: CU01SG Customer client code (6 alphanumeric characters). This identifies your tenant in the multi-tenant system. Contact ABC Dust support to obtain your assigned code. |
| token required | string Example: token=YOUR_API_TOKEN_HERE API token for authentication. Obtain from ABC Dust support. |
| altitude required | number <float> Altitude reading in meters. |
| acceleration required | number <float> Acceleration reading. |
required | object Contains specific device-related sensor values. |
| gyroscope required | number <float> Gyroscope reading. |
| timestamp required | integer <int64> Timestamp of the reading (milliseconds since Unix epoch). |
| latitude required | number <double> Latitude coordinate (WGS84). |
| longitude required | number <double> Longitude coordinate (WGS84). |
| conf required | string Configuration identifier (e.g., device type like "Cloudgate-Mini"). |
| temperature required | number <float> Temperature reading in Celsius. |
| speed required | number <float> Speed reading in km/h. |
| CGSerial | string Cloudgate device serial number. |
| flowmeter1 | number <float> Flowmeter channel 1 reading (mA). |
| flowmeter2 | number <float> Flowmeter channel 2 reading (mA). |
| flowmeter3 | number <float> Flowmeter channel 3 reading (mA). |
[- {
- "altitude": 82.7,
- "acceleration": 0,
- "deviceValues": {
- "dustConcentration": "0.033",
- "serialNumber": "8533202502",
- "model": "8533",
- "faultMessages": "0,0,0,0,0,0,0,0,0,0,0,1,0,70,0,87,0"
}, - "gyroscope": 0,
- "timestamp": 1746634948444,
- "latitude": 46.752689983333,
- "longitude": -71.45918015,
- "conf": "Cloudgate-Mini",
- "temperature": 0,
- "speed": 0,
- "CGSerial": "KM4AP5A998",
- "flowmeter1": 0,
- "flowmeter2": 0,
- "flowmeter3": 0
}
]{- "success": true,
- "message": "Data saved to MongoDB and PostgreSQL Lambda triggered",
- "data": {
- "mongoId": "68336201f352a2f8f64ac570"
}
}Send MQTT commands to IoT devices (RaspberryPi, Cloudgate).
Use the /devices/{deviceType}/{deviceId}/commands endpoint.
Authentication via X-Api-Key header.
Supported devices:
Publishes an MQTT command to a specific IoT device via AWS IoT Core. The device must be online and subscribed to its response topic to receive the command.
Supported device types:
Controls Iono Pi Max outputs, system operations, and configuration.
Output commands — Control physical outputs (OC1=Fan, OC2=Motor, OC3=Water cannon, OC4=Auxiliary):
{ "output": "OC1", "state": "on" }
{ "output": "ALL", "state": "off" }
System commands — Device management:
{ "system": "reboot" }
{ "system": "status" }
{ "system": "ping" }
{ "system": "emergency_stop" }
Config commands — Update device settings:
{ "config": "interval", "value": 30 }
Start/stop dust measurement:
{ "command": "GO" }
{ "command": "STOP" }
Commands not yet supported. Will return 400.
MQTT Topic: Commands are published to {deviceType}/abcdust-{env}/{deviceId}/response
| deviceType required | string Enum: "raspberrypi" "cloudgate" "airsence" The device platform type. Determines which command schemas are valid. |
| deviceId required | string Example: RaspberryPi-001 The unique device identifier. Must match the device's MQTT client ID
(e.g., |
| output required | string Enum: "OC1" "OC2" "OC3" "OC4" "ALL" The output controller to target. |
| state required | string Enum: "on" "off" Desired state of the output. |
{- "output": "OC1",
- "state": "on"
}{- "success": true,
- "message": "Command published successfully",
- "data": {
- "deviceType": "raspberrypi",
- "deviceId": "RaspberryPi-001",
- "topic": "raspberrypi/abcdust-stage/RaspberryPi-001/response",
- "command": {
- "output": "OC1",
- "state": "on"
}, - "timestamp": "2026-04-06T12:00:00.000Z"
}
}Returns the status of the database connection for health checks. This endpoint does not require authentication.
curl "https://api.abcdust.net/prod/test-connection"
{- "success": true,
- "message": "Successfully connected to database",
- "timestamp": "2026-01-07T12:00:00.000Z"
}