> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spirii.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Programmatic control of chargers and Dynamic Load Management circuits, and the async events Spirii emits.

The Energy Management Async API lets a registered **Actor** — an external entity granted control over a set of chargeboxes and/or circuits — programmatically manage Dynamic Load Management, and receive the resulting events and telemetry.

## Integration model

Actors interact with this API in two directions, over two different transports:

<CardGroup cols={2}>
  <Card title="Send (HTTP)" icon="arrow-up-right">
    Control commands go to the `controlRequest` channel — a single HTTP endpoint handling all command types. The call is fire-and-forget: it only confirms the request was authenticated and queued, not that it succeeded.
  </Card>

  <Card title="Receive (SNS)" icon="arrow-down-left">
    Results and telemetry are published by Spirii, per actor, to a set of AWS SNS topics created during actor registration: `controlResponse`, `connectorStatusUpdate`, `masterData`, `powerMeasurements`.
  </Card>
</CardGroup>

During registration/subscription, each Actor subscribes an endpoint to each topic it wants to receive — any valid SNS subscription protocol can be used, e.g. an AWS SQS queue, a HTTPS callback, AWS Lambda, etc. The subscription can be updated after the fact.

<Note>
  Concrete server addresses and queue ARNs are provisioned during actor onboarding and communicated to each Actor separately; they are not part of this reference.
</Note>

Only the actor-control channels are covered here.

## Full specification

<Card title="Download the AsyncAPI spec" icon="download" href="https://docs.spirii.com/openapi/smart-charging/asyncapi.yaml">
  The complete AsyncAPI 3.0 document backing this reference, in YAML — every channel, message schema, and example shown here in one file.
</Card>
