3. Sites

Enrol a site in a proposition.

This is the commitment point — it activates the proposition for the site.

Idempotent: if the site is already enrolled, returns already_enrolled without making changes.

A 200 response always means the site is enrolled; status only distinguishes a new enrolment from an existing one. Any failure returns an HTTP error and leaves the site unenrolled, so fix the cause and call again.

If the site previously withdrew from this proposition (for example via /unenrol), returns 422 with detail.code set to previously_withdrew. Set override_withdrawal to true to re-enrol; this is the recommended default for user-initiated re-enrolment.

post/entities/site/{site_id}/enrol

Request

  • Base URL
    https://api-sandbox.axle.energy
  • URL
    https://api-sandbox.axle.energy/entities/site/{site_id}/enrol
  • Auth
    OAuth 2
    Password
    Token URL: auth/token-form

Path parameters

site_idstring uuid required

Request body

proposition'limited_pause' | 'full_asset_schedule_control' | 'price_curve' required

Proposition to enrol for

override_withdrawalboolean

Set to true to re-enrol regardless of previous withdrawals. If this is a user-initated action, overriding previous withdrawals is recommended.

gave_boundary_meter_consent_atstring date-time

Optional timezone-aware ISO 8601 timestamp recording when the household gave boundary meter consent. If provided, overwrites any existing meter consent timestamp on the site.

Example request

{
  "proposition": "limited_pause"
}

Response

Successfully enrolled or already enrolled

site_idstring uuid required

ID of the enrolled site

status'enrolled' | 'already_enrolled' required

Outcome of the enrolment attempt. Both enrolled and already_enrolled indicate success.

Example response

{
  "site_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "enrolled"
}

Changes

    • info

      added the new price_curve enum value to the request property

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the media type application/json for the response with the status

    • info

      added the non-success response with the status