---
title: "Initialise Site"
method: POST
path: "/entities/site/initialise"
tags: ["3. Sites"]
---

# Initialise Site

`POST /entities/site/initialise`

Initialise a site with one or more assets.

This endpoint upserts the site and assets (creating them if they don't exist, or filling in missing fields if they do), and returns eligibility information.

**No enrollment side effects**: Use the `/enrol` endpoint to commit to enrollment.

## Request body

- InitialiseRequest — Request model for initialising a site with one or more assets. Upserts the site and assets, returning eligibility information. No enrollment side effects (no dispatch consent, no bonus, no email).
  - `site` SiteRequest, required — Request model for creating a new site.
    - `mpan` string, required — Meter Point Administration Number
    - `postcode` string, required — UK postcode for the site
    - `street_address` string — Street address for the site
    - `email` string — Email address for the site. Include to enable 2FA for payment withdrawals.
    - `gave_boundary_meter_consent_at` string, date-time — Timezone-aware ISO 8601 timestamp (e.g. '2026-01-01T12:34:56Z') indicating when the household gave consent for Axle to access readings from their boundary meter, if consent was given.
  - `assets` OnboardingAssetRequest[], required — One or more assets to register at the site
    - `external_id` string, required — Vendor-specific identifier for the asset
    - `type` 'charger' | 'battery' | 'heat pump' | 'electric_vehicle' | 'hot water tank', required — Asset types that can be created through the API.
    - `properties` AssetProperties — Optional properties for an asset.
      - `power_kw` number — Power rating in kW
      - `capacity_kwh` number — Capacity in kWh
    - `asset_model` string — Name of the AssetModel to assign (looked up by name). Required for CoP11 eligibility.
    - `installation_date` string, date — Date when the asset was installed. Required alongside asset_model for CoP11 eligibility.

## Response `200`

Successfully initialised site and assets

- InitialiseResponse — Response model for the initialise endpoint.
  - `site` InitialiseSiteResult, required — Result metadata for a site after upsert.
    - `site_id` string, uuid, required — Axle's internal UUID for the site
    - `site_created` boolean, required — True if the site was newly created, False if it was upserted
    - `fields_updated` string[] — List of site fields that were updated on upsert
    - `warnings` string[] — Site-level warnings generated during initialisation
  - `assets` InitialiseAssetResult[], required — Per-asset result metadata
    - `asset_id` string, uuid, required — Axle's internal UUID for the asset
    - `external_id` string, required — Vendor-specific identifier for the asset
    - `asset_created` boolean, required — True if the asset was newly created, False if it was upserted
    - `fields_updated` string[] — List of fields that were updated on upsert
    - `warnings` string[] — Per-asset warnings generated during initialisation
  - `eligibility` SiteEligibilityDetail, required — Eligibility detail for a site's proposition eligibility check.
    - `eligible_propositions` string[]
    - `site_id` string, uuid, required
    - `site_properties` SiteProperties, required — Site-level properties relevant to eligibility evaluation.
      - `is_half_hourly_settled` boolean, required
      - `has_meter_consent` boolean, required
    - `assets` AssetEligibilityDetail[]
      - `asset_id` string, uuid, required
      - `external_id` string, required
      - `propositions` PropositionEligibility[]
        - `proposition` 'limited_pause' | 'full_asset_schedule_control', required
        - `is_eligible` boolean, required
        - `issues` EligibilityCode[]

## Other responses

- `400` — Invalid request (e.g. missing boundary meter consent T&Cs)
- `404` — Referenced entity not found
- `409` — Asset conflict (e.g. asset type mismatch or asset registered to a different site)
- `422` — Validation Error
- `500` — Server error during initialisation

---

[API](https://skmtc.dev/axle/apis/axle-api-docs.md) · [All operations](https://skmtc.dev/axle/apis/axle-api-docs/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/axle/axle-api-docs/revisions/75be7f9a952f/schema)
