Skip to main content
PUT
Update project

Authorizations

X-API-Key
string
header
required

Per-manufacturer API key in the X-API-Key header, format emidat-{key_id}-{secret} where key_id is a random public handle. Issued by an owner in the Emidat dashboard; carries its own permission scopes, optional plant restrictions, and optional expiry. A revoked, expired, or unknown key returns 401. See the Authentication guide for details.

Path Parameters

id
string<uuid>
required

UUID of the project to update.

Body

application/json

Full replacement of editable fields. Every editable field is required, and products replaces the project's lines as a whole.

external_id
string | null
required

Your own code for this project. Overwrites the stored code; pass null to clear it. Must stay unique among your active projects — a code held by another returns 409 (see External IDs).

Example:

"PRJ-2026-014"

name
string
required

Surrounding spaces are ignored; an empty name returns 422.

Minimum string length: 1
Example:

"Tower A"

customer_name
string
required

Name of one of your customers, exactly as it is in the Emidat app (surrounding spaces are ignored). Customers are not created through the API: a name with no customer returns 422 (err_customer_not_found).

Minimum string length: 1
Example:

"Bauherr GmbH"

address
object
required

The site address of a project, stored exactly as sent; a field you leave out is stored empty. A new or changed address needs city, and is located to place the site: no location found in country returns 422 (err_address_not_found), and a lookup that cannot be carried out right now returns 503 (err_geocoding_unavailable). An address identical to the stored one (ignoring surrounding spaces) is kept as it is, without a lookup.

products
object[]
required
Minimum array length: 1
id
string<uuid> | null

Optional assertion of the resource ID. It must match the path id.

Response

Updated project.

id
string<uuid>
required

UUID of the project.

external_id
string | null
required

Your own code for this project. null when none is set.

name
string
required
Example:

"Tower A"

customer
object
required

The client a project is built for. Customers are managed in the Emidat app; a project names its customer by customer_name.

address
object
required

The site address of a project, exactly as it was sent. Fields left out are empty strings, except house_number, which is null.

products
object[]
required
gwp_total
number | null
required

A1–A3 GWP-total (EN 15804+A2) of the whole delivery in kg CO₂e: the sum over the lines of quantity times gwp_per_unit. null while any line's gwp_per_unit is null; the lines show which.

gwp_total_net
number | null
required

As gwp_total, from the lines' gwp_per_unit_net. null while any line's gwp_per_unit_net is null.

created_at
string<date-time>
required