ev.energy Vehicles API

Endpoints for interacting with vehicles.

Operations 38

GET /vehicles/{vehicle_id}/connectors Retrieve a vehicle's charging connectors #
PATCH /vehicles/{vehicle_id}/connectors Update a vehicle's charging connectors #
GET /vehicles/{vehicle_id}/state_of_charge Retrieve a vehicle's current state of charge #
PATCH /vehicles/{vehicle_id}/state_of_charge Update a vehicle's current state of charge #
GET /vehicles List vehicles #
POST /vehicles Create unintegrated vehicle #
GET /vehicles/{vehicle_id} Retrieve a vehicle #
PATCH /vehicles/{vehicle_id} Update a vehicle #
DELETE /vehicles/{vehicle_id} Remove a vehicle #
GET /vehicle_trims List vehicle trims #
POST /vehicle_trims Create a custom vehicle trim #
GET /vehicle_trims/{vehicle_trim_id} Retrieve a vehicle trim #
GET /vehicle_models List vehicle models #
POST /vehicle_models Create vehicle model #
GET /vehicle_models/{vehicle_model_id}/connectors List a vehicle model's regional connectors #
POST /vehicle_models/{vehicle_model_id}/connectors Add a regional connector to a vehicle model #
GET /vehicle_models/{vehicle_model_id}/connectors/{region} Retrieve a vehicle model's connector for a region #
PATCH /vehicle_models/{vehicle_model_id}/connectors/{region} Update a vehicle model's connector for a region #
GET /vehicle_models/{vehicle_model_id} Retrieve a vehicle model #
PATCH /vehicle_models/{vehicle_model_id} Update a vehicle model #
GET /vehicle_makes List vehicle makes #
GET /vehicle_makes/{vehicle_make_id} Retrieve a vehicle make #
GET /vehicles/{vehicle_id}/status_logs List status logs for a vehicle #
GET /vehicles/{vehicle_id}/status_logs/{sampled_at} Retrieve a specific status log for a vehicle #
GET /vehicles/{vehicle_id}/error_logs List API error logs for a vehicle #
GET /vehicles/{vehicle_id}/error_logs/{logged_at} Retrieve a specific API error log for a vehicle #
GET /vehicles/{vehicle_id}/location_logs List location logs for a vehicle #
GET /vehicles/{vehicle_id}/location_logs/{sampled_at} Retrieve a specific location log for a vehicle #
GET /vehicles/{vehicle_id}/command_logs List command logs for a vehicle #
GET /vehicles/{vehicle_id}/command_logs/{logged_at} Retrieve a specific command log for a vehicle #
GET /vehicles/{vehicle_id}/vpp_modes Get VPP modes for a vehicle #
GET /vehicle_onboarding Initiate vehicle onboarding #
POST /vehicle_onboarding/complete Complete vehicle onboarding #
POST /vehicle_onboarding/onboarding_link Send vehicle onboarding link #
GET /vehicle_compatibility/check Check vehicle model compatibility in a country #
POST /vehicle_waitlist Add user to the vehicle waitlist #
POST /vehicles/{vehicle_id}/reconnect Create reconnection URL #
POST /vehicles/{vehicle_id}/disconnect Disconnect a vehicle's integration #

Documentation

Specifications

Other Resources

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/ev-energy-vehicles-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

ev-energy-vehicles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ev.energy v2 Vehicles API
  version: '2.0'
  contact:
    email: developers@ev.energy
    url: developers.ev.energy
    name: ev.energy developers
  description: The official API for ev.energy, version 2.
  license:
    name: Proprietary
    url: https://ev.energy
  termsOfService: ''
servers:
- url: https://api.ev.energy/v2
  description: Live API for both production and sandbox requests.
  x-internal: false
- description: Staging server for internal testing only.
  url: https://api-staging.ev.energy/v2
  x-internal: true
security:
- oauth2: []
tags:
- name: Vehicles
  description: Endpoints for interacting with vehicles.
paths:
  /vehicles/{vehicle_id}/connectors:
    parameters:
    - $ref: '#/components/parameters/vehicle_id'
    get:
      summary: Retrieve a vehicle's charging connectors
      description: 'Retrieve the vehicle''s DC-fast charging connectors: its native plug and

        any adapters it carries. `native_connector` is the per-vehicle value,

        falling back to the vehicle model''s default when not overridden (both

        may be null when not yet known).'
      tags:
      - Vehicles
      responses:
        '200':
          description: Returns the vehicle's connector configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleConnectors'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicles-vehicle_id-connectors
      parameters:
      - $ref: '#/components/parameters/version-2'
      security:
      - oauth2:
        - vehicle:read
    patch:
      summary: Update a vehicle's charging connectors
      description: 'Update the vehicle''s connectors. The body is a partial map: only the

        keys you include are changed. Set `native_connector` to override the

        model default for this vehicle, or `null` to inherit it. `adaptors`

        replaces the adapter list (send `[]` to clear); adaptors must be

        distinct and must not include the native connector. `PATCH {}` is a

        valid no-op.'
      tags:
      - Vehicles
      responses:
        '200':
          description: Connectors updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleConnectors'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
        '400':
          $ref: '#/components/responses/Problem400UpdateVehicleConnectorsValidationFailed'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: patch-vehicles-vehicle_id-connectors
      security:
      - oauth2:
        - vehicle:write
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleConnectorsUpdate'
      parameters:
      - $ref: '#/components/parameters/version-2'
  /vehicles/{vehicle_id}/state_of_charge:
    parameters:
    - $ref: '#/components/parameters/vehicle_id'
    get:
      summary: Retrieve a vehicle's current state of charge
      description: 'Retrieve the vehicle''s current battery percentage used to seed route

        plans. `source` indicates where the value came from: `MANUAL` when the

        driver entered it, or `CONNECTED` when it comes from the vehicle''s

        telemetry. All fields are null when no value is available.'
      tags:
      - Vehicles
      responses:
        '200':
          description: Returns the vehicle's current state of charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleStateOfCharge'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicles-vehicle_id-state_of_charge
      parameters:
      - $ref: '#/components/parameters/version-2'
      security:
      - oauth2:
        - vehicle:read
    patch:
      summary: Update a vehicle's current state of charge
      description: 'Set the vehicle''s current battery percentage (Mode-1 manual entry). The

        body is a partial map: `PATCH {}` is a valid no-op. Send

        `state_of_charge_percentage: null` to clear it. `source` is read-only.'
      tags:
      - Vehicles
      responses:
        '200':
          description: State of charge updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleStateOfCharge'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
        '400':
          $ref: '#/components/responses/Problem400UpdateVehicleStateOfChargeValidationFailed'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: patch-vehicles-vehicle_id-state_of_charge
      security:
      - oauth2:
        - vehicle:write
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleStateOfChargeUpdate'
      parameters:
      - $ref: '#/components/parameters/version-2'
  /vehicles:
    get:
      summary: List vehicles
      tags:
      - Vehicles
      responses:
        '200':
          description: Return a list of vehicles.
          headers:
            Link:
              $ref: '#/components/headers/link'
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Vehicle'
        '400':
          $ref: '#/components/responses/Problem400BadRequestList'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicles
      parameters:
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/expand-on-vehicle'
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/user'
      description: List all the vehicles that the authorization token has access to.
      security:
      - oauth2:
        - vehicle:read
    post:
      summary: Create unintegrated vehicle
      tags:
      - Vehicles
      responses:
        '201':
          description: Returns the newly created vehicle resource.
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: post-vehicles
      description: 'If a vehicle cannot be integrated with our system, an "unintegrated" vehicle must be created instead to represent it and record important details like battery size.


        To add a vehicle that can be integrated, see the [Onboarding documentation](docs/howto/onboarding_custom.md).'
      security:
      - oauth2:
        - vehicle:write
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/expand'
      - $ref: '#/components/parameters/evenergy-user-required'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleWrite'
  /vehicles/{vehicle_id}:
    parameters:
    - $ref: '#/components/parameters/vehicle_id'
    get:
      summary: Retrieve a vehicle
      tags:
      - Vehicles
      responses:
        '200':
          description: Return a single vehicle.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicles-vehicle_id
      parameters:
      - $ref: '#/components/parameters/expand-on-vehicle'
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/user'
      description: Retrieve a single, specific vehicle's details.
      security:
      - oauth2:
        - vehicle:read
    patch:
      summary: Update a vehicle
      tags:
      - Vehicles
      responses:
        '200':
          description: Vehicle updated successfully.
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
          content:
            application/json:
              schema:
                type: object
                $ref: '#/components/schemas/Vehicle'
        '400':
          $ref: '#/components/responses/Problem400BadRequestList'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: patch-vehicles
      parameters:
      - $ref: '#/components/parameters/expand-on-vehicle'
      - $ref: '#/components/parameters/version-2'
      description: Update a vehicle.
      security:
      - oauth2:
        - vehicle:write
      requestBody:
        description: Details of Vehicle to be updated.
        content:
          application/json:
            schema:
              type: object
              properties:
                battery_size_watt_hours:
                  type: integer
                  minimum: 1000
                  maximum: 300000
                  description: Battery size in watt-hours. Editable only for unintegrated vehicles; sending it for an integrated vehicle is rejected. Setting it flags the battery size as user-provided. Stored to the nearest 0.01 kWh (10 Wh), so the value read back may be rounded.
                maximum_charge_limit_percentage:
                  type: integer
                  minimum: 50
                  maximum: 100
                  description: 'The required target state of charge of the car as a percentage between 50 and 100. The car will not be smart charged above this value.  '
                smart_charging_enabled:
                  type: boolean
                  description: Whether smart (dynamic) charging is enabled for this vehicle.
                vehicle_class:
                  type:
                  - string
                  - 'null'
                  enum:
                  - PASSENGER
                  - COMMERCIAL
                  - null
                  description: Class of vehicle, passenger or commercial.
    delete:
      summary: Remove a vehicle
      tags:
      - Vehicles
      responses:
        '200':
          description: The vehicle has been deleted.
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: integer
              examples:
                Example:
                  value:
                    remaining_car_count: 0
        '204':
          description: Sandbox vehicles are not deleted.
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: delete-vehicles
      description: Remove a vehicle by disconnecting it from the ev.energy system.
      security:
      - oauth2:
        - vehicle:write
      parameters:
      - $ref: '#/components/parameters/version-2'
  /vehicle_trims:
    parameters: []
    get:
      summary: List vehicle trims
      tags:
      - Vehicles
      responses:
        '200':
          description: Return a list of vehicle trims.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleTrim'
          headers:
            Link:
              $ref: '#/components/headers/link'
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestList'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicle_trims
      parameters:
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/expand-on-vehicletrim'
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/user'
      - $ref: '#/components/parameters/vehicle_model_id_q'
      - $ref: '#/components/parameters/ordering_by_name'
      description: 'List all the vehicle trims known by the ev.energy system.


        Trim refers to a set of features that can be applied to a particular model of vehicle: https://en.wikipedia.org/wiki/Car_model#Trim_level.


        Pass `?ordering=name` (or `-name`) to sort results alphabetically by name. Without an `ordering` parameter, results are returned in their default creation order.'
      security:
      - oauth2:
        - vehicle:read
    post:
      summary: Create a custom vehicle trim
      tags:
      - Vehicles
      responses:
        '201':
          description: Returns the newly created vehicle trim resource.
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleTrim'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: post-vehicle_trims
      description: 'Creates a new trim for the specified model that can be used if

        we are missing a trim. These trims will not be available in the

        list trims api call'
      security:
      - oauth2:
        - vehicle:write
      parameters:
      - $ref: '#/components/parameters/version-2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleTrimCreate'
  /vehicle_trims/{vehicle_trim_id}:
    parameters:
    - $ref: '#/components/parameters/vehicle_trim_id'
    get:
      summary: Retrieve a vehicle trim
      tags:
      - Vehicles
      responses:
        '200':
          description: Return a single vehicle trim.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleTrim'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicle_trims-vehicle_trim_id
      parameters:
      - $ref: '#/components/parameters/expand-on-vehicletrim'
      - $ref: '#/components/parameters/version-2'
      description: 'Retrieve details for a single, specific vehicle trim.


        Trim refers to a set of features that can be applied to a particular model of vehicle: https://en.wikipedia.org/wiki/Car_model#Trim_level.'
      security:
      - oauth2:
        - vehicle:read
  /vehicle_models:
    parameters: []
    get:
      summary: List vehicle models
      tags:
      - Vehicles
      responses:
        '200':
          description: Return a list of vehicle models.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleModel'
          headers:
            Link:
              $ref: '#/components/headers/link'
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestList'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-vehicle_models
      parameters:
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/expand-on-vehiclemodel'
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/user'
      - $ref: '#/components/parameters/vehicle_make_id_q'
      - $ref: '#/components/parameters/available_for_user_id'
      - $ref: '#/components/parameters/ordering_by_name'
      description: 'List all the vehicle models known by the ev.energy system.


        Use the `available_for_user_id` query parameter to narrow the list to only those supported for a specific user''s program and tier.


        Pass `?ordering=name` (or `-name`) to sort results alphabetically by name. Without an `ordering` parameter, results are returned in their default creation order.


        Anonymous callers are rate limited to 50 requests per hour per IP.'
      security: []
    post:
      summary: Create vehicle model
      tags:
      - Vehicles
      responses:
        '201':
          description: Returns the newly created vehicle model resource.
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleModel'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: post-vehicle_models
      description: 'Create a new vehicle model in the ev.energy system.


        Newly created models are hidden by default and must be reviewed before becoming visible.'
      security:
      - oauth2:
        - vehicle:write
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/user'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleModelWrite'
  /vehicle_models/{vehicle_model_id}/connectors:
    parameters:
    - $ref: '#/components/parameters/vehicle_model_id'
    get:
      summary: List a vehicle model's regional connectors
      description: 'List a vehicle model''s DC-fast connectors, one per charging region. A

        model''s connector can differ by market (e.g. NACS in North America, CCS

        in Europe), so each row records the connector for one region. Public

        catalogue data.

        '
      tags:
      - Vehicles
      operationId: get-vehicle_models-vehicle_model_id-connectors
      responses:
        '200':
          description: Returns the vehicle model's regional connectors.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VehicleModelConnector'
          headers:
            Link:
              $ref: '#/components/headers/link'
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestList'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/page_size'
      security: []
    post:
      summary: Add a regional connector to a vehicle model
      description: 'Create a connector row for one region of a vehicle model.

        `(vehicle_model, region)` is unique; adding a second row for the same

        region returns a `400`. Requires the `vehicle_catalogue:write` scope.

        '
      tags:
      - Vehicles
      operationId: post-vehicle_models-vehicle_model_id-connectors
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleModelConnectorCreate'
      responses:
        '201':
          description: The regional connector was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleModelConnector'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
        '400':
          $ref: '#/components/responses/Problem400VehicleModelConnectorValidationFailed'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      parameters:
      - $ref: '#/components/parameters/version-2'
      security:
      - oauth2:
        - vehicle_catalogue:write
  /vehicle_models/{vehicle_model_id}/connectors/{region}:
    parameters:
    - $ref: '#/components/parameters/vehicle_model_id'
    - $ref: '#/components/parameters/region'
    get:
      summary: Retrieve a vehicle model's connector for a region
      tags:
      - Vehicles
      operationId: get-vehicle_models-vehicle_model_id-connectors-region
      responses:
        '200':
          description: Returns the vehicle model's connector for the region.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleModelConnector'
          headers:
            EvEnergy-Version:
              $ref: '#/components/headers/version-2'
            X-RateLimit-Limit:
              $ref: '#/components/headers/x-ratelimit-limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/x-ratelimit-remaining'
            RetryAfter:
              $ref: '#/components/headers/retry-after'
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '405':
          $ref: '#/components/responses/Problem405MethodNotAllowed'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      parameters:
      - $ref: '#/components/parameters/version-2'
      security: []
    patch:
      summary: Update a vehicle model's connector for a region
      description: 'Partially update the connector row for one region. Only the fields

        supplied are changed; `region` is the key and cannot be changed.

        Requires the `vehicle_catalogue:write` scope.

        '
      tags:
      - Vehicles
      operationId: patch-vehicle_models-vehicle_model_id-connectors-region
      requestBody:
 

# --- truncated at 32 KB (168 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ev-energy/refs/heads/main/openapi/ev-energy-vehicles-api-openapi.yml