Axle Energy 4. Assets API

Register your assets with Axle

Operations 18

GET /entities/asset Get Assets #
POST /entities/asset Create Asset #
GET /entities/asset/{asset_id} Get Asset #
DELETE /entities/asset/{asset_id} Delete Asset #
PATCH /entities/asset/{asset_id} Update Asset #
GET /entities/asset/external-id/{external_id} Get Asset By External Id #
POST /entities/asset/{asset_id}/callback/{event_id} Event Handling Status Update #
POST /entities/asset/{asset_id}/event Asset Event #
POST /entities/asset/{asset_id}/event/plug-in Asset Plug In Event #
POST /entities/asset/{asset_id}/event/plug-out Asset Plug Out Event #
POST /entities/asset/{asset_id}/event/intent Asset Intent Update Event #
POST /entities/asset/{asset_id}/event/charge-now Asset Charge Now Event #
POST /entities/asset/{asset_id}/event/charge-now-deleted Asset Charge Now Deleted Event #
POST /entities/asset/{asset_id}/event/tariff-update Asset Tariff Update Event #
GET /entities/asset/{asset_id}/intent Get Latest Intent #
GET /entities/asset/{asset_id}/battery-schedule Get Battery Schedule #
POST /entities/asset/{asset_id}/event/plug-in-schedule Asset Plug In Schedule Event #
GET /entities/asset/{asset_id}/price-curve Get Price Curve #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/axle-energy-4-assets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

axle-energy-4-assets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Axle 1. Authentication 4. Assets API
  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.axle.energy
tags:
- name: 4. Assets
  description: Register your assets with Axle
paths:
  /entities/asset:
    get:
      tags:
      - 4. Assets
      summary: Get Assets
      description: 'Get all assets with pagination.


        Returns a page of assets with the total count and the requested subset of asset records. Use the limit and offset parameters to navigate through pages of results.'
      operationId: get_assets_entities_asset_get
      parameters:
      - description: Maximum number of assets to return (1-5000)
        required: false
        schema:
          type: integer
          maximum: 5000.0
          minimum: 1.0
          title: Limit
          description: Maximum number of assets to return (1-5000)
          default: 10
        name: limit
        in: query
      - description: Number of assets to skip for pagination
        required: false
        schema:
          type: integer
          minimum: 0.0
          title: Offset
          description: Number of assets to skip for pagination
          default: 0
        name: offset
        in: query
      responses:
        '200':
          description: Page of assets with pagination info
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponsePage'
        '500':
          description: Server error while retrieving assets
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
    post:
      tags:
      - 4. Assets
      summary: Create Asset
      description: 'Create a new asset.


        The asset must be associated with an existing site. Returns the created asset details including the assigned UUID.'
      operationId: create_asset_entities_asset_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetRequest'
        required: true
      responses:
        '200':
          description: Successfully created asset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponse'
        '400':
          description: Invalid request
        '404':
          description: Referenced site not found
        '409':
          description: Asset already exists
        '500':
          description: Server error while creating asset
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}:
    get:
      tags:
      - 4. Assets
      summary: Get Asset
      description: 'Get a specific asset by its Axle UUID.


        Returns the asset details if it exists.'
      operationId: get_asset_entities_asset__asset_id__get
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      responses:
        '200':
          description: Asset details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponse'
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while retrieving asset
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
    delete:
      tags:
      - 4. Assets
      summary: Delete Asset
      description: 'Delete an asset by its Axle UUID.


        The asset will be deleted if it exists. Returns a confirmation message upon successful deletion.'
      operationId: delete_asset_entities_asset__asset_id__delete
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      responses:
        '204':
          description: Asset successfully deleted
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while deleting asset
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
    patch:
      tags:
      - 4. Assets
      summary: Update Asset
      description: 'Update an existing asset''s properties, asset model, and/or installation date.


        All fields are optional. Returns the updated asset details.'
      operationId: update_asset_entities_asset__asset_id__patch
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetUpdateRequest'
        required: true
      responses:
        '200':
          description: Successfully updated asset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponse'
        '400':
          description: Invalid request data
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while updating asset
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/external-id/{external_id}:
    get:
      tags:
      - 4. Assets
      summary: Get Asset By External Id
      description: 'Get a specific asset by its external ID (vendor-specific identifier).


        Returns the asset details if it exists. This is useful for integrations where the external system ID is known but not the Axle UUID.'
      operationId: get_asset_by_external_id_entities_asset_external_id__external_id__get
      parameters:
      - required: true
        schema:
          type: string
          title: External Id
        name: external_id
        in: path
      responses:
        '200':
          description: Asset details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponse'
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while retrieving asset
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/callback/{event_id}:
    post:
      tags:
      - 4. Assets
      summary: Event Handling Status Update
      description: 'Provide an update on the handling of a given event by a given asset.


        This endpoint allows asset controllers to report back the status of event handling. The `asset_id` can be either the Axle UUID or an external ID if `asset_id_is_external` is true.


        Note: This will not work for non-UUID external asset IDs.'
      operationId: event_handling_status_update_entities_asset__asset_id__callback__event_id__post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      - required: true
        schema:
          type: string
          title: Event Id
        name: event_id
        in: path
      - required: false
        schema:
          type: boolean
          title: Asset Id Is External
          default: false
        name: asset_id_is_external
        in: query
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventResponse'
        required: true
      responses:
        '200':
          description: Status update successfully recorded
          content:
            application/json:
              schema: {}
        '404':
          description: Asset not found or not authorized to access
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event:
    post:
      tags:
      - 4. Assets
      summary: Asset Event
      description: 'Send notification of an event happening on an asset.


        This endpoint allows reporting various events related to an asset, such as:

        - Plug-in/plug-out events

        - Updates to charging intent

        - Charge now events


        If a tariff is included, it must comply with the OSM opening hours standard (https://wiki.openstreetmap.org/wiki/Key:opening_hours) for off-peak times and have a valid timezone, or a 400 error will be returned.'
      operationId: asset_event_entities_asset__asset_id__event_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetEventRequest'
        required: true
      responses:
        '200':
          description: Event successfully processed
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid event data
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/plug-in:
    post:
      tags:
      - 4. Assets
      summary: Asset Plug In Event
      description: 'Send notification of a car being plugged in.


        Tariff, vehicle and intent information may be optionally provided.

        If a tariff is included, it must comply with the OSM opening hours standard (https://wiki.openstreetmap.org/wiki/Key:opening_hours) for off-peak times and have a valid timezone, or a 400 error will be returned.'
      operationId: asset_plug_in_event_entities_asset__asset_id__event_plug_in_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlugInEventRequest'
        required: true
      responses:
        '200':
          description: Plug-in event successfully processed
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid tariff format or timezone
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/plug-out:
    post:
      tags:
      - 4. Assets
      summary: Asset Plug Out Event
      description: Send notification of a car being unplugged from an asset.
      operationId: asset_plug_out_event_entities_asset__asset_id__event_plug_out_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlugOutEventRequest'
        required: true
      responses:
        '200':
          description: Plug-out event successfully processed
          content:
            application/json:
              schema: {}
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/intent:
    post:
      tags:
      - 4. Assets
      summary: Asset Intent Update Event
      description: Send notification of an intent being updated on an asset.
      operationId: asset_intent_update_event_entities_asset__asset_id__event_intent_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntentEventRequest'
        required: true
      responses:
        '200':
          description: Intent event successfully processed
          content:
            application/json:
              schema: {}
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/charge-now:
    post:
      tags:
      - 4. Assets
      summary: Asset Charge Now Event
      description: Send notification of a charge now request for an asset.
      operationId: asset_charge_now_event_entities_asset__asset_id__event_charge_now_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeNowEventRequest'
        required: true
      responses:
        '200':
          description: Charge now event successfully processed
          content:
            application/json:
              schema: {}
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/charge-now-deleted:
    post:
      tags:
      - 4. Assets
      summary: Asset Charge Now Deleted Event
      description: Send notification of a charge now request being deleted for an asset.
      operationId: asset_charge_now_deleted_event_entities_asset__asset_id__event_charge_now_deleted_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeNowDeletedEventRequest'
        required: true
      responses:
        '200':
          description: Charge now deleted event successfully processed
          content:
            application/json:
              schema: {}
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/tariff-update:
    post:
      tags:
      - 4. Assets
      summary: Asset Tariff Update Event
      description: 'Send notification of a tariff update for an asset.


        The `off_peak_times` field must comply with the OSM opening hours standard (https://wiki.openstreetmap.org/wiki/Key:opening_hours) and have a valid timezone, or a 400 error will be returned.


        The same off-peak times apply every day, day-of-week selectors are not supported. Use `,` to separate multiple time ranges. Common examples:

        - Same-day off-peak (e.g. midnight to 7am): `00:00-07:00`

        - Overnight off-peak (e.g. 11:30pm to 5:30am): `00:00-05:30, 23:30-24:00`'
      operationId: asset_tariff_update_event_entities_asset__asset_id__event_tariff_update_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TariffUpdateEventRequest'
        required: true
      responses:
        '200':
          description: Tariff update event successfully processed
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid tariff format or timezone
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while processing event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/intent:
    get:
      tags:
      - 4. Assets
      summary: Get Latest Intent
      description: Get the last recorded intent.
      operationId: get_latest_intent_entities_asset__asset_id__intent_get
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      responses:
        '200':
          description: Last intent successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntentResponse'
        '404':
          description: Intent not found or not authorized to access
        '500':
          description: Server error while retrieving event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/battery-schedule:
    get:
      tags:
      - 4. Assets
      summary: Get Battery Schedule
      description: Get the active battery schedule.
      operationId: get_battery_schedule_entities_asset__asset_id__battery_schedule_get
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      responses:
        '200':
          description: Battery schedule successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatteryScheduleResponse'
        '403':
          description: Permission denied
        '404':
          description: Battery not found or not authorized to access
        '500':
          description: Server error while retrieving event
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/event/plug-in-schedule:
    post:
      tags:
      - 4. Assets
      summary: Asset Plug In Schedule Event
      description: Submit a charging schedule and receive a modified schedule.
      operationId: asset_plug_in_schedule_event_entities_asset__asset_id__event_plug_in_schedule_post
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlugInScheduleEventRequest'
        required: true
      responses:
        '200':
          description: Modified charging schedule successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlugInScheduleEventResponse'
        '403':
          description: Site lacking required limited_pause dispatch consent
        '404':
          description: Charger not found or not authorized to access
        '500':
          description: Server error while scheduling charging
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /entities/asset/{asset_id}/price-curve:
    get:
      tags:
      - 4. Assets
      summary: Get Price Curve
      description: Half-hourly data of prices per MWh of flexed energy for the asset. Prices are returned from the current Settlement Period until 23:00 UK time on the same day or next day. Next day prices are available from 14:00 UK time.
      operationId: get_price_curve_entities_asset__asset_id__price_curve_get
      parameters:
      - required: true
        schema:
          type: string
          format: uuid
          title: Asset Id
        name: asset_id
        in: path
      responses:
        '200':
          description: Price curve successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceCurveResponse'
        '403':
          description: Permission denied
        '404':
          description: Asset not found or not authorized to access
        '500':
          description: Server error while retrieving price curve
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
components:
  schemas:
    BatteryScheduleStep:
      properties:
        start_timestamp:
          type: string
          format: date-time
          title: Start Timestamp
          description: Start timestamp of the schedule step, tz-aware
        end_timestamp:
          type: string
          format: date-time
          title: End Timestamp
          description: End timestamp of the schedule step, tz-aware
        action:
          allOf:
          - $ref: '#/components/schemas/BatteryScheduleAction'
          description: Action to be taken during this schedule step
        allow_deviation:
          type: boolean
          title: Allow Deviation
          description: Whether the battery is allowed to deviate from the schedule
      type: object
      required:
      - start_timestamp
      - end_timestamp
      - action
      - allow_deviation
      title: BatteryScheduleStep
    BatteryScheduleResponse:
      properties:
        schedule_steps:
          items:
            $ref: '#/components/schemas/BatteryScheduleStep'
          type: array
          title: Schedule Steps
          description: List of schedule steps for the asset
        schedule_last_updated:
          type: string
          format: date-time
          title: Schedule Last Updated
          description: When the schedule was last recalculated
      type: object
      required:
      - schedule_steps
      - schedule_last_updated
      title: BatteryScheduleResponse
    PlugInScheduleEventRequest:
      properties:
        charging_schedule:
          items:
            $ref: '#/components/schemas/ChargingScheduleBlock'
          type: array
          title: Charging Schedule
      type: object
      required:
      - charging_schedule
      title: PlugInScheduleEventRequest
      description: 'This is the original charging schedule which will be modified and returned to the client in the response.

        Used in WSLite integration model.'
    CreatableAssetType:
      type: string
      enum:
      - charger
      - battery
      - heat pump
      - electric_vehicle
      - hot water tank
      title: CreatableAssetType
      description: Asset types that can be created through the API.
    ChargeNowEventRequest:
      properties:
        end_at:
          type: string
          format: date-time
          title: End At
          description: End time for the charge now request.
      type: object
      required:
      - end_at
      title: ChargeNowEventRequest
      description: Request model for a user's charge now request.
    IntentResponse:
      properties:
        intent:
          $ref: '#/components/schemas/Intent'
        received_at:
          type: string
          format: date-time
          title: Received At
      type: object
      required:
      - intent
      - received_at
      title: IntentResponse
      description: An intent and the time it was received.
    AssetType:
      type: string
      enum:
      - boundary meter
      - charger
      - battery
      - heat pump
      - hot water tank
      - frequency meter
      - electric_vehicle
      - pv inverter
      title: AssetType
      description: An enumeration.
    Tariff:
      properties:
        off_peak_times:
          type: string
          title: Off Peak Times
        timezone:
          type: string
          title: Timezone
        tariff_type:
          $ref: '#/components/schemas/TariffType'
      type: object
      required:
      - off_peak_times
      - timezone
      title: Tariff
    HalfHourlyPrice:
      properties:
        start_timestamp:
          type: string
          format: date-time
          title: Start Timestamp
        price_gbp_per_mwh:
          type: number
          title: Price Gbp Per Mwh
          description: Price in £/MWh (2dp)
      type: object
      required:
      - start_timestamp
      - price_gbp_per_mwh
      title: HalfHourlyPrice
      description: 'Represents the market price for a given half-hour period.


        If the asset is not participating in the market for that period, price_gbp_per_mwh will be None.'
    EventResponse:
      properties:
        timestamp:
          type: string
          format: date-time
          title: Timestamp
          description: Timestamp for the response (UTC)
        status:
          $ref: '#/components/schemas/EventStatus'
      type: object
      required:
      - timestamp
      - status
      title: EventResponse
      description: Response for an asset event status update.
    AssetProperties:
      properties:
        power_kw:
          type: number
          minimum: 0.0
          title: Power Kw
          description: Power rating in kW
        capacity_kwh:
          type: number
          minimum: 0.0
          title: Capacity Kwh
          description: Capacity in kWh
      type: object
      title: AssetProperties
      description: Optional properties for an asset.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    IntentEventRequest:
      properties:
        intent:
          allOf:
          - $ref: '#/components/schemas/Intent'
          title: Intent
          description: Intent to charge the vehicle.
      type: object
      required:
      - intent
      title: IntentEventRequest
      description: This event should be triggered when the end user updates their charging preferences.
    AssetResponsePage:
      properties:
        assets:
          items:
            $ref: '#/components/schemas/AssetResponse'
          type: array
          title: Assets
          description: List of assets for the current page
        total_num_assets:
          type: integer
          title: Total Num Assets
          description: Total number of assets available
        total_num_pages:
          type: integer
          title: Total Num Pages
          description: Total number of pages available
        page_number:
          type: integer
          title: Page Number
          description: Current page number (1-based)
      type: object
      required:
      - assets
      - total_num_assets
      - total_num_pages
      - page_number
      title: AssetResponsePage
      description: Paginated response for asset listings.
    AssetEventType:
      type: string
      enum:
      - plug_in
      - plug_out
      - intent_update
      - charge_now
      - charge_now_deleted
      title: AssetEventType
      description: An enumeration.
    AssetEventRequest:
      properties:
        event_type:
          $ref: '#/components/schemas/AssetEventType'
        intent:
          allOf:
          - $ref: '#/components/schemas/Intent'
          title: Intent
          description: Intent to charge the vehicle. This should only be included for "plug_in" and "intent_update" events
        vehicle:
          allOf:
          - $ref: '#/components/schemas/Vehicle'
          title: Vehicle
          description: Vehicle information. This should only be included for "plug_in" and "intent_update" events
        tariff:
          allOf:
          - $ref: '#/components/schemas/Tariff'
          title: Tariff
          description: Tariff information. This should only be included for "plug_in" and "intent_update" events
        end_at:
          type: string
          format: date-time
          title: End At
          description: End time for the charge. This should only be included for "charge_now" events
      type: object
      required:
      - event_type
      title: AssetEventRequest
    EventStatus:
      type: string
      enum:
      - RECEIVED
      - ACCEPTED
      - REJECTED
      - FAILED
      - EXECUTED
      title: EventStatus
      description: 'Status values for asset event handling.


        - RECEIVED: Event was received by the system

        - ACCEPTED: Event was accepted for processing

        - REJECTED: Event was rejected (invalid or not applicable)

        - FAILED: Event processing failed

        - EXECUTED: Event was successfully executed'
    PlugInEventRequest:
      properties:
        intent:
          allOf:
          - $ref: '#/components/schemas/Intent'
          title: Intent
          description: Intent to charge the vehicle.
        vehicle:
          allOf:
          - $ref: '#/components/schemas/Vehicle'
          title: Vehicle
          description: Vehicle information.
        tariff:
          allOf:
          - $ref: '#/components/schemas/Tariff'
          title: Tariff
          description: Tariff information.
      type: object
      title: PlugInEventRequest
      description: 'A minimal plug-in event requires no data.

        Optionally `intent`, `tariff` and `vehicle` information can be supplied here too.'
    AssetRequest:
      properties:
        external_id:
          type: string
          title: External Id
          description: Vend

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/axle-energy/refs/heads/main/openapi/axle-energy-4-assets-api-openapi.yml