ev.energy Solar API

Endpoints for interacting with solar arrays and inverters.

Operations 12

GET /solar_arrays List solar arrays #
POST /solar_arrays Create a solar array #
GET /solar_arrays/{solar_array_id} Retrieve a solar array #
PATCH /solar_arrays/{solar_array_id} Update a solar array #
POST /inverters Create an Inverter #
GET /inverters List inverters #
GET /inverters/{inverter_id} Retrieve an inverter #
GET /inverter_makes List inverter makes #
GET /inverter_makes/{inverter_make_id} Retrieve an inverter make #
GET /inverter_models List inverter models #
GET /inverter_models/{inverter_model_id} Retrieve an inverter model #
GET /inverter_onboarding Allows a user to authenticate with their inverter account. #

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-solar-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-solar-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ev.energy v2 Solar 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: Solar
  description: Endpoints for interacting with solar arrays and inverters.
paths:
  /solar_arrays:
    parameters:
    - $ref: '#/components/parameters/version-2'
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: List solar arrays
      responses:
        '200':
          description: Returns a list of solar arrays.
          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/SolarArray'
              examples:
                Example 1:
                  value:
                  - id: solr01JASZTD3T7N39DTZPBJVXNPKP
                    url: https://api.ev.energy/v2/solar_arrays/solr01JASZTD3T7N39DTZPBJVXNPKP
                    capacity_watts: 7000
                    inverter: https://api.ev.energy/v2/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    forecast:
                      solar_watt_hours_until_midnight: 19
                      percent_vehicle_battery_charge_until_midnight: 30
                      last_updated_at: '2024-10-16T11:26:16'
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '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-solar-arrays
      description: List all the solar arrays that the authorization token has access to.
      parameters:
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/expand-on-solararray'
      - $ref: '#/components/parameters/user'
      - schema:
          type: string
          example: vhcl01HRFF3SEVSCRAV9B3CHVDFN0H
        in: query
        name: vehicle_id
        description: When provided, populates the `percent_vehicle_battery_charge_until_midnight` field.
      tags:
      - Solar
      security:
      - oauth2:
        - solar:read
    post:
      description: 'Creates a solar array and associates it with the user.

        '
      summary: Create a solar array
      operationId: post-solar-arrays
      parameters: []
      requestBody:
        description: Details of Solar Array to be created.
        content:
          application/json:
            schema:
              type: object
              properties:
                capacity_watts:
                  type: integer
                  minimum: 0
      responses:
        '201':
          description: Solar Array created.
          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/SolarArray'
              examples:
                Example 1:
                  value:
                    id: solr01JASZTD3T7N39DTZPBJVXNPKP
                    url: https://api.ev.energy/solar_arrays/solr01JASZTD3T7N39DTZPBJVXNPKP
                    capacity_watts: 7000
                    inverter: https://api.ev.energy/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    forecast:
                      solar_watt_hours_until_midnight: 19
                      percent_vehicle_battery_charge_until_midnight: 30
                      last_updated_at: '2024-10-16T11:26:16'
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '400':
          $ref: '#/components/responses/Problem400BadRequestCreate'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem403Forbidden'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      tags:
      - Solar
      security:
      - oauth2:
        - solar:write
  /solar_arrays/{solar_array_id}:
    parameters:
    - schema:
        type: string
        example: solr01JASZTD3T7N39DTZPBJVXNPKP
        pattern: solr[A-Z\d]{26}
      name: solar_array_id
      in: path
      required: true
      description: The ID of the specific Solar Array to retrieve or update.
    - $ref: '#/components/parameters/version-2'
    - $ref: '#/components/parameters/Accept-Language'
    get:
      description: Retrieve a single, specific solar array's details.
      operationId: get-solar-arrays-solar_array_id
      summary: Retrieve a solar array
      parameters:
      - $ref: '#/components/parameters/expand-on-solararray'
      - $ref: '#/components/parameters/version-2'
      - schema:
          type: string
          example: vhcl01HRFF3SEVSCRAV9B3CHVDFN0H
        in: query
        name: vehicle_id
        description: When provided, populates the `percent_vehicle_battery_charge_until_midnight` field.
      responses:
        '200':
          description: Returns a single solar array.
          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/SolarArray'
              examples:
                Example 1:
                  value:
                    id: solr01JASZTD3T7N39DTZPBJVXNPKP
                    url: https://api.ev.energy/solar_arrays/solr01JASZTD3T7N39DTZPBJVXNPKP
                    capacity_watts: 7000
                    inverter: https://api.ev.energy/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    forecast:
                      solar_watt_hours_until_midnight: 19
                      percent_vehicle_battery_charge_until_midnight: 30
                      last_updated_at: '2024-10-16T11:26:16'
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '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'
      tags:
      - Solar
      security:
      - oauth2:
        - solar:read
    patch:
      summary: Update a solar array
      tags:
      - Solar
      responses:
        '200':
          description: Solar array 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/SolarArray'
              examples:
                Example 1:
                  value:
                    id: solr01JASZTD3T7N39DTZPBJVXNPKP
                    url: https://api.ev.energy/solar_arrays/solr01JASZTD3T7N39DTZPBJVXNPKP
                    capacity_watts: 7000
                    inverter: https://api.ev.energy/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    forecast:
                      solar_watt_hours_until_midnight: 19
                      percent_vehicle_battery_charge_until_midnight: 30
                      last_updated_at: '2024-10-16T11:26:16'
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '400':
          $ref: '#/components/responses/Problem400BadRequestCreate'
        '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-solar_arrays-solar_array_id
      description: Update a solar array.
      parameters:
      - $ref: '#/components/parameters/expand-on-solararray'
      - $ref: '#/components/parameters/version-2'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                capacity_watts:
                  type: integer
                  minimum: 0
            examples:
              Example 1:
                value:
                  capacity_watts: 7000
        description: Details of Solar Array to be updated.
      security:
      - oauth2:
        - solar:write
  /inverters:
    post:
      summary: Create an Inverter
      responses:
        '201':
          description: Inverter created.
          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/Inverter'
              examples:
                Example 1:
                  value:
                    id: invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    url: https://api.ev.energy/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    model:
                      id: imodT4J2GW1IOPAA7FRW53R8P4UXCB
                      url: https://api.ev.energy/inverters/imodT4J2GW1IOPAA7FRW53R8P4UXCB
                      name: Envoy-R
                      make:
                        id: imakK7XDPL63NNBDQ5DPB6K3TP87JA
                        url: https://api.ev.energy/inverter_makes/imakK7XDPL63NNBDQ5DPB6K3TP87JA
                        name: Enphase
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '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: post-inverters
      description: Creates an Inverter and associates it with a user's solar array.
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/user'
      security:
      - oauth2:
        - inverter:write
      requestBody:
        content:
          application/json:
            schema:
              type: object
              x-examples:
                Example 1:
                  model: imod7XL7Q5294J6TUZARBQT2D1EOHY
              properties:
                model:
                  type: string
                  format: uri
                  example: https://api.ev.energy/v2/inverter_models/imodOTQRGK9OKMPDU63SYGJ9T6FH3A
                user:
                  type: string
                  format: uri
                  example: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
            examples:
              Example 1:
                value:
                  model: https://api.ev.energy/inverters/imod7XL7Q5294J6TUZARBQT2D1EOHY
        description: Details of the Inverter to be created.
      tags:
      - Solar
    get:
      summary: List inverters
      responses:
        '200':
          description: Returns a list of inverters.
          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/Inverter'
              examples:
                Example 1:
                  value:
                  - id: invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    url: https://api.ev.energy/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    model: https://api.ev.energy/inverters/imodT4J2GW1IOPAA7FRW53R8P4UXCB
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '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-inverters
      description: List all the inverters that the authorization token has access to.
      security:
      - oauth2:
        - inverter:read
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/expand-on-inverter'
      - $ref: '#/components/parameters/Accept-Language'
      - $ref: '#/components/parameters/user'
      tags:
      - Solar
  /inverters/{inverter_id}:
    parameters:
    - schema:
        type: string
      name: inverter_id
      in: path
      required: true
      description: The ID of the specific Inverter to retrieve or update.
    get:
      summary: Retrieve an inverter
      responses:
        '200':
          description: Returns a single inverter.
          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/Inverter'
              examples:
                Example 1:
                  value:
                    id: invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    url: https://api.ev.energy/inverters/invtFB08NVS8KADFY6GAQ9C6RMFGUY
                    model:
                      id: imodT4J2GW1IOPAA7FRW53R8P4UXCB
                      url: https://api.ev.energy/inverters/imodT4J2GW1IOPAA7FRW53R8P4UXCB
                      name: Envoy-R
                      make:
                        id: imakK7XDPL63NNBDQ5DPB6K3TP87JA
                        url: https://api.ev.energy/inverter_makes/imakK7XDPL63NNBDQ5DPB6K3TP87JA
                        name: Enphase
                    user: https://api.ev.energy/v2/users/user01HN2NJ9NMRZBXT1H6FT9N7735
        '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-inverters-inverter_id
      description: Retrieve a single, specific inverter's details.
      security:
      - oauth2:
        - inverter:read
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/expand-on-inverter'
      - $ref: '#/components/parameters/Accept-Language'
      tags:
      - Solar
  /inverter_makes:
    get:
      summary: List inverter makes
      tags:
      - Solar
      responses:
        '200':
          description: Return a list of Inverter Makes.
          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/InverterMake'
              examples:
                Example 1:
                  value:
                  - id: imakK7XDPL63NNBDQ5DPB6K3TP87JA
                    url: https://api.ev.energy/inverter_makes/imakK7XDPL63NNBDQ5DPB6K3TP87JA
                    name: Enphase
        '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-inverter_makes
      description: List all the inverter makes known by the ev.energy system.
      security:
      - oauth2:
        - inverter:read
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/available_for_user_id'
      - $ref: '#/components/parameters/Accept-Language'
  /inverter_makes/{inverter_make_id}:
    parameters:
    - schema:
        type: string
      name: inverter_make_id
      in: path
      required: true
      description: The ID of the specific inverter make to retrieve.
    get:
      summary: Retrieve an inverter make
      tags:
      - Solar
      responses:
        '200':
          description: Return a single inverter make.
          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/InverterMake'
              examples:
                Example 1:
                  value:
                    id: imakK7XDPL63NNBDQ5DPB6K3TP87JA
                    url: https://api.ev.energy/inverter_makes/imakK7XDPL63NNBDQ5DPB6K3TP87JA
                    name: Enphase
        '400':
          $ref: '#/components/responses/Problem400BadRequestRetrieve'
        '401':
          $ref: '#/components/responses/Problem401Unauthorized'
        '403':
          $ref: '#/components/responses/Problem404NotFound'
        '404':
          $ref: '#/components/responses/Problem404NotFound'
        '406':
          $ref: '#/components/responses/Problem406NotAcceptable'
        '429':
          $ref: '#/components/responses/Problem429TooManyRequests'
      operationId: get-inverter_makes-inverter_make_id
      description: Retrieve details for a single, specific EVSE make.
      security:
      - oauth2:
        - inverter:read
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/Accept-Language'
  /inverter_models:
    get:
      summary: List inverter models
      tags:
      - Solar
      responses:
        '200':
          description: Returns a list of inverter models.
          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/InverterModel'
              examples:
                Example 1:
                  value:
                  - id: imodT4J2GW1IOPAA7FRW53R8P4UXCB
                    url: https://api.ev.energy/inverters/imodT4J2GW1IOPAA7FRW53R8P4UXCB
                    name: Envoy-R
                    make: https://api.ev.energy/inverter_makes/imakK7XDPL63NNBDQ5DPB6K3TP87JA
        '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-inverter_models
      description: List all the inverter models known by the ev.energy system.
      security:
      - oauth2:
        - inverter:read
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/previous'
      - $ref: '#/components/parameters/next'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/expand-on-invertermodel'
      - $ref: '#/components/parameters/Accept-Language'
      - $ref: '#/components/parameters/inverter_make_id_q'
  /inverter_models/{inverter_model_id}:
    parameters:
    - schema:
        type: string
      name: inverter_model_id
      in: path
      required: true
      description: The ID of the specific inverter model to retrieve.
    get:
      summary: Retrieve an inverter model
      tags:
      - Solar
      responses:
        '200':
          description: Return a single inverter model.
          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/InverterModel'
              examples:
                Example 1:
                  value:
                    id: imodT4J2GW1IOPAA7FRW53R8P4UXCB
                    url: https://api.ev.energy/inverters/imodT4J2GW1IOPAA7FRW53R8P4UXCB
                    name: Envoy-R
                    make:
                      id: imakK7XDPL63NNBDQ5DPB6K3TP87JA
                      url: https://api.ev.energy/inverter_makes/imakK7XDPL63NNBDQ5DPB6K3TP87JA
                      name: Enphase
        '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-inverter_models-inverter_model_id
      description: Retrieve details for a single, specific inverter model.
      security:
      - oauth2:
        - inverter:read
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/expand-on-invertermodel'
      - $ref: '#/components/parameters/Accept-Language'
  /inverter_onboarding:
    get:
      summary: Allows a user to authenticate with their inverter account.
      tags:
      - Solar
      responses:
        '302':
          description: Found
        '400':
          description: Bad Request
        '404':
          description: Not Found
      operationId: get-inverter_onboarding
      parameters:
      - $ref: '#/components/parameters/version-2'
      - $ref: '#/components/parameters/Accept-Language'
      - $ref: '#/components/parameters/user_id_onboarding'
      - schema:
          type: string
        in: query
        name: make_id
        description: The make ID for the inverter that is going to be onboarded.
      - schema:
          type: string
        in: query
        name: inverter_id
        description: The ID for the inverter that is going to be onboarded.
      - $ref: '#/components/parameters/client_id'
      description: 'This endpoint will redirect to a web page that a user can use to login into their inverter account.


        This should be visited in a web browser as it contains interactive UI elements.'
components:
  responses:
    Problem404NotFound:
      description: This resource either does not exist or the client is not authorized to access it.
      content:
        application/problem+json:
          schema:
            type: object
            required:
            - title
            - detail
            properties:
              status:
                type: number
                example: 404
              title:
                type: string
                example: Not found
              detail:
                type: string
                example: Resource does not exist or cannot be accessed.
      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'
    Problem400BadRequestRetrieve:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/RFC9457ProblemDetail'
          examples:
            Unsupported Version:
              $ref: '#/components/examples/ProblemUnsupportedVersion'
      description: A problem with the request's parameters prevented it being fulfilled.
      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'
    Problem400BadRequestCreate:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/RFC9457ProblemDetail'
          examples:
            Request failed validation:
              $ref: '#/components/examples/ProblemValidationFailedVehicle'
      description: A problem with the request's parameters prevented it being fulfilled.
      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'
    Problem429TooManyRequests:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/RFC9457ProblemDetail'
          examples:
            Example 1:
              value:
                type: https://api.ev.energy/v2/problems/rate-limit-exceeded/
                status: 429
                title: Too Many Requests
                detail: Request was rate limited. Try again in 42 seconds
      description: The client has exceeded its rate limit.
      headers:
        EvEnergy-Version:
          $ref: '#/components/headers/version-2'
        Retry-After:
          $ref: '#/components/headers/retry-after'
        X-RateLimit-Limit:
          $ref: '#/components/headers/x-ratelimit-limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/x-ratelimit-remaining'
    Problem401Unauthorized:
      description: You need to authorise requests to access this resource.
      content:
        application/problem+json:
          schema:
            type: object
            required:
            - title
            - detail
            properties:
              status:
                type: number
                example: 401
              title:
                type: string
                example: Unauthorized
              detail:
                type: string
                example: Authentication credentials were not provided.
      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'
    Problem400BadRequestList:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/RFC9457ProblemDetail'
          examples:
            Invalid Pagination Parameter:
              $ref: '#/components/examples/ProblemInvalidPaginationParameter'
            Unsupported Version:
              $ref: '#/components/examples/ProblemUnsupportedVersion'
      description: A problem with the request's parameters prevented it being fulfilled.
      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'
    Problem403Forbidden:
      description: You do not have permission to perform this action.
      content:
        application/problem+json:
          schema:
            type: object
          

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