---
title: "Create a node in a site"
method: POST
path: "/api/v1/energy/sites/{siteId}/nodes"
tags: ["Energy Sites"]
---

# Create a node in a site

`POST /api/v1/energy/sites/{siteId}/nodes`

## Request

- Base URL: `https://partner-api.monta.com`
- URL: `https://partner-api.monta.com/api/v1/energy/sites/{siteId}/nodes`
- Auth: HTTP bearer

Required scope: `energy:write`

🚧 **BETA** — This endpoint is currently in the BETA phase and its response structure may change in the future.

📘 **Feature flag required** — This endpoint is not available by default. It must be explicitly enabled for your operator account upon request. Please contact your Monta Business Partner to request access to this feature.

## Path parameters

- `siteId` integer, required

## Request body

- CreateNodeRequest
  - `parentNodeId` integer, required
  - `name` string, required
  - `fuseLimitA` number, double, nullable
  - `bufferA` number, double, nullable
  - `powerLimitW` number, double, nullable
  - `maxExpectedResidualCurrentA` number, double, nullable
  - `maxExpectedResidualPowerW` number, double, nullable

## Response `201`

createNode 201 response

- Node
  - `id` integer, required
  - `name` string, required
  - `fuseLimitA` number, double, nullable
  - `powerLimitW` number, double, nullable
  - `powerLimitSchedule` PowerLimitScheduleItem[], nullable
    - `dayOfWeek` string, required
    - `startTime` string, required
    - `endTime` string, required
    - `powerLimitW` number, double, required
  - `meter` Meter
    - `type` string, required
    - `properties` MeterProperties, required
      - `meterUuid` string, nullable
      - `chargePointIdentity` string, nullable
      - `isReceivingData` boolean, nullable
      - `timeoutSeconds` integer, nullable
      - `meterIdentifier` string, nullable
      - `digitalInputNumber` integer, nullable
      - `digitalInputActiveLevel` string, nullable
      - `lastDi1` integer, nullable
      - `lastDi2` integer, nullable
      - `lastDiAt` string, date-time, nullable
      - `mqttTopic` string, nullable
      - `topicPrefix` string, nullable
    - `meterValues` MeterValues
      - `measuredAt` string, required
      - `currentL1A` number, double, nullable
      - `currentL2A` number, double, nullable
      - `currentL3A` number, double, nullable
      - `voltageL1V` number, double, nullable
      - `voltageL2V` number, double, nullable
      - `voltageL3V` number, double, nullable
      - `powerL1W` number, double, nullable
      - `powerL2W` number, double, nullable
      - `powerL3W` number, double, nullable
      - `powerW` number, double, nullable
      - `kwh` number, double, nullable
      - `soc` number, double, nullable
      - `currentDcA` number, double, nullable
      - `voltageDcV` number, double, nullable
      - `powerDcW` number, double, nullable
  - `residualValues` MeterValues
    - `measuredAt` string, required
    - `currentL1A` number, double, nullable
    - `currentL2A` number, double, nullable
    - `currentL3A` number, double, nullable
    - `voltageL1V` number, double, nullable
    - `voltageL2V` number, double, nullable
    - `voltageL3V` number, double, nullable
    - `powerL1W` number, double, nullable
    - `powerL2W` number, double, nullable
    - `powerL3W` number, double, nullable
    - `powerW` number, double, nullable
    - `kwh` number, double, nullable
    - `soc` number, double, nullable
    - `currentDcA` number, double, nullable
    - `voltageDcV` number, double, nullable
    - `powerDcW` number, double, nullable
  - `nodes` Node[], nullable
  - `evses` Evse[], nullable
    - `chargingStationIdentity` string, required
    - `connectorId` integer, required
    - `phaseSetup` string, required
    - `minPowerW` number, double, nullable
    - `maxPowerW` number, double, nullable
    - `minCurrentA` number, double, nullable
    - `maxCurrentA` number, double, nullable
    - `charge` Charge1
      - `chargeId` integer, nullable
      - `ocppChargeId` string, required
      - `startTime` string, date-time, required
      - `meterValues` MeterValues
        - `measuredAt` string, required
        - `currentL1A` number, double, nullable
        - `currentL2A` number, double, nullable
        - `currentL3A` number, double, nullable
        - `voltageL1V` number, double, nullable
        - `voltageL2V` number, double, nullable
        - `voltageL3V` number, double, nullable
        - `powerL1W` number, double, nullable
        - `powerL2W` number, double, nullable
        - `powerL3W` number, double, nullable
        - `powerW` number, double, nullable
        - `kwh` number, double, nullable
        - `soc` number, double, nullable
        - `currentDcA` number, double, nullable
        - `voltageDcV` number, double, nullable
        - `powerDcW` number, double, nullable
      - `schedule` ChargeScheduleItem[], nullable
        - `start` string, required
        - `end` string, required
        - `currentA` number, double, required
        - `numberOfPhases` integer, required
        - `powerW` number, double, required
      - `chargeIntentInstance` ChargeIntentInstance
        - `intentSource` IntentSource, required
          - `type` string, required
          - `idTag` string, nullable
        - `type` string, required
        - `departureTime` string, date-time, nullable
        - `target` Target, required
          - `soc` number, double, nullable
          - `kwh` number, double, nullable
        - `priority` integer, required
      - `startingWh` integer, nullable
      - `startingSoc` number, double, nullable
      - `chargedWh` integer, nullable
      - `remainingKwh` number, double, nullable
      - `soc` number, double, nullable
      - `kwh` number, double, nullable
      - `vehicle` Vehicle
        - `vehicleId` integer, nullable
        - `vehicleIdTag` string, required
        - `batteryCapacityKwh` number, double, nullable
        - `chargeIntent` ChargeIntent, required
          - `type` 'PRICE_OPTIMIZE' | 'CHARGE_NOW', required
          - `departureTime` string, partial-time, nullable
          - `target` Target
            - `soc` number, double, nullable
            - `kwh` number, double, nullable
          - `scheduleOverrides` ScheduleOverride[], required
            - `id` string, nullable
            - `startDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required
            - `startTime` string, partial-time, required
            - `endDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required
            - `endTime` string, partial-time, required
            - `type` 'PRICE_OPTIMIZE' | 'CHARGE_NOW', required
            - `departureDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'
            - `departureTime` string, partial-time, nullable
            - `target` Target
              - …
          - `priority` integer, nullable
        - `integrationCapacityKwh` number, double, nullable
        - `maxKwAc` number, double, nullable
        - `maxKwDc` number, double, nullable
      - `maxObservedPowerW` number, double, nullable
      - `lastAllocatedCurrent` number, double, nullable
      - `lastAllocatedPowerW` number, double, nullable
      - `lastAllocatedAt` string, date-time, nullable
      - `estimatedEndTime` string, date-time, nullable
      - `ocppStatus` string, nullable
      - `ocppStatusAt` string, date-time, nullable
      - `batteryCapacityKwh` number, double, nullable
      - `effectiveTargetKwh` number, double, nullable
      - `assumedVehicleMaxPowerW` number, double, nullable
      - `topUpDeltaW` number, double, nullable
    - `zeroAllowed` boolean, required
    - `loadManagementDisabled` boolean, required
    - `phpChargerId` integer, nullable
    - `rampUpProtectionState` string, nullable
    - `externalPowerLimitW` number, double, nullable
    - `externalPowerLimitExpiresAt` string, date-time, nullable
    - `chargeIntentTemplate` ChargeIntent
      - `type` 'PRICE_OPTIMIZE' | 'CHARGE_NOW', required
      - `departureTime` string, partial-time, nullable
      - `target` Target
        - `soc` number, double, nullable
        - `kwh` number, double, nullable
      - `scheduleOverrides` ScheduleOverride[], required
        - `id` string, nullable
        - `startDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required
        - `startTime` string, partial-time, required
        - `endDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY', required
        - `endTime` string, partial-time, required
        - `type` 'PRICE_OPTIMIZE' | 'CHARGE_NOW', required
        - `departureDay` 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'
        - `departureTime` string, partial-time, nullable
        - `target` Target
          - `soc` number, double, nullable
          - `kwh` number, double, nullable
      - `priority` integer, nullable
    - `ocppStatus` string, nullable
    - `ocppStatusAt` string, date-time, nullable
  - `solarPanels` SolarPanel[], nullable
    - `id` integer, required
    - `nodeId` integer, required
    - `externalId` string, required
    - `latitude` number, double, required
    - `longitude` number, double, required
    - `declination` number, double, required
    - `azimuth` number, double, required
    - `peakProductionKw` number, double, required
    - `forecast` SolarForecastItem[], nullable
      - `endTimestamp` string, date-time, required
      - `solarProductionW` number, double, required
  - `bufferA` number, double, nullable
  - `externalPowerLimitW` number, double, nullable
  - `externalPowerLimitExpiresAt` string, date-time, nullable
  - `maxExpectedResidualCurrentA` number, double, nullable
  - `maxExpectedResidualPowerW` number, double, nullable

## Other responses

- `400`: The request is invalid
- `401`: Consumer with provided credentials was not found
- `403`: Operator doesn't have access to resource
- `404`: Entity with the provided id was not found

## Changes

- **2026-11-03** `0ca400461c52`: 6 breaking, 32 info
  - the response property `evses/items/charge/allOf[#/components/schemas/Charge_1]/vehicle/allOf[#/components/schemas/Vehicle]/batteryCapacityKwh` became nullable for the status `201`
  - the response property `evses/items/charge/allOf[#/components/schemas/Charge_1]/vehicle/allOf[#/components/schemas/Vehicle]/vehicleId` became nullable for the status `201`
  - the response property `evses/items/charge/allOf[#/components/schemas/Charge_1]/vehicle/allOf[#/components/schemas/Vehicle]/batteryCapacityKwh` became optional for the status `201`
  - the response property `evses/items/charge/allOf[#/components/schemas/Charge_1]/vehicle/allOf[#/components/schemas/Vehicle]/vehicleId` became optional for the status `201`
  - …34 more

[Operation history](https://skmtc.dev/monta/apis/monta-partner-api/changes/api/v1/energy/sites/:siteId/nodes/post.md)

---

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