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