Arcadia Spark API

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

OpenAPI Specification

arcadia-spark-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Arcadia API Reference Auth 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:
    OptimizedTariffRecommendationsLseIdentificationParamError:
      required:
      - error
      properties:
        error:
          type: object
          required:
          - description
          - type
          - details
          properties:
            description:
              type: string
              enum:
              - Either utility_account_id or zip_code/lse_id must be specified
            type:
              type: string
              enum:
              - BAD_REQUEST
            details:
              type: 'null'
      additionalProperties: false
    UtilityAccountNotFoundError:
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Couldn't find UtilityAccount
      additionalProperties: false
    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
    OptimizedTariffRecommendationsResponse:
      required:
      - country
      - lse_id
      - zip_code
      - recommendations
      properties:
        country:
          type: string
          description: The country used for determining tariff applicability
          example: US
        lse_id:
          type: string
          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.
          example: gen_lse_734
        zip_code:
          type: string
          description: The zip code used for determining tariff applicability
          example: '94706'
        recommendations:
          type: array
          description: List of tariffs that best fit the submitted applicability question answers. Used to define Tariff-Scenarios for the Calculate Tariff-Scenario Cost endpoint
          items:
            $ref: '#/components/schemas/Tariff'
      additionalProperties: false
    ChargeCostRequestBodyParams:
      required:
      - start_time
      - energy_usage_kwh
      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 normalized 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 normalization 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'
        charge_block_resolution:
          description: The duration of the charge blocks provided in the `energy_usage_kwh` param.
          type: string
          enum:
          - 5m
          - 10m
          - 15m
          - 30m
          - 1h
          default: 1h
        energy_usage_kwh:
          description: The load curve being priced. An array of charge blocks with each block representing the kWh of power consumed or to be consumed in that block.
          type: array
          items:
            type: number
          example:
          - 0
          - 0
          - 7.2
          - 0
          - 7.2
          - 2.9
      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
    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
    TimeSeriesItem:
      required:
      - timestamp
      - value
      properties:
        timestamp:
          description: ISO8601 timestamp indicating time of data collection
          type: string
          format: date-time
        value:
          description: Data value of resource
          type: number
      additionalProperties: false
    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
              nullable: true
      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
              nullable: true
      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
    EvChargePlan:
      description: Specifies a time window where the EV is at home and available for charging.
      required:
      - start_day_of_week
      - start_time
      - end_day_of_week
      - end_time
      - expected_consumption_kwh
      properties:
        start_day_of_week:
          type: integer
          description: Day of the week the available charging block begins. ISO format -- 1 is Monday, 7 is Sunday.
          example: 1
        start_time:
          type: string
          description: Time when the EV is available to begin charging. For example, when the driver comes home in the evening.
          example: '15:00:00'
        end_day_of_week:
          type: integer
          description: Day of the week the available charging block ends. ISO format -- 1 is Monday, 7 is Sunday.
          example: 2
        end_time:
          type: string
          description: Time when the EV is no longer available for charging. For example, when the driver leaves for their morning commute.
          example: 06:00:00
        expected_consumption_kwh:
          type: number
          description: Expected kwh consumption until the next EvChargePlan residential charging event.
          example: 15
      additionalProperties: false
    TimeOfUse:
      title: TimeOfUse
      type: object
      properties:
        season:
          title: Season
          description: Season to which this TOU schedule applies.
          allOf:
          - $ref: '#/components/schemas/TouSeason'
        touPeriods:
          title: Touperiods
          description: Set of TOU periods defining the schedule.
          type: array
          items:
            $ref: '#/components/schemas/TouPeriod'
      required:
      - touPeriods
    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
    FixedSchedule:
      title: FixedSchedule
      type: object
      properties:
        chargeTous:
          title: Chargetous
          description: TOU schedule for charging the storage system.
          type: array
          items:
            $ref: '#/components/schemas/TimeOfUse'
        dischargeTous:
          title: Dischargetous
          description: TOU schedule for discharging the storage system.
          type: array
          it

# --- 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