Arcadia Spark API

The Spark API from Arcadia — 8 operation(s) for spark.

Operations 8

POST /spark/charge_curve/cost Calculate Charge Cost #
POST /spark/charge_curve/schedule Calculate Smart Charging Schedule #
POST /spark/tariff_rates Calculate Tariff Rate ($/kWh) #
GET /spark/optimized_tariffs/load_serving_entities Tariff Optimize - Search for Load Serving Entities #
GET /spark/optimized_tariffs/applicabilities Tariff Optimize - Get Tariff Applicability Questions #
POST /spark/optimized_tariffs/recommendations Tariff Optimize - Search for Recommended Applicable Tariffs #
POST /spark/optimized_tariffs/scenario_cost Tariff Optimize - Calculate Tariff-Scenario Cost #
POST /spark/storage_optimization/schedules Optimize Storage Dispatch Schedules (Beta) #

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/arcadia-spark-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

arcadia-spark-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Arcadia API Reference Spark API
  version: 0.3.0
  contact:
    email: platformsupport@arcadia.com
servers:
- url: https://api.arcadia.com
security:
- bearerAuth: []
tags:
- name: Spark
paths:
  /spark/charge_curve/cost:
    post:
      tags:
      - Spark
      summary: Calculate Charge Cost
      description: Provided a charge curve starting at a particular time of day, calculates the electricity cost of that charge curve for a particular `UtilityAccount` or [Genability tariff](https://developer.genability.com/api-reference/tariff-api/tariff/).
      operationId: calculateChargeCost
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCostRequestBodyParams'
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeCostResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TariffResolutionError'
        '404':
          description: Not Found
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/UtilityAccountNotFoundError'
                - $ref: '#/components/schemas/ChargeCurvesTariffParamError'
        '422':
          description: Unprocessable Entity
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ChargeCostFeatureAvailabilityError'
                - $ref: '#/components/schemas/SparkParamValidationError'
                - $ref: '#/components/schemas/ChargeCurvesTariffParamError'
  /spark/charge_curve/schedule:
    post:
      tags:
      - Spark
      summary: Calculate Smart Charging Schedule
      description: Provided details around charging duration and a prospective charging window, returns a charging schedule that minimizes costs for a particular `UtilityAccount`.
      operationId: calculateSmartChargeSchedule
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartChargeScheduleRequestBodyParams'
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartChargeScheduleResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TariffResolutionError'
        '404':
          description: Not Found
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UtilityAccountNotFoundError'
        '422':
          description: Unprocessable Entity
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SmartChargeFeatureAvailabilityError'
                - $ref: '#/components/schemas/SparkParamValidationError'
  /spark/tariff_rates:
    post:
      tags:
      - Spark
      summary: Calculate Tariff Rate ($/kWh)
      description: 'Calculates marginal rate ($/kWh) for a short-term time period on the electric tariff a given utility account is subscribed to. This endpoint will report appropriate costs for TOU periods (daily peak/off-peak hours, weekend schedules, seasonal changes).

        This endpoint is not recommended for monthly bill reproduction. Marginal rates generally do not include monthly adjustments or charges such as tiering (costs are generally reported at the base tier), fixed charges, monthly discounts, special event days, etc.'
      operationId: retrieveTariffRates
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TariffRatesRequestBodyParams'
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TariffRatesResponse'
  /spark/optimized_tariffs/load_serving_entities:
    get:
      tags:
      - Spark
      summary: Tariff Optimize - Search for Load Serving Entities
      description: Returns a list of Genability load serving entities (LSEs) for a given zip code, for use in tariff searches.
      operationId: searchLoadServingEntities
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      - in: query
        name: zip_code
        required: true
        description: United States zip code.
        example: '94105'
        schema:
          type: string
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchLoadServingEntitiesResponse'
  /spark/optimized_tariffs/applicabilities:
    get:
      tags:
      - Spark
      summary: Tariff Optimize - Get Tariff Applicability Questions
      description: 'Gets the list of applicability questions for all potential tariffs. Tariffs sometimes have eligibility conditions to sign up for them ("applicabilities"). For example, signing up for an EV tariff often requires an electric car registered to the account holder at the account''s address. Answers to the returned applicability questions can be passed to the recommendations endpoint to get the most relevant tariffs.


        The set of potential tariffs can be specified either by an Arcadia Utility Account ID, or by considering all tariffs in a given zip code served by a specific [Genability Load Serving Entity (LSE)](https://developer.genability.com/api-reference/tariff-api/load-serving-entity/).


        __Either utility_account_id or both the zip_code/lse_id must be specified.__

        '
      operationId: getOptimizedTariffsApplicabilities
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      - in: query
        name: utility_account_id
        required: false
        example: 12345
        description: The unique ID of the Utility Account for this tariff search. Optional if searching for tariffs by Genability `lse_id`/`zip_code`.
        schema:
          type: integer
      - in: query
        name: zip_code
        required: false
        description: The zip code of the site inside the LSE's territory. Must be provided if searching for tariffs by Genability `lse_id`/`zip_code`.
        example: '94706'
        schema:
          type: string
      - in: query
        name: lse_id
        required: false
        description: The ID of the Genability [load serving entity](https://developer.genability.com/api-reference/tariff-api/load-serving-entity/) prefixed with `gen_lse_`. Must be provided if searching for tariffs by Genability `lse_id`/`zip_code`.
        example: gen_lse_734
        schema:
          type: string
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TariffApplicabilityQuestionsResponse'
        '422':
          description: Bad Request
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptimizedTariffRecommendationsLseIdentificationParamError'
  /spark/optimized_tariffs/recommendations:
    post:
      tags:
      - Spark
      summary: Tariff Optimize - Search for Recommended Applicable Tariffs
      description: 'Returns a list of applicable tariffs to use in a Tariff-Scenario Cost Calculation given the answers to the submitted Applicability Questions.


        The set of recommended tariffs can be specified either by an Arcadia Utility Account ID, or by considering all tariffs in a given zip code served by a specific [Genability Load Serving Entity (LSE)](https://developer.genability.com/api-reference/tariff-api/load-serving-entity/).


        __Either utility_account_id or both the zip_code/lse_id must be specified.__'
      operationId: searchOptimizedTariffsByApplicabilities
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TariffApplicabilityAnswersRequestParams'
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptimizedTariffRecommendationsResponse'
        '422':
          description: Bad Request
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptimizedTariffRecommendationsLseIdentificationParamError'
  /spark/optimized_tariffs/scenario_cost:
    post:
      tags:
      - Spark
      summary: Tariff Optimize - Calculate Tariff-Scenario Cost
      description: 'Calculates the “what-if” cost of a single tariff-scenario, or combination of tariff, load curve and qualifying criteria. A tariff-scenario can simulate additional devices with various operational schedules. For example, we can simulate the cost of adding an EV with basic charging, and we can compare that to another tariff-scenario where the cost on the same tariff is simulated with an EV using smart charging.


        __Either utility_account_id or zip_code/main_tariff_id must be specified.__'
      operationId: calculateOptimizedTariffsScenarioCost
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TariffScenarioCostRequestParams'
      responses:
        '200':
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TariffScenarioCostResponse'
        '422':
          description: Bad Request
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TariffScenarioCostRequestTariffIdentificationParamError'
  /spark/storage_optimization/schedules:
    post:
      description: Optimize energy flows into and out of a storage system to minimize cost, given a corresponding tariff, consumption profile, solar generation profile, and storage specifications. Supports a variety of installation configurations and dispatch strategies.
      operationId: calculateStorageOptimizationSchedules
      parameters:
      - $ref: '#/components/parameters/arcVersionInHeaderParam'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageOptimizationSchedulesRequestParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageOptimizationSchedulesResponse'
          description: Success
          headers:
            Arcadia-Version:
              $ref: '#/components/headers/ArcVersion'
      summary: Optimize Storage Dispatch Schedules (Beta)
      tags:
      - Spark
components:
  schemas:
    TariffApplicabilityQuestionsResponse:
      required:
      - country
      - lse_id
      - zip_code
      - applicability_questions
      properties:
        country:
          type: string
          description: The country used for determining tariff applicability
          example: US
        lse_id:
          type: string
          example: gen_lse_734
          description: The Genability 'lseId' unique identifier for this load serving entity. See [Genability documentation](https://developer.genability.com/api-reference/tariff-api/load-serving-entity/) for details.
        zip_code:
          type: string
          description: The zip code used for determining tariff applicability
          example: '94706'
        applicability_questions:
          type: array
          description: List of applicability questions that will determine optimization-eligible tariffs in this LSE.
          items:
            $ref: '#/components/schemas/TariffApplicabilityQuestionSchema'
          example:
          - id: EV
            user_question: Do you have an electric vehicle (EV)?
            user_question_details: null
            answer_data_type: YES_NO
          - id: SOLAR
            user_question: Do you have a rooftop solar system installed?
            user_question_details: null
            answer_data_type: YES_NO
          - id: ELECTRIC_HEAT
            user_question: Is your primary home heating electric?
            user_question_details: null
            answer_data_type: YES_NO
          - id: ELECTRIC_WATER
            user_question: Is your primary hot water heater electric?
            user_question_details: null
            answer_data_type: YES_NO
          - id: HEAT_PUMP
            user_question: Do you have a heat pump for home heating and cooling?
            user_question_details: null
            answer_data_type: YES_NO
          - id: SENIOR_CITIZEN
            user_question: Is the electric account owner a senior citizen?
            user_question_details: null
            answer_data_type: YES_NO
          - id: LOW_INCOME
            user_question: Do you qualify for your utility's low income assistance program?
            user_question_details: 'Contact your utility for specific qualifications, but common criteria include: Supplemental Security Income, Temporary Assistance to Needy Persons/Families, Safety Net Assistance, Food Stamps, or receiving a Home Energy Assistance Program grant in the preceding 12 months.'
            answer_data_type: YES_NO
          - id: MEDICAL
            user_question: Do you have medical equipment or a condition that qualifies for electricity assistance?
            user_question_details: Contact your utility for specific qualifications, but this commonly includes equipment like ventilators.
            answer_data_type: YES_NO
          - id: CA_CARE_CUSTOMER
            user_question: Do you qualify for the California Alternate Rates for Energy (CARE) program?
            user_question_details: CARE provides qualifying residential applicants with reduced energy charges.
            answer_data_type: YES_NO
          - id: CA_FERA
            user_question: Do you qualify for the Family Electric Rate Assistance program (FERA)?
            user_question_details: FERA is the rate reduction program in California for household with maximum annual income of between 200% and 250% of federal poverty guidelines and have three or more persons residing full time in their household. Additional eligibility criteria may apply.
            answer_data_type: YES_NO
      additionalProperties: false
    SearchLoadServingEntitiesResponse:
      required:
      - data
      - total_count
      properties:
        data:
          type: array
          description: Results
          items:
            $ref: '#/components/schemas/LoadServingEntitySchema'
          example:
          - lse_id: gen_lse_734
            name: Pacific Gas & Electric
            code: '14328'
            num_customers: 5069189
          - lse_id: gen_lse_1074
            name: San Francisco City & County of
            code: '16612'
            num_customers: 2173
        total_count:
          type: integer
          description: Number of results
          example: 2
      additionalProperties: false
    TariffRatesRequestBodyParams:
      required:
      - start_time
      properties:
        utility_account_id:
          description: (Beta - due to limited coverage) The unique ID of the utility account that this calculation is being run against. Either a `utility_account_id` or `main_tariff_id` is required for a valid request.
          type: integer
        main_tariff_id:
          type: string
          description: The Genability 'masterTariffId' unique identifier for this tariff. See [Genability documentation](https://developer.genability.com/api-reference/tariff-api/tariff/) for details. Either a `utility_account_id` or `main_tariff_id` is required for a valid request.
          example: gen_mtid_3331108
        start_time:
          description: 'ISO8601 timestamp indicating start time. Note that the timestamp will be rounded down to the start of latest time_block_resolution

            '
          type: string
          format: date-time
          example: '2021-03-18T22:00:00-07:00'
        end_time:
          description: 'ISO8601 timestamp indicating end of time period. Note that the timestamp will be rounded down to the start of latest time_block_resolution

            '
          type: string
          format: date-time
          example: '2021-03-19T08:00:00-07:00'
        time_block_resolution:
          description: Requested time resolution
          type: string
          enum:
          - 5m
          - 10m
          - 15m
          - 30m
          - 1h
          default: 1h
      additionalProperties: false
    SmartChargeFeatureAvailabilityError:
      required:
      - error
      properties:
        error:
          type: object
          required:
          - description
          - type
          - details
          properties:
            description:
              type: string
              enum:
              - The smart_charge feature is not available for this UtilityAccount.
              - The smart_charge feature is not ready yet. Please refer to UtilityAccount#FeatureAvailability for updates.
            type:
              type: string
              enum:
              - BAD_REQUEST
            details:
              type:
              - object
              - 'null'
      additionalProperties: false
    TouPeriod:
      title: TouPeriod
      type: object
      properties:
        fromDayOfWeek:
          title: Fromdayofweek
          description: Day of the week on which this period begins (0 - 6, Monday - Sunday).
          default: 0
          minimum: 0
          maximum: 6
          type: integer
        toDayOfWeek:
          title: Todayofweek
          description: Day of the week after which this period ends (0 - 6, Monday - Sunday). End day is included in the period.
          default: 6
          minimum: 0
          maximum: 6
          type: integer
        fromHour:
          title: Fromhour
          description: Hour of the day on which this period begins (0 - 23).
          exclusiveMaximum: 24
          minimum: 0
          type: integer
        toHour:
          title: Tohour
          description: Hour of the day before which this period ends (0 - 24). End hour is not included in the period.
          minimum: 0
          maximum: 24
          type: integer
      required:
      - fromHour
      - toHour
    TariffResolutionError:
      required:
      - error
      properties:
        error:
          type: object
          required:
          - description
          - type
          - details
          properties:
            description:
              type: string
              enum:
              - Tariff information is not yet available for this utility account
            type:
              type: string
              enum:
              - BAD_REQUEST
            details:
              type:
              - object
              - 'null'
      additionalProperties: false
    StorageOptimizationSchedulesResponse:
      type: object
      properties:
        from_date_time:
          description: Start time corresponding to the beginning of the hour when the consumption and solar curves start. Echoed back from request parameters.
          example: '2021-03-18T00:00:00-07:00'
          type: string
          format: date-time
        grid_to_site_kwh_ac:
          description: Amount of electricity flowing to site load from the grid (kWh AC).
          example:
          - 1.3
          - 1.1
          - 0
          - 0
          type: array
          items:
            type: number
            minimum: 0
        grid_to_battery_kwh_ac:
          description: Amount of electricity flowing to the battery from the grid, before conversion with `battery_ac_to_dc_efficiency` (kWh AC).
          example:
          - 1.56
          - 0
          - 0
          - 0
          type: array
          items:
            type: number
            minimum: 0
        solar_to_battery_kwh_dc:
          description: Amount of electricity flowing to the battery from PV solar generation, either without any conversion if `battery_dc_coupled` or after double-conversion with `solar_dc_to_ac_efficiency` * `battery_ac_to_dc_efficiency` if not (kWh DC).
          example:
          - 0
          - 1.5
          - 0
          - 0
          type: array
          items:
            type: number
            minimum: 0
        solar_to_site_kwh_ac:
          description: Amount of electricity flowing to site load from PV solar generation, after conversion with `solar_dc_to_ac_efficiency` (kWh AC).
          example:
          - 0
          - 0.1
          - 1.3
          - 1.5
          type: array
          items:
            type: number
            minimum: 0
        solar_to_grid_kwh_ac:
          description: Amount of electricity flowing to the grid from PV solar generation, after conversion with `solar_dc_to_ac_efficiency` (kWh AC).
          example:
          - 0
          - 0
          - 0.4
          - 1.4
          type: array
          items:
            type: number
            minimum: 0
        solar_curtailed_kwh_dc:
          description: Amount of electricity from solar that goes unused (kWh DC).
          example:
          - 0
          - 0
          - 0
          - 0
          type: array
          items:
            type: number
            minimum: 0
        battery_to_site_kwh_ac:
          description: Amount of electricity flowing to site load from the battery, after conversion with `battery_dc_to_ac_efficiency` (kWh AC).
          example:
          - 0
          - 0
          - 0.1
          - 0.2
          type: array
          items:
            type: number
            minimum: 0
        battery_to_grid_kwh_ac:
          description: Amount of electricity flowing to the grid from battery, after conversion with `battery_dc_to_ac_efficiency` (kWh AC).
          example:
          - 0
          - 0
          - 0.1
          - 0.2
          type: array
          items:
            type: number
            minimum: 0
        net_load_kwh_ac:
          description: Amount of electricity flowing from the grid if positive or to the grid if negative (kWh AC). Equals `grid_to_site_kwh_ac` + `grid_to_battery_kwh_ac` - `battery_to_grid_kwh_ac` - `solar_to_grid_kwh_ac`.
          example:
          - 1.86
          - 1.1
          - -0.5
          - -1.6
          type: array
          items:
            type: number
        battery_soc:
          description: Hourly battery state of charge (`0.0` - `1.0`, though in practice, all values will be between `battery_min_soc` and `battery_max_soc`). Multiply by `battery_nameplate_capacity` to get a timeseries of kWh DC stored.
          example:
          - 0.75
          - 1
          - 0.8
          - 0.4
          type: array
          items:
            type: number
            minimum: 0
            maximum: 1
      required:
      - from_date_time
      - grid_to_site_kwh_ac
      - grid_to_battery_kwh_ac
      - solar_to_battery_kwh_dc
      - solar_to_site_kwh_ac
      - solar_to_grid_kwh_ac
      - solar_curtailed_kwh_dc
      - battery_to_site_kwh_ac
      - battery_to_grid_kwh_ac
      - battery_soc
      additionalProperties: false
    ChargeCurvesTariffParamError:
      required:
      - error
      properties:
        error:
          type: object
          required:
          - description
          - type
          - details
          properties:
            description:
              type: string
              example: No tariff found matching ID
              enum:
              - No tariff found matching ID
              - 'Invalid tariff ID: must be of the form "gen_mtid_3220724"'
            type:
              type: string
              enum:
              - BAD_REQUEST
            details:
              type: object
              required:
              - main_tariff_id
              properties:
                main_tariff_id:
                  type: string
                  example: gen_tariff_000000
      additionalProperties: false
    ChargeCostFeatureAvailabilityError:
      required:
      - error
      properties:
        error:
          type: object
          required:
          - description
          - type
          - details
          properties:
            description:
              type: string
              enum:
              - The charge_cost feature is not available for this UtilityAccount.
              - The charge_cost feature is not ready yet. Please refer to UtilityAccount#FeatureAvailability for updates.
            type:
              type: string
              enum:
              - BAD_REQUEST
            details:
              type:
              - object
              - 'null'
      additionalProperties: false
    LoadServingEntitySchema:
      required:
      - lse_id
      - name
      - code
      - num_customers
      properties:
        lse_id:
          type: string
          description: Genability ID of the load serving entity, prefixed with `gen_lse_`.
          example: gen_lse_734
        name:
          type: string
          description: Name of the load serving entity.
          example: Pacific Gas & Electric
        code:
          type: string
          description: Alternate key identifying the load serving entity. For US companies, this is the EIA ID.
          example: '14328'
        num_customers:
          type: integer
          description: Total customer count for the load serving entity. Results will be sorted by this value in descending order (so the first result will be the most likely LSE).
          example: 5069189
      additionalProperties: false
    DispatchStrategy:
      title: DispatchStrategy
      type: object
      properties:
        optimize:
          title: Optimize
          description: If `true`, find the optimal dispatch schedule for the given tariff, solar, and consumption curves, assuming perfect forecasts.
          type: boolean
        chargeOnSurplus:
          title: Chargeonsurplus
          description: If `true`, charge whenever solar production exceeds consumption and discharge to meet consumption otherwise.
          type: boolean
        fixedSchedule:
          title: Fixedschedule
          description: If specified, use a fixed schedule to control battery dispatch, charging as much as possible during `charge_tous` and discharging as much as possible during `discharge_tous`. Times of use (TOUs) should be specified using [Genability format](https://developer.genability.com/api-reference/tariff-api/time-of-use/), in either camel or snake case.
          allOf:
          - $ref: '#/components/schemas/FixedSchedule'
    SmartChargeScheduleResponse:
      required:
      - start_time
      - charge_block_active
      - charge_block_resolution
      properties:
        start_time:
          type: string
          format: date-time
          example: '2021-03-18T22:00:00-07:00'
        charge_block_resolution:
          description: The duration of the charge blocks returned in the `charge_block_active` array.
          type: string
          enum:
          - 5m
          - 10m
          - 15m
          - 30m
          - 1h
          example: 1h
        charge_block_active:
          type: object
          required:
          - frequency
          - data
          properties:
            frequency:
              description: The duration of the charge blocks returned in the `charge_block_active` array.
              type: string
              enum:
              - 5m
              - 10m
              - 15m
              - 30m
              - 1h
              example: 1h
            data:
              type: array
              description: Whether or not the vehicle should be actively charging during each charging bucket, starting at the `start_time`.
              items:
                $ref: '#/components/schemas/TimeSeriesItem'
      additionalProperties: false
    SmartChargeScheduleRequestBodyParams:
      required:
      - start_time
      - end_time
      - minutes_to_charge_complete
      properties:
        utility_account_id:
          description: (Beta - due to limited coverage) The unique ID of the utility account that this calculation is being run against. Either a `utility_account_id` or `main_tariff_id` is required for a valid request.
          type: integer
        main_tariff_id:
          type: string
          description: The Genability 'masterTariffId' unique identifier for this tariff. See [Genability documentation](https://developer.genability.com/api-reference/tariff-api/tariff/) for details. Either a `utility_account_id` or `main_tariff_id` is required for a valid request.
          example: gen_mtid_3331108
        start_time:
          description: 'ISO8601 timestamp of when the charge begins. Note that the timestamp will be rounded down to the start of latest charge block resolution.

            For example, if the `charge_block_resolution` is `1h` and the charging session starts at `2021-06-24T14:59:59Z`, the `start_time` used to calculate the curve''s cost will be normalized to `2021-06-24T14:00:00Z`. If the `charge_block_resolution` is `15m`, the `start_time` would be normalized to `2021-06-24T14:45:00Z`.

            This rounding technique eliminates ambiguity around charging that occurs across time-of-use on/mid/off-peak window boundaries.

            '
          type: string
          format: date-time
          example: '2021-03-18T22:00:00-07:00'
        end_time:
          description: ISO8601 datetime by which the charge must be complete.
          type: string
          format: date-time
          example: '2021-03-19T08:00:00-07:00'
        minutes_to_charge_complete:
          description: The number of minutes of charging required to complete a charge.
          type: integer
          example: 330
        charge_block_resolution:
          description: The duration of the charge blocks to use in the returned `charge_block_active` param.
          type: string
          enum:
          - 5m
          - 10m
          - 15m
          - 30m
          - 1h
          default: 1h
      additionalProperties: false
    UtilityAccountNotFoundError:


# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arcadia/refs/heads/main/openapi/arcadia-spark-api-openapi.yml