---
title: "Get a PV planning"
method: GET
path: "/solar-plannings/{solarPlanningId}"
tags: ["PV plannings"]
---

# Get a PV planning

`GET /solar-plannings/{solarPlanningId}`

## Request

- Base URL: `https://api3.autarc.energy/v1`
- URL: `https://api3.autarc.energy/v1/solar-plannings/{solarPlanningId}`
- Auth: API key in header `X-Api-Key`

One PV planning with the products it plans: the scene hardware grouped by
object type and catalog item (drawn modules or by-numbers module arrays,
inverters, batteries, DC optimizers, and mounting kits) and the
bill-of-materials lines the planner stores (quantity overrides and manual
lines). The complete bill of materials is derived in Autarc Pro and is
not part of this export.

Read-only. The 3D scene geometry, renderer output and shading overlays are
not part of this export.

## Path parameters

- `solarPlanningId` string, uuid, required

## Response `200`

One PV planning with its planned hardware and stored bill-of-materials adjustments.

- SolarPlanningDetail: A PV planning of a project, as the Autarc PV planner stored it. All figures are read back from what the planner computed and persisted — nothing is recalculated when this endpoint is called.
  - `id` string, uuid, required
  - `projectId` string, uuid, required
  - `name` string, required
  - `status` string, required: Installation status of the planning (notStarted, inProgress, completed).
  - `backgroundSource` string, required: Where the planner's site background came from: user, google, ortho, droneScan, photogrammetry, googleOrthomap, mapboxSatellite, appleMaps, perspectivePhoto, the country orthophotos (frenchOrtho, luxembourgOrtho, switzerlandOrtho, polandOrtho, austriaOrtho), the Bluesky UK aerial imagery (bluesky5cm, bluesky12_5cm), or byNumbers for a planning configured by numbers (declared module arrays, no drawn scene). New sources may be added; treat an unknown value as an unrecognised imagery source.
  - `siteAssessment` string, required: How the site was evaluated (remote or on_site).
  - `mcsCompliant` boolean, required: Whether the planning is maintained under the UK MCS ruleset.
  - `kwp` number: Installed DC power in kWp — the sum of the drawn modules' nominal power (STC) plus the declared power of the by-numbers module arrays. Modules that cannot be built (off their roof, on an obstruction or under another module) are not counted. Omitted when no planned module carries a power figure.
  - `panelCount` integer, required: Number of planned modules — drawn modules plus the module counts declared on by-numbers arrays. Modules that cannot be built (off their roof, on an obstruction or under another module) are not counted.
  - `roofCount` integer, required
  - `inverterCount` integer, required
  - `batteryCount` integer, required
  - `stringCount` integer, required
  - `annualYieldKwh` number: Yearly yield in kWh from the planner's stored yield snapshot (PVGIS or the static tables). Omitted when the planner has not calculated a yield for this planning yet — it is never reported as 0.
  - `monthlyYieldKwh` number[]: Monthly yield in kWh from the same stored snapshot, January first.
  - `yieldSource` string: Which model produced the stored yield (pvgis or static).
  - `yieldCapturedAt` string, date-time: When the stored yield was calculated.
  - `yearlyEnergyCostIncrease` number: Assumed yearly electricity price escalation in percent (e.g. 3 for 3 %), one of the savings inputs.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `components` PlannedSolarComponent[], required: Planned hardware grouped by scene object type and catalog item.
    - `surfaceType` string, required: Scene object type — panel (a drawn module), pvArray (a module array of a planning configured by numbers), inverter, battery, mountingSystem or dcOptimizer.
    - `quantity` integer, required: Number of units. For pvArray it is the arrays' declared module count; for mountingSystem it is the number of roofs using the mounting kit; for every other type it is the number of placed objects.
    - `productId` string, uuid
    - `productPackageId` string, uuid: The mounting kit (product package) of a mountingSystem group.
    - `productType` string: Catalog product type (solarPanel, inverter, battery, rail, …).
    - `name` string: Name of the catalog product, or of the mounting kit.
    - `manufacturer` string: The catalog product's manufacturer. Mounting kits carry none.
    - `articleNumber` string
    - `unit` string: The catalog product's (or mounting kit's) unit.
  - `bomAdjustments` SolarPlanningBomLine[], required: The bill-of-materials lines the planner stores: quantity overrides of derived lines and manually added lines, in the planner's own order. This is NOT the complete bill of materials — the derived lines (the equipment and mounting-kit lines computed from the scene) are calculated in Autarc Pro and not persisted, so a derived line the user has not overridden does not appear here.
    - `id` string, uuid, required
    - `kind` 'override' | 'manual', required: override — `amount` replaces the quantity of a line Autarc Pro derives from the scene; manual — a line the user added.
    - `derivedLineKey` string: Set on `override` lines only: the identity of the computed bill-of-materials line this row overrides — `<section>:<productId>` for equipment, or `mounting:<surfaceId>:<productId>` for a mounting-system item, so the same product in two mounting kits stays distinguishable. Match it against the line Autarc Pro derives from the planning to apply the adjusted quantity; a key that matches no derived line is an orphaned override. Treat it as an opaque string beyond these documented prefixes.
    - `index` number, required: Position of the line in the bill of materials.
    - `name` string: The line's own label, falling back to the linked product's name.
    - `productId` string, uuid
    - `productType` string
    - `manufacturer` string
    - `articleNumber` string
    - `amount` number, required: The line's quantity (for an override, the overriding quantity).
    - `unit` string
    - `unitPriceInCent` number
    - `note` string

## Other responses

- `400`: Invalid request — a malformed id, filter, pagination parameter or body. The body is a plain-text message naming the problem.
- `404`: The specified resource was not found

---

[API](https://skmtc.dev/autarc/apis/autarc-2-0-api.md) - [All operations](https://skmtc.dev/autarc/apis/autarc-2-0-api/llms.txt) - [OpenAPI document](https://skmtc.dev/autarc/apis/autarc-2-0-api/revisions/adfb20a40efc?raw)
