Skip to main content
POST
Add an asset

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Unknown fields inside the type data object are rejected, and so is a type data object for another type. The asset's read-only fields (object, id, status, steered_by_nomos, decommissioned_at, created_at and updated_at) are rejected with field_not_allowed, other unknown top-level fields are ignored. null on an optional field means the same as leaving it out.

household
string
required

The Nomos ID of the household the asset belongs to.

Example:

"dom_k3v9x2m7n1b4v8c2x6z0q5wd"

external_id
string
required

Your own ID for the device, at most 255 characters, unique among all assets of your organization and never reused. If an asset with this external_id exists, you get 409 with its ID, so a retry after a timeout is safe.

Required string length: 1 - 255
Example:

"partner-bat-1"

type
enum<string>
required

You add inverter, solar, battery, wallbox and heat_pump. Nomos creates household_net and household_residual with a household's first asset.

Available options:
household_net,
household_residual,
inverter,
solar,
battery,
wallbox,
heat_pump
Example:

"battery"

is_steerable
boolean
required

Whether Nomos can steer the asset through a schedule. Only types that take a schedule can be steerable, so not solar: Nomos curtails solar through its inverter.

Example:

true

parent_inverter
string | null

The Nomos ID of the active inverter in the same household that the asset sits behind. Required on solar, optional on battery (a battery without it is AC-coupled), not allowed on other types.

Example:

"ha_i9k3l7w2e5r8t1y4u6o0p3as"

manufacturer
string | null
Maximum string length: 255
Example:

"Fronius"

model
string | null
Maximum string length: 255
Example:

"BYD Battery-Box Premium HVS 10.2"

installed_at
string<date-time> | null

When the device was installed, not in the future and not before 1980-01-01T00:00:00Z.

Example:

"2025-04-02T00:00:00Z"

metadata
object | null

Your own free-form data, at most 10KB, for example the serial number.

Example:
inverter
object | null
solar
object | null
battery
object | null
wallbox
object | null
heat_pump
object | null

Response

The added asset

A device in a household, or one of the two assets Nomos creates per household. It carries the type data object named like its type, with every field present and null where unknown.

object
enum<string>
required
Available options:
asset
id
string
required
Example:

"ha_b7q2m1k8v4n0x3c9l5p2r7td"

household
string
required
Example:

"dom_k3v9x2m7n1b4v8c2x6z0q5wd"

parent_inverter
string | null
required

The Nomos ID of the inverter the asset sits behind. Set on solar and on a battery behind a hybrid inverter.

Example:

"ha_i9k3l7w2e5r8t1y4u6o0p3as"

external_id
string | null
required

Your own ID. Null on household_net and household_residual.

Example:

"partner-bat-1"

status
enum<string>
required

A decommissioned asset stays readable, by its ID and in the list.

Available options:
active,
decommissioned
Example:

"active"

is_steerable
boolean
required
Example:

true

steered_by_nomos
boolean
required

Whether a Nomos schedule is in force for the current quarter hour.

Example:

false

manufacturer
string | null
required
Example:

"BYD"

model
string | null
required
Example:

"Battery-Box Premium HVS 10.2"

installed_at
required
Example:

null

metadata
object | null
required
Example:
decommissioned_at
required
Example:

null

created_at
required
Example:

"2026-10-06T09:12:44Z"

updated_at
required

When the asset last changed, by you, a decommission or Nomos.

Example:

"2026-10-06T09:12:44Z"

type
enum<string>
required
Available options:
battery
battery
object
required