Arcadiapower2 · Schema

StorageOptimizationSchedulesRequestParams

EnergySoftware-as-a-ServiceEnterpriseSustainabilityData

Properties

Name Type Description
main_tariff_id string The Genability 'masterTariffId' unique identifier for this tariff, prefixed with `gen_mtid_`. See [Genability documentation](https://developer.genability.com/api-reference/tariff-api/tariff/) for deta
tariff_property_inputs array Genability `propertyInputs` applicable to the specified tariff that may affect the cost structure being optimized against. See [Genability documentation](https://developer.genability.com/api-reference
from_date_time string Start time of the consumption and solar curves. Must be the start of an hour (i.e. `:00:00`).
consumption_curve_kwh_ac array Timeseries representing how much AC consumption needs to be met at each timestep (kWh AC).
solar_generation_curve_kwh_dc array Timeseries representing how much DC solar production occurs at each timestep (kWh DC). If absent, assumed to be 0. If present, must have the same length as `consumption_curve_kwh_ac`. Note that DC to
dispatch_strategy object Parameters controlling how to compute dispatch curves. Defaults to `{ 'optimize': true }`, which uses constrained optimization to determine a best-case schedule. Also supports `charge_on_surplus` and
solar_dc_to_ac_efficiency number How efficiently the solar inverter converts outgoing DC power to AC (`0.0` - `1.0`).
allow_grid_to_battery boolean Allow the battery to be charged from the grid (`true`/`false`, defaults to `true`). DC-coupled batteries only chargable via solar should set this to `false`.
allow_solar_to_battery boolean Allow the battery to be charged from solar (`true`/`false`, defaults to `true`). AC-coupled batteries may want to set this to `false` if indirect AC charging from converted solar is not possible.
allow_solar_to_grid boolean Allow excess solar to be sold back to the grid (`true`/`false`, defaults to `true`). Solar tied exclusively to the battery and/or the site should set this to `false`, which may cause curtailment in th
allow_battery_to_grid boolean Allow battery to export energy to the grid (`true`/`false`, defaults to `true`). Batteries configured exclusively for self-consumption should set this to `false`.
battery_dc_coupled boolean Whether the battery is DC coupled (`true`/`false`). If `false`, solar power must be converted from DC to AC and then back to DC before it can be stored.
battery_ac_to_dc_efficiency number How efficiently the battery inverter converts incoming AC power to DC (`0.0` - `1.0`).
battery_dc_to_ac_efficiency number How efficiently the battery inverter converts outgoing DC power to AC (`0.0` - `1.0`)
battery_input_efficiency number Coulombic efficiency of the battery, i.e. ratio of input kWh for a full charge to output kWh for a full discharge (`0.0` - `1.0`).
battery_nameplate_power number The maximum amount of power that can instantaneously flow into or out of the battery (kW DC).
battery_nameplate_capacity number Maximum charge that the battery can hold (kWh DC).
battery_min_soc number Minimum state of charge of the battery (`0.0` - `1.0`).
battery_max_soc number Maximum state of charge of the battery (`0.0` - `1.0`).
battery_initial_soc number Initial state of charge of the battery (`0.0` - `1.0`).
battery_degradation_cost_per_discharge_kwh number Optionally impose a cost on total discharge from the battery as a simplified degradation model ($/kWh).
export_limit_kwh_ac number Maximum energy that can be exported to the grid at any given timestep (kWh AC). Leave unspecified for unlimited exports, or set to `0` to forbid them.
View JSON Schema on GitHub

JSON Schema

arcadiapower2-storage-optimization-schedules-request-params-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/arcadiapower2/main/json-schema/arcadiapower2-storage-optimization-schedules-request-params-schema.json",
  "title": "StorageOptimizationSchedulesRequestParams",
  "x-generated": "2026-09-26",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/arcadiapower2-openapi.yaml#/components/schemas/StorageOptimizationSchedulesRequestParams",
  "type": "object",
  "properties": {
    "main_tariff_id": {
      "description": "The Genability 'masterTariffId' unique identifier for this tariff, prefixed with `gen_mtid_`. See [Genability documentation](https://developer.genability.com/api-reference/tariff-api/tariff/) for details.",
      "type": "string"
    },
    "tariff_property_inputs": {
      "description": "Genability `propertyInputs` applicable to the specified tariff that may affect the cost structure being optimized against. See [Genability documentation](https://developer.genability.com/api-reference/calculation-api/cost-calculation) for details on how to set these inputs for specific tariffs. Use Genability-defined input format.",
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "keyName",
          "dataValue"
        ],
        "properties": {
          "keyName": {
            "type": "string"
          },
          "dataValue": {
            "type": [
              "boolean",
              "number",
              "string"
            ]
          }
        }
      }
    },
    "from_date_time": {
      "description": "Start time of the consumption and solar curves. Must be the start of an hour (i.e. `:00:00`).",
      "type": "string",
      "format": "date-time"
    },
    "consumption_curve_kwh_ac": {
      "description": "Timeseries representing how much AC consumption needs to be met at each timestep (kWh AC).",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "number",
        "minimum": 0
      }
    },
    "solar_generation_curve_kwh_dc": {
      "description": "Timeseries representing how much DC solar production occurs at each timestep (kWh DC). If absent, assumed to be 0. If present, must have the same length as `consumption_curve_kwh_ac`. Note that DC to AC conversion is specified with `solar_dc_to_ac_efficiency`.",
      "type": "array",
      "items": {
        "type": "number",
        "minimum": 0
      }
    },
    "dispatch_strategy": {
      "description": "Parameters controlling how to compute dispatch curves. Defaults to `{ 'optimize': true }`, which uses constrained optimization to determine a best-case schedule. Also supports `charge_on_surplus` and `fixed_schedule` strategies.",
      "allOf": [
        {
          "$ref": "#/$defs/DispatchStrategy"
        }
      ]
    },
    "solar_dc_to_ac_efficiency": {
      "description": "How efficiently the solar inverter converts outgoing DC power to AC (`0.0` - `1.0`).",
      "default": 0.96,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "allow_grid_to_battery": {
      "description": "Allow the battery to be charged from the grid (`true`/`false`, defaults to `true`). DC-coupled batteries only chargable via solar should set this to `false`.",
      "default": true,
      "type": "boolean"
    },
    "allow_solar_to_battery": {
      "description": "Allow the battery to be charged from solar (`true`/`false`, defaults to `true`). AC-coupled batteries may want to set this to `false` if indirect AC charging from converted solar is not possible.",
      "default": true,
      "type": "boolean"
    },
    "allow_solar_to_grid": {
      "description": "Allow excess solar to be sold back to the grid (`true`/`false`, defaults to `true`). Solar tied exclusively to the battery and/or the site should set this to `false`, which may cause curtailment in the result.",
      "default": true,
      "type": "boolean"
    },
    "allow_battery_to_grid": {
      "description": "Allow battery to export energy to the grid (`true`/`false`, defaults to `true`). Batteries configured exclusively for self-consumption should set this to `false`.",
      "default": true,
      "type": "boolean"
    },
    "battery_dc_coupled": {
      "description": "Whether the battery is DC coupled (`true`/`false`). If `false`, solar power must be converted from DC to AC and then back to DC before it can be stored.",
      "default": true,
      "type": "boolean"
    },
    "battery_ac_to_dc_efficiency": {
      "description": "How efficiently the battery inverter converts incoming AC power to DC (`0.0` - `1.0`).",
      "default": 0.96,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "battery_dc_to_ac_efficiency": {
      "description": "How efficiently the battery inverter converts outgoing DC power to AC (`0.0` - `1.0`)",
      "default": 0.96,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "battery_input_efficiency": {
      "description": "Coulombic efficiency of the battery, i.e. ratio of input kWh for a full charge to output kWh for a full discharge (`0.0` - `1.0`).",
      "default": 0.975,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "battery_nameplate_power": {
      "description": "The maximum amount of power that can instantaneously flow into or out of the battery (kW DC).",
      "default": 3,
      "exclusiveMinimum": 0,
      "type": "number"
    },
    "battery_nameplate_capacity": {
      "description": "Maximum charge that the battery can hold (kWh DC).",
      "default": 6,
      "exclusiveMinimum": 0,
      "type": "number"
    },
    "battery_min_soc": {
      "description": "Minimum state of charge of the battery (`0.0` - `1.0`).",
      "default": 0.1,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "battery_max_soc": {
      "description": "Maximum state of charge of the battery (`0.0` - `1.0`).",
      "default": 1,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "battery_initial_soc": {
      "description": "Initial state of charge of the battery (`0.0` - `1.0`).",
      "default": 0.5,
      "minimum": 0,
      "maximum": 1,
      "type": "number"
    },
    "battery_degradation_cost_per_discharge_kwh": {
      "description": "Optionally impose a cost on total discharge from the battery as a simplified degradation model ($/kWh).",
      "default": 0,
      "minimum": 0,
      "type": "number"
    },
    "export_limit_kwh_ac": {
      "description": "Maximum energy that can be exported to the grid at any given timestep (kWh AC). Leave unspecified for unlimited exports, or set to `0` to forbid them.",
      "minimum": 0,
      "type": "number"
    }
  },
  "required": [
    "main_tariff_id",
    "from_date_time",
    "consumption_curve_kwh_ac"
  ],
  "additionalProperties": false,
  "definitions": {
    "TouSeason": {
      "title": "TouSeason",
      "type": "object",
      "properties": {
        "seasonFromDay": {
          "title": "Seasonfromday",
          "description": "Day of the month on which this season begins (1 - 31).",
          "minimum": 1,
          "maximum": 31,
          "type": "integer"
        },
        "seasonToDay": {
          "title": "Seasontoday",
          "description": "Day of the month after which this season ends (1 - 31).",
          "minimum": 1,
          "maximum": 31,
          "type": "integer"
        },
        "seasonFromMonth": {
          "title": "Seasonfrommonth",
          "description": "Month of the year on which this season begins (1 - 12).",
          "minimum": 1,
          "maximum": 12,
          "type": "integer"
        },
        "seasonToMonth": {
          "title": "Seasontomonth",
          "description": "Month of the year after which this season ends (1 - 12). End month is included in the season.",
          "minimum": 1,
          "maximum": 12,
          "type": "integer"
        }
      },
      "required": [
        "seasonFromMonth",
        "seasonToMonth"
      ]
    },
    "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"
      ]
    },
    "TimeOfUse": {
      "title": "TimeOfUse",
      "type": "object",
      "properties": {
        "season": {
          "title": "Season",
          "description": "Season to which this TOU schedule applies.",
          "allOf": [
            {
              "$ref": "#/$defs/TouSeason"
            }
          ]
        },
        "touPeriods": {
          "title": "Touperiods",
          "description": "Set of TOU periods defining the schedule.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/TouPeriod"
          }
        }
      },
      "required": [
        "touPeriods"
      ]
    },
    "FixedSchedule": {
      "title": "FixedSchedule",
      "type": "object",
      "properties": {
        "chargeTous": {
          "title": "Chargetous",
          "description": "TOU schedule for charging the storage system.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/TimeOfUse"
          }
        },
        "dischargeTous": {
          "title": "Dischargetous",
          "description": "TOU schedule for discharging the storage system.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/TimeOfUse"
          }
        },
        "timezone": {
          "title": "Timezone",
          "description": "Timezone in which the schedule is defined. Defaults to tariff timezone.",
          "type": "string"
        }
      },
      "required": [
        "chargeTous",
        "dischargeTous"
      ]
    },
    "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": "#/$defs/FixedSchedule"
            }
          ]
        }
      }
    }
  },
  "$defs": {
    "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": "#/$defs/FixedSchedule"
            }
          ]
        }
      }
    },
    "FixedSchedule": {
      "title": "FixedSchedule",
      "type": "object",
      "properties": {
        "chargeTous": {
          "title": "Chargetous",
          "description": "TOU schedule for charging the storage system.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/TimeOfUse"
          }
        },
        "dischargeTous": {
          "title": "Dischargetous",
          "description": "TOU schedule for discharging the storage system.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/TimeOfUse"
          }
        },
        "timezone": {
          "title": "Timezone",
          "description": "Timezone in which the schedule is defined. Defaults to tariff timezone.",
          "type": "string"
        }
      },
      "required": [
        "chargeTous",
        "dischargeTous"
      ]
    },
    "TimeOfUse": {
      "title": "TimeOfUse",
      "type": "object",
      "properties": {
        "season": {
          "title": "Season",
          "description": "Season to which this TOU schedule applies.",
          "allOf": [
            {
              "$ref": "#/$defs/TouSeason"
            }
          ]
        },
        "touPeriods": {
          "title": "Touperiods",
          "description": "Set of TOU periods defining the schedule.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/TouPeriod"
          }
        }
      },
      "required": [
        "touPeriods"
      ]
    },
    "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"
      ]
    },
    "TouSeason": {
      "title": "TouSeason",
      "type": "object",
      "properties": {
        "seasonFromDay": {
          "title": "Seasonfromday",
          "description": "Day of the month on which this season begins (1 - 31).",
          "minimum": 1,
          "maximum": 31,
          "type": "integer"
        },
        "seasonToDay": {
          "title": "Seasontoday",
          "description": "Day of the month after which this season ends (1 - 31).",
          "minimum": 1,
          "maximum": 31,
          "type": "integer"
        },
        "seasonFromMonth": {
          "title": "Seasonfrommonth",
          "description": "Month of the year on which this season begins (1 - 12).",
          "minimum": 1,
          "maximum": 12,
          "type": "integer"
        },
        "seasonToMonth": {
          "title": "Seasontomonth",
          "description": "Month of the year after which this season ends (1 - 12). End month is included in the season.",
          "minimum": 1,
          "maximum": 12,
          "type": "integer"
        }
      },
      "required": [
        "seasonFromMonth",
        "seasonToMonth"
      ]
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/arcadiapower2-storage-optimization-schedules-request-params"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.