Skip to main content

Modeling Object Inputs

Before running energy model simulations, integrations usually create and reuse modeling objects.

Location (POST /locations)

Body model: LocationCreateRequest

Weather Data (POST /weatherdata)

Body model: WeatherDataCreateRequest
Weather arrays must have equal lengths. Validation errors return 400 for invalid payload semantics.

Module

File Upload (POST /modules)

  • Content type: multipart form-data
  • Required part: file (.pan)
  • API parses and stores properties and optional AOI curve automatically.

JSON (POST /modules/json)

Body model: ModuleCreateRequest

Inverter

File Upload (POST /inverters)

  • Content type: multipart form-data
  • Required part: file (.ond)
  • API parses and stores properties and optional efficiency points.

JSON (POST /inverters/json)

Body model: InverterCreateRequest

Shading Scene

Canonical JSON Create (POST /shadingscenes)

Body model: ShadingSceneCreateRequest Validation notes:
  • Each table must provide either outline or all of xpoints/ypoints/zpoints.
  • Table geometry is rectangular: exactly 4 corner points.
  • torqueTubePoint_1, torqueTubePoint_2, and torqueTubeVector are optional and auto-derived when omitted.
  • transverseDiodes and stringsPerLength must be positive integers and default to 10 and 1.
  • Obstruction outlines need at least 3 points.
  • Top-level extra fields are rejected; nested sceneJson objects allow pass-through metadata.

File Import (POST /shadingscenes/import)

Content type: multipart form-data

Tracking Inputs (POST /shadingscenes/{scene_id}/trackinginputs)

  • Required form field: gcr
  • Optional fields: azimuth, axis_tilt, back_tracking, max_angle, terrain_aware, terrain_aware_diode_threshold, terrain_aware_method

Reuse Pattern

  1. Create modeling objects once per workspace.
  2. Store returned IDs.
  3. Reference those IDs in EnergyModelInput block/root payloads.