Update product instance
Full replacement of editable fields. Immutable plant_id,
elementary_id, and unit may be omitted or echoed from the current
resource. external_id is replaced: re-sending this instance’s
own code succeeds unchanged, while a code held by another active instance
returns 409. See External IDs.
annual_data[].production_output and economic_value_per_unit are
production data: without edit:processes what you send for them is
ignored and the stored values are kept, so echoing back a response that
withheld them does not clear them. A stored year you leave out of
annual_data is kept for the same reason. Keys issued before the process
scopes existed carry them wherever they carry the matching product scope.
Authorizations
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
The instance's Emidat UUID.
Body
Full replacement of editable fields. Every editable field is required and
overwrites the stored value. Nullable fields accept null to clear them.
The immutable identity fields may be omitted or echoed from the current
resource.
Your own code for this instance (its SKU / BOM node id). Overwrites the
stored code; pass null to clear it. Must stay unique among your active
instances — a code held by another returns 409 (see
External IDs).
"CEM-42.5R-25KG-MUNICH"
The production process's Emidat UUID. Pass null to leave the instance without a process.
First year this instance is valid. Narrowing the production period discards computed LCA results for the years that fall outside it.
2020 <= x <= 21002025
2020 <= x <= 2100Technical specifications as key/value pairs. Which keys apply depends
on the instance's elementary_id — cement, for example, takes
compressive_strength and density.
Replaces the stored series wholesale — a year you omit is dropped,
and null clears the series. Each year must fall inside the
instance's production period.
Optional assertion of the resource ID. It must match the path id.
Optional assertion of the current plant. A different value returns
422.
Optional assertion of the current elementary. A different value returns
422.
Optional assertion of the current declared unit. A different value
returns 422.
M, M2, M3, KG, T, L, KWH, MJ, UNIT, METRIC TON*KM Economic value in EUR per declared product unit. Pass null to
clear it; omission is accepted for older clients.
x >= 00.35
Response
Updated product instance.
Your own code for this instance, as provided on creation.
The plant's Emidat UUID. Always present — set at creation and immutable.
Emidat material-type UUID — determines the product type.
The production process's Emidat UUID, or null if none.
M, M2, M3, KG, T, L, KWH, MJ, UNIT, METRIC TON*KM "KG"
First year this instance is valid.
2025
Last valid year, or null if open-ended.
Technical specifications as key/value pairs. Which keys apply depends
on the instance's elementary_id — cement, for example, takes
compressive_strength and density.
Production output per year.
Economic value in EUR per declared product unit, or null when it
has not been provided. Reads return null without
view:processes, whatever is stored; writes are ignored without
edit:processes.
x >= 00.35
Whether the instance is modelled far enough to run an LCA. Derived on every read, never set directly.
incomplete — something structural is still missing: tech_specs is
empty, production_process_id is null, or the material type needs a
BOM (PUT …/bom) and none is set. draft — all of that is present.
draft is about structure only. It does not mean any year is
computable: per-year gaps such as missing production data surface as
blocked_by entries on the LCA results, not here.
incomplete, draft "draft"