Solariance-API-V1
  1. System
Solariance-API-V1
  • Getting Started
  • Forecast
    • forecast/power
      GET
    • forecast/energy
      GET
    • forecast/temperature
      GET
    • forecast/export
      GET
    • forecast/optimizer
      POST
  • System
    • system/list
      GET
    • system/view
      GET
    • system/create
      POST
    • system/update
      PUT
    • system/delete
      DELETE
  • User
    • user/view
      GET
    • user/create
      POST
    • user/update
      PUT
    • user/delete
      DELETE
    • user/auth/pw
      POST
  • Ext
    • ext/pvgeneration
      GET
    • ext/pvshare
      GET
    • ext/price
      GET
    • ext/pvinstallation
      GET
  1. System

system/create

POST
https://api.solariance.de/v1/system/create

Endpoint Overview#

This Endpoint enables you to create systems.
There are two simulation options:
Simple Model:
Minimal data input required
Defaults to a standard south-facing roof with single-string configuration
All technical fields auto-generated by the backend
Less precise results
Advanced Model:
More information required
Allows configuration of multiple strings with different roof orientations and azimuths
Full technical details can be provided (modules, inverters, etc.)
Significantly more precise results

Supported Parameters#

NameTypeRequiredDescription
namestrYesSystem name
streetstrYesStreet address
housestrYesHouse number
postal_codestrYesPostal code
citystrYesCity
countrystrYesCountry
yearintYesCommissioning year
kWpfloatYesTotal system DC power (kWp)
latitudefloatYesDecimal degrees
longitudefloatYesDecimal degrees
moduleslistYes*Module array ([] for simple model; see note)
inverterdictYes*Inverter object ({} for simple model; see note)
correction_factorslist (float)Yes*Between [0.5-2] to adjust the forecast to systematic errors for every hour of the day. Length is 24 and default correction factor is 1.0
electricity_pricefloatYes*€/kWh (auto for simple model)
feed_in_tarifffloatYes*€/kWh (auto for simple model)
* For the simple model, these may be omitted or empty, and defaults/autogenerated values will be used.

Parameter Details#

System#

year:
Type: int (decimal)
Description: Installation/manufacture year of the module; used to apply annual degradation
correction_factor:
Type: float (decimal)
Description: Multiplier to statistically adjust the PV Power forecast
Range: 0.50 – 2.00 (in 0.01 steps)
Default: 1.0 if none

Module & Inverter Fields#

Module#

pdc0:
Type: int (Watts)
Description: Rated STC DC power of a single module
Range: Typicall between 100–600 W
gamma_pdc:
Type: float (decimal)
Description: Temperature Coefficient of Pmax or sometimes called STC temperature coefficient (usually negative), e.g. -0.004. If the value is provided as % in the datasheet, please convert it to its decimal equivalent.
Default: -0.004 if none
bifacial:
Type: bool
Description: Indicates whether the module is bifacial (capable of generating power from both front and rear surfaces)
Default: false if none

Inverter#

pdc0:
Type: int (Watts)
Description: DC power capacity of inverter. For simple model, matches total system kWp.
eta_inv_nom:
Type: float (decimal)
Description: Nominal inverter efficiency (e.g. 0.96). If the value is provided as % in the datasheet, please convert it to its decimal equivalent.
Default: 0.96 if none

Orientation & Mounting#

azimuth:
Type: float (degrees, 0–360)
Step: 1°
Description: Compass direction the panels of the string are facing (0° = North, 90° = East, 180° = South, 270° = West)
Tip: Use OSMCompass to estimate azimuth.
Screenshot 2025-06-04 101437.png
tilt:
Type: float (degrees, 0–90)
Step: 0.5°
Description: Angle between panels and ground, 0° = Flat, 90° = Vertical. Often equal to the angle of the roof.
roof_tilt.png
surface_type:
Type: str
Description: Material/context of installation; affects albedo/performance
Allowed: urban, grass, soil, sand, asphalt, concrete, aluminum, sea
Default: urban if none

Example Payloads#

Simple System Model#

Supply only the minimal required fields; the backend will auto-generate modules and inverter:
{
    "name": "My Simple PV",
    "street": "Egerlandstraße",
    "house": "7",
    "postal_code": "91058",
    "city": "Erlangen",
    "country": "Germany",
    "year": 2022,
    "kWp": 9.0,
    "latitude": 49.57,
    "longitude": 11.02,
    "modules": [],
    "inverter": {}
}

Advanced System Model#

Supply all detailed fields yourself:
{
    "name": "My Advancded PV",
    "street": "Egerlandstraße",
    "house": "7",
    "postal_code": "91058",
    "city": "Erlangen",
    "latitude": 49.57,
    "longitude": 11.02,
    "country": "Germany",
    "time_zone": "Europe/Berlin",
    "year": 2022,
    "kWp": 9.0,
    "electricity_price": 0.3,
    "feed_in_tariff": 0.1,
    "modules": [
        {
            "name": "Test Modul 380W",
            "quantity": 10,
            "azimuth": 90,
            "tilt": 35,
            "surface_type": "urban",
            "string_name": "East Roof",
            "custom_details": {
                "pdc0": 380,
                "gamma_pdc": -0.004,
                "bifacial": true
            }
        },
        {
            "name": "Test Modul 300W",
            "quantity": 8,
            "azimuth": 180,
            "tilt": 25,
            "surface_type": "grass",
            "string_name": "Garage Roof",
            "custom_details": {
                "pdc0": 300,
                "gamma_pdc": -0.004,
                "bifacial": false
            }
        }
    ],
    "inverter": {
        "name": "Test Inverter",
        "pdc0": 16500,
        "eta_inv_nom": 0.9835
    },
    "correction_factors": [],
}

Defaults#

surface_type = none ⇒ "urban"
gamma_pdc = none ⇒ -0.004
eta_inv_nom = none ⇒ 0.96
correction_factors = none or empty ⇒ [1.0]*24
bifacial = none ⇒ false

Further Notes#

Updates: Same logic applies for the system/update Endpoint.
Switching to Simple Model on Update:
Submit "modules": [] and "inverter": {} to re-autogenerate to match the new kWp.

Request

Header Params

Body Params application/json

Example
{
    "name": "My Advancded PV",
    "street": "Egerlandstraße",
    "house": "7",
    "postal_code": "91058",
    "city": "Erlangen",
    "latitude": 49.57,
    "longitude": 11.02,
    "country": "Germany",
    "year": 2022,
    "kWp": 9.0,
    "electricity_price": 0.3,
    "feed_in_tariff": 0.1,
    "modules": [
        {
            "name": "Test Modul 380W",
            "quantity": 10,
            "azimuth": 90,
            "tilt": 35,
            "surface_type": "urban",
            "string_name": "East Roof",
            "custom_details": {
                "pdc0": 380,
                "gamma_pdc": -0.004,
                "bifacial": true
            }
        },
        {
            "name": "Test Modul 300W",
            "quantity": 8,
            "azimuth": 180,
            "tilt": 25,
            "surface_type": "grass",
            "string_name": "Garage Roof",
            "custom_details": {
                "pdc0": 300,
                "gamma_pdc": -0.004,
                "bifacial": true
            }
        }
    ],
    "inverter": {
        "name": "Test Inverter",
        "pdc0": 16500,
        "eta_inv_nom": 0.9835
    },
    "correction_factors": []
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.solariance.de/v1/system/create' \
--header 'Authorization: Bearer eyxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "My Advancded PV",
    "street": "Egerlandstraße",
    "house": "7",
    "postal_code": "91058",
    "city": "Erlangen",
    "latitude": 49.57,
    "longitude": 11.02,
    "country": "Germany",
    "year": 2022,
    "kWp": 9.0,
    "electricity_price": 0.3,
    "feed_in_tariff": 0.1,
    "modules": [
        {
            "name": "Test Modul 380W",
            "quantity": 10,
            "azimuth": 90,
            "tilt": 35,
            "surface_type": "urban",
            "string_name": "East Roof",
            "custom_details": {
                "pdc0": 380,
                "gamma_pdc": -0.004,
                "bifacial": true
            }
        },
        {
            "name": "Test Modul 300W",
            "quantity": 8,
            "azimuth": 180,
            "tilt": 25,
            "surface_type": "grass",
            "string_name": "Garage Roof",
            "custom_details": {
                "pdc0": 300,
                "gamma_pdc": -0.004,
                "bifacial": true
            }
        }
    ],
    "inverter": {
        "name": "Test Inverter",
        "pdc0": 16500,
        "eta_inv_nom": 0.9835
    },
    "correction_factors": []
}'

Responses

🟢200Success
application/json
Body

Example
{
    "code": 200,
    "message": "Created System PVXXXX",
    "data": {
        "user_id": "xxxx",
        "system_id": "PVXXXX",
        "name": "My Advancded PV",
        "street": "Egerlandstraße",
        "house": "7",
        "postal_code": "91058",
        "city": "Erlangen",
        "latitude": 49.57,
        "longitude": 11.02,
        "country": "Germany",
        "time_zone": "Europe/Berlin",
        "year": 2022,
        "kWp": 9,
        "electricity_price": 0.3,
        "feed_in_tariff": 0.1,
        "modules": [
            {
                "name": "Test Modul 380W",
                "quantity": 10,
                "azimuth": 90,
                "tilt": 35,
                "surface_type": "urban",
                "string_name": "East Roof",
                "custom_details": {
                    "pdc0": 380,
                    "gamma_pdc": -0.004,
                    "bifacial": true
                }
            },
            {
                "name": "Test Modul 300W",
                "quantity": 8,
                "azimuth": 180,
                "tilt": 25,
                "surface_type": "grass",
                "string_name": "Garage Roof",
                "custom_details": {
                    "pdc0": 300,
                    "gamma_pdc": -0.004,
                    "bifacial": true
                }
            }
        ],
        "inverter": {
            "name": "Test Inverter",
            "pdc0": 16500,
            "eta_inv_nom": 0.9835
        },
        "correction_factors": [
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1,
            1
        ]
    }
}
🟠401Unauthorized
🟠403Forbidden
🟠405Method Not Allowed
🟠400Bad Request
Modified at 2026-01-19 09:00:18
Previous
system/view
Next
system/update
Built with