OpenAPI Specification
openapi: 3.0.3
info:
title: Cesanta mDash REST Data Devices API
description: 'mDash is Cesanta''s managed IoT cloud platform for devices built with Mongoose OS.
It provides device management, over-the-air (OTA) firmware updates, a device
shadow/database, remote RPC, API key management, and notification logs.
This OpenAPI description was captured from Cesanta''s published REST API reference
(https://mongoose-os.com/docs/mdash/api.md). Every request must be authenticated
with an `Authorization: Bearer KEY` header; POST/PUT calls that carry a JSON body
must set `Content-Type: application/json`.
'
version: v2
contact:
name: Cesanta Support
email: support@cesanta.com
url: https://mdash.net/home/
license:
name: Cesanta Terms
url: https://mongoose-os.com/
servers:
- url: https://dash.mongoose-os.com/api/v2
description: mDash hosted production API
security:
- bearerAuth: []
tags:
- name: Devices
description: Device registration, updates, RPC, and OTA
paths:
/devices:
get:
operationId: listDevices
summary: List all registered devices
description: Retrieve all devices registered to the authenticated account.
tags:
- Devices
responses:
'200':
description: List of registered devices
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Device'
'401':
description: Missing or invalid bearer token
post:
operationId: registerDevice
summary: Register a new device
description: Register a new device and receive its device credentials.
tags:
- Devices
responses:
'200':
description: Registered device
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
'401':
description: Missing or invalid bearer token
/devices/{id}:
post:
operationId: updateDevice
summary: Change device properties
description: Update one or more device properties. Any key is optional.
tags:
- Devices
parameters:
- $ref: '#/components/parameters/DeviceId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceUpdate'
responses:
'200':
description: Updated device
'401':
description: Missing or invalid bearer token
delete:
operationId: deleteDevice
summary: Delete a device
description: Remove a device from the account.
tags:
- Devices
parameters:
- $ref: '#/components/parameters/DeviceId'
responses:
'200':
description: Device deleted
'401':
description: Missing or invalid bearer token
/devices/{id}/rpc/{func}:
post:
operationId: callDeviceRpc
summary: Call a device RPC function
description: 'Invoke an RPC function on the device. The request body is any valid JSON
expected by the target function (e.g. `{"pin": 2}` for `GPIO.Toggle`).
'
tags:
- Devices
parameters:
- $ref: '#/components/parameters/DeviceId'
- name: func
in: path
required: true
description: RPC function name (e.g. GPIO.Toggle)
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: RPC result (function-dependent JSON)
'401':
description: Missing or invalid bearer token
/devices/{id}/ota:
post:
operationId: deviceOta
summary: Perform a device OTA update
description: Upload a firmware .zip file to perform an over-the-air update.
tags:
- Devices
parameters:
- $ref: '#/components/parameters/DeviceId'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: Firmware .zip file
responses:
'200':
description: OTA accepted
'401':
description: Missing or invalid bearer token
components:
schemas:
DeviceUpdate:
type: object
description: Mutable device properties. All keys optional.
properties:
name:
type: string
shared_with:
type: string
description: Comma-separated GitHub usernames
shadow:
type: object
additionalProperties: true
Device:
type: object
description: An IoT device registered with mDash.
properties:
id:
type: string
description: Device identifier
name:
type: string
description: Human-friendly device name
shared_with:
type: string
description: Comma-separated GitHub usernames the device is shared with
shadow:
type: object
description: Device shadow state
additionalProperties: true
parameters:
DeviceId:
name: id
in: path
required: true
description: Device identifier
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: mDash API key sent as an HTTP bearer token.