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

# Offboard site and assets

> Offboard a site and all its associated assets in a single operation.

Unenrols from every proposition, and deletes the site and assets in accordance with data retention policies.

Use when the user is leaving entirely — for example, they've moved house, or your support team is removing them. Payments can no longer be accessed afterwards.

If the user is only opting out of one proposition (e.g. toggling Flex Lite off in your app), use `unenrol` instead — it preserves the site and any other propositions they're enrolled in.



## OpenAPI

````yaml POST /entities/site/{site_id}/offboard-site-and-assets
openapi: 3.1.0
info:
  title: Axle API Docs
  description: >-
    For full documentation please see our official docs at <a
    href='http://docs.axle.energy'>docs.axle.energy</a>
  version: 1.4.6
servers:
  - url: https://api-sandbox.axle.energy
security: []
tags:
  - name: 1. Authentication
    description: Authenticate yourself with the Axle API
  - name: 2. Meters
    description: Find key info about your sites
  - name: 3. Sites
    description: Register your sites with Axle; configure market participation
  - name: 4. Assets
    description: Register your assets with Axle
  - name: 5. Data
    description: Send asset metrics to Axle, for analysis and optimisation purposes
  - name: 6. Rewards
    description: >-
      Determine how much your users have earned by participating with Axle;
      allow balance withdrawal
  - name: 7. Validation
    description: Validate structured data against Axle's rules
  - name: 8. Examples
    description: Get example data for testing
paths:
  /entities/site/{site_id}/offboard-site-and-assets:
    post:
      tags:
        - 3. Sites
      summary: Offboard Site And Assets
      description: >-
        Offboard a site and all its associated assets in a single operation.


        Unenrols from every proposition, and deletes the site and assets in
        accordance with data retention policies.


        Use when the user is leaving entirely — for example, they've moved
        house, or your support team is removing them. Payments can no longer be
        accessed afterwards.


        If the user is only opting out of one proposition (e.g. toggling Flex
        Lite off in your app), use `unenrol` instead — it preserves the site and
        any other propositions they're enrolled in.
      operationId: >-
        offboard_site_and_assets_entities_site__site_id__offboard_site_and_assets_post
      parameters:
        - name: site_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Site Id
      responses:
        '200':
          description: Successfully offboarded site and asset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingResponse'
        '400':
          description: Invalid request
        '404':
          description: Site not found or not authorized to access
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Server error during offboarding
      security:
        - OAuth2PasswordBearer: []
components:
  schemas:
    OnboardingResponse:
      properties:
        site:
          allOf:
            - $ref: '#/components/schemas/SiteResponse'
          description: Created site details
        asset:
          allOf:
            - $ref: '#/components/schemas/AssetResponse'
          description: Created asset details
      type: object
      required:
        - site
        - asset
      title: OnboardingResponse
      description: Response model for onboarding operation.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SiteResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Axle's internal UUID for the site
        mpan:
          type: string
          title: Mpan
          description: Meter Point Administration Number for the site
        postcode:
          type: string
          title: Postcode
          description: UK postcode for the site
        address:
          type: string
          title: Address
          description: Full address for the site
        asset_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Asset Ids
          description: List of asset IDs associated with this site
          default: []
        markets:
          items:
            $ref: '#/components/schemas/MarketResponse'
          type: array
          uniqueItems: true
          title: Markets
          description: Markets the site is participating in
        dispatch_methods:
          items:
            $ref: '#/components/schemas/DispatchMethodResponse'
          type: array
          uniqueItems: true
          title: Dispatch Methods
          description: Dispatch methods allowed for the site
        tariff:
          allOf:
            - $ref: '#/components/schemas/TariffResponse'
          description: Tariff information for the site
        gave_boundary_meter_consent_at:
          type: string
          format: date-time
          title: Gave Boundary Meter Consent At
          description: Timestamp when boundary meter consent was given
      type: object
      required:
        - id
      title: SiteResponse
      description: Response model for site information.
    AssetResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Axle's internal UUID for the asset
        external_id:
          type: string
          title: External Id
          description: Vendor-specific identifier for the asset
        type:
          allOf:
            - $ref: '#/components/schemas/AssetType'
          description: Type of asset
        site_id:
          type: string
          format: uuid
          title: Site Id
          description: ID of the site where the asset is located
        properties:
          allOf:
            - $ref: '#/components/schemas/AssetPropertiesResponse'
          description: Optional asset properties
        needs_reauthorisation:
          type: boolean
          title: Needs Reauthorisation
          description: >-
            Whether the owner must re-authorise their device connection to keep
            taking part in events
          default: false
      type: object
      required:
        - id
        - external_id
        - type
        - site_id
      title: AssetResponse
      description: Response model for asset information.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    MarketResponse:
      type: string
      enum:
        - cm
        - dfs
        - dno
        - lcm
        - sffr
        - wholesale
      title: MarketResponse
      description: |-
        Market types available for participation.

        - CM: Capacity Market
        - DFS: Dynamic Frequency Service
        - DNO: Distribution Network Operator flexibility services
        - LCM: Local Capacity Market
        - SFFR: Static Firm Frequency Response
        - WHOLESALE: Wholesale energy market
    DispatchMethodResponse:
      type: string
      enum:
        - cm_infrequent_dispatch
        - full_asset_schedule_control
        - limited_pause
        - price_curve
        - vpp_limited_control
      title: DispatchMethodResponse
      description: Axle propositions that a site can enrol into.
    TariffResponse:
      properties:
        tariff_type:
          allOf:
            - $ref: '#/components/schemas/TariffType'
          description: Type of tariff
        tariff_cheap_start_time:
          type: string
          format: time
          title: Tariff Cheap Start Time
          description: Start time for off-peak/cheap rate period
        tariff_cheap_end_time:
          type: string
          format: time
          title: Tariff Cheap End Time
          description: End time for off-peak/cheap rate period
      type: object
      title: TariffResponse
      description: Response model for tariff information.
    AssetType:
      type: string
      enum:
        - boundary meter
        - charger
        - battery
        - heat pump
        - hot water tank
        - frequency meter
        - electric_vehicle
        - pv inverter
      title: AssetType
    AssetPropertiesResponse:
      properties:
        power_kw:
          type: number
          minimum: 0
          title: Power Kw
          description: Power rating in kW
        capacity_kwh:
          type: number
          minimum: 0
          title: Capacity Kwh
          description: Capacity in kWh
        custom_dispatch_power_kw:
          type: number
          minimum: 0
          title: Custom Dispatch Power Kw
          description: >-
            User-chosen dispatch power override, where the manufacturer supports
            one
      type: object
      title: AssetPropertiesResponse
      description: >-
        Asset properties as returned in API responses — adds fields derived from
        stored data that

        aren't valid to set directly via the write endpoints.
    TariffType:
      type: string
      enum:
        - single_rate
        - dual_rate
        - dynamic
        - smart
        - unknown
      title: TariffType
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: auth/token-form

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.