Eaton Device Commands API

Per-device and batch device-control commands.

OpenAPI Specification

eaton-device-commands-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Eaton Smart Breaker Authorization Device Commands API
  description: 'REST API (formerly the Energy Management / EM API) for Eaton AbleEdge Smart Breakers and Eaton Green Motion EV Smart Breaker Chargers. Lets developers commission, monitor, and control devices, model panels and locations, run batch commands, and pull real-time and historical energy telemetry. Devices are typed via `hardwareType` — `emcb` for standard smart breakers, `ev-emcb` for EV chargers.


    Authentication: every request must include `Em-Api-Subscription-Key: {SMART_BREAKER_API_KEY}` and `Authorization: Bearer {AUTH_TOKEN}`. Tokens are obtained from the OAuth2 token endpoint via Client ID + secret (Base64-encoded Basic auth) and are valid for 1 hour.


    This OpenAPI spec is reconstructed from the public Eaton developer-portal documentation (https://api.em.eaton.com/docs and https://api.em.eaton.com/preview/docs) and the AbleEdge Smart Breaker developer portal (https://portal.em.eaton.com/). It is intended for cataloging and capability mapping in API Evangelist tooling, not as a substitute for the authoritative provider spec.

    '
  version: 1.0.0
  contact:
    name: Eaton AbleEdge Developer Portal
    url: https://portal.em.eaton.com/
  license:
    name: Eaton Brightlayer Experience Hub Terms
    url: https://www.eaton.com/us/en-us/company/policies-and-statements/brightlayer-experience-hub-terms-and-conditions.html
  x-source: https://api.em.eaton.com/docs
  x-spec-status: reconstructed-from-public-docs
servers:
- url: https://api.em.eaton.com
  description: Production
- url: https://api.em.eaton.com/preview
  description: Preview (forward-looking, opt-in)
security:
- OAuth2: []
  SubscriptionKey: []
tags:
- name: Device Commands
  description: Per-device and batch device-control commands.
paths:
  /api/v1/devices/{deviceId}/commands:
    parameters:
    - $ref: '#/components/parameters/DeviceId'
    post:
      tags:
      - Device Commands
      summary: Send Device Command
      description: Send an on/off/cycle command to a single device.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceCommand'
      responses:
        '202':
          description: Command accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommandReceipt'
  /api/v1/deviceBatchCommands:
    post:
      tags:
      - Device Commands
      summary: Send Batch Device Commands
      description: Send a single command to many devices in one request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchDeviceCommand'
      responses:
        '202':
          description: Batch accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchCommandReceipt'
components:
  schemas:
    BatchCommandReceipt:
      type: object
      properties:
        batchId:
          type: string
          format: uuid
        receipts:
          type: array
          items:
            $ref: '#/components/schemas/CommandReceipt'
    CommandReceipt:
      type: object
      properties:
        commandId:
          type: string
          format: uuid
        status:
          type: string
          enum:
          - accepted
          - queued
          - executing
          - completed
          - failed
        createdAt:
          type: string
          format: date-time
    BatchDeviceCommand:
      type: object
      required:
      - deviceIds
      - command
      properties:
        deviceIds:
          type: array
          items:
            type: string
            format: uuid
        command:
          $ref: '#/components/schemas/DeviceCommand'
    DeviceCommand:
      type: object
      required:
      - command
      properties:
        command:
          type: string
          enum:
          - open
          - close
          - cycle
        reason:
          type: string
  parameters:
    DeviceId:
      in: path
      name: deviceId
      required: true
      schema:
        type: string
        format: uuid
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.em.eaton.com/oauth2/token
          scopes: {}
    SubscriptionKey:
      type: apiKey
      in: header
      name: Em-Api-Subscription-Key