HomeGuidesAPI ReferenceChangelog
Log In
API Reference

Storage-in-Switch Request Template

Use this request template to run a Storage-in-Switch Savings Analysis with post-storage profiles generated by the Storage Profile endpoint.

Use this request template to run a Storage-in-Switch Savings Analysis with post-storage profiles generated by the Storage Profile endpoint.

For the full Savings Analysis request and response model, see Savings Analysis. To compare templates, see Savings Analysis Request Templates. For storage profile creation, generated profile behavior, and retrieval endpoints, see Storage Profiles API. For the full analysis workflow, see Analysis APIs.

What is Storage-in-Switch?

Storage-in-Switch is a paid Storage add-on for Switch. It lets you use existing usage and solar production profiles with the Storage Profile endpoint to model potential savings with battery storage factored in.

If you are an existing Switch customer and want to run storage optimization simulations, contact your account manager.

How Storage-in-Switch differs from Switch

Switch models solar and tariff optimization. Storage-in-Switch adds battery storage modeling for sites that include solar and storage.

Storage-in-Switch uses your existing data profiles plus battery-flow parameters to simulate battery operation. The storage optimization process creates adjusted profiles for grid imports, solar exports, and battery interactions. You then reference those generated profiles in the Savings Analysis request.

triangle-exclamation

Storage-in-Switch is a paid add-on to Switch. To enable it, contact your account manager or email [email protected].


Storage-in-Switch template

{
    "accountId": "4c6176b3-46c2-47d2-829f-5b8f842aa9ae",
    "fromDateTime": "2025-10-01T00:00:00-07:00",
    "propertyInputs": [
        {
            "scenarios": "before",
            "keyName": "masterTariffId",
            "dataValue": "522"
        },
        {
            "scenarios": "before",
            "keyName": "providerProfileId",
            "dataValue": "custom-usage-profile-ppid"
        },
        {
            "scenarios": "after,solar",
            "keyName": "storageProviderProfileId",
            "dataValue": "storage-optimization-example-sppid"
        },
        {
            "scenarios": "solar,after,before",
            "keyName": "projectDuration",
            "dataValue": 10
        }
    ],
    "batteryDegradation": {
        "percentPerYear": 2.5
    }
}

How to interpret the template

The request starts with top-level fields, including the account identifier and the analysis start time.

  • Use accountId or providerAccountId to identify the account.
  • Use fromDateTime to set the analysis start time. Include an explicit timezone.
  • Use projectDuration in propertyInputs to control the analysis horizon. The toDateTime value shown in responses is derived from this duration and is deprecated as an input field.

propertyInputs list

The propertyInputs list contains key/value objects that affect the underlying calculation. These inputs can reference profile data, such as "keyName": "profileId", or calculation criteria, such as "keyName": "projectDuration".

Review Properties API to understand available property keys and metadata. For guidance on using properties to improve savings analysis accuracy, see Improve calculation accuracy with rate criteria properties.

For Storage-in-Switch, the request defines pre-solar usage and the generated storage profile set. The storageProviderProfileId property references the three optimized post-storage profiles created by the /rest/v1/profiles/storage endpoint.

Use the annotated fragment below to map each request field to its role in the Savings Analysis.

// You can choose to supply the `accountId` (Arcadia UUID) or `providerAccountId` (Custom Identifier)

"accountId": "4c6176b3-46c2-47d2-829f-5b8f842aa9ae"

// It is important to be explicit with your time zone designations (ISO8601) both in the Savings Analysis request and when creating your initial usage and solar profiles!

"fromDateTime": "2025-10-01T00:00:00-07:00"

// The post-solar MTID is stored in the optimized storage profiles, so only the pre-solar MTID is passed here.

{
    "scenarios": "before",
    "keyName": "masterTariffId",
    "dataValue": "522"
}

// This property references the profile that contains base consumption data.
// In a Storage-in-Switch request, pass this profile only for the "before" scenario.
// This example uses `providerProfileId`, but you can use the Arcadia-generated `profileId` instead.
{
    "scenarios": "before",
    "keyName": "providerProfileId",
    "dataValue": "custom-usage-profile-ppid"
}

// When calling `/rest/v1/profiles/storage`, supply a top-level `providerProfileId`.
// Use that value as the `storageProviderProfileId` below.
// This property represents the generated `-usage`, `-solar`, and `-storage` profiles as one storage profile set.

{
    "scenarios": "after,solar",
    "keyName": "storageProviderProfileId",
    "dataValue": "storage-optimization-example-sppid"
}

// Keep each `keyName` aligned with the corresponding `dataValue`. Mismatched keys and values can cause request errors.

For the complete workflow, see Forecast savings with Storage-in-Switch. Creating the storageProviderProfileId value happens in Step 5: Generate new post-storage profiles.

You can supply the three child profiles individually, but we recommend using storageProviderProfileId because it is simpler and reduces request errors. This approach lets Switch apply the correct operators and avoids unnecessary request complexity.

triangle-exclamation

If you are a Storage add-on customer and receive unexpected errors or results, capture your request and response JSON and submit a support ticket to [email protected].


Next steps

  1. Return to Savings Analysis Request Templates to compare Quick Switch, Full Switch, and Storage-in-Switch.
  2. Use Add Storage Profile to generate the post-storage profiles referenced by storageProviderProfileId.
  3. Use Savings Analysis to review the full request and response model.