> ## 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:
        - required: true
          schema:
            type: string
            format: uuid
            title: Site Id
          name: site_id
          in: path
      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'
          title: Site
          description: Created site details
        asset:
          allOf:
            - $ref: '#/components/schemas/AssetResponse'
          title: Asset
          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
          description: Markets the site is participating in
        dispatch_methods:
          items:
            $ref: '#/components/schemas/DispatchMethodResponse'
          type: array
          uniqueItems: true
          description: Dispatch methods allowed for the site
        tariff:
          allOf:
            - $ref: '#/components/schemas/TariffResponse'
          title: Tariff
          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/AssetProperties'
          title: Properties
          description: Optional asset properties
      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
        - 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
      description: An enumeration.
    AssetProperties:
      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
      type: object
      title: AssetProperties
      description: Optional properties for an asset.
    TariffType:
      type: string
      enum:
        - single_rate
        - dual_rate
        - dynamic
        - smart
        - unknown
      title: TariffType
      description: An enumeration.
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: auth/token-form

````