Create product instance
Idempotent create — a replay of the same Idempotency-Key returns the
original response (200); otherwise a new product instance is created
(201). Your external_id must be unique: reusing one returns 409. See
External IDs.
annual_data[].production_output and economic_value_per_unit are
production data: without edit:processes they are ignored rather than
rejected, and the instance is created without them.
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.
Headers
Optional client-generated key (e.g. a UUID) that makes a create
idempotent — the only mechanism that does so. A replay carrying the same
key returns the original response unchanged (200); reusing a key with a
different request body is rejected with 409. Keys are scoped to your
manufacturer and retained for 6h. See External IDs.
Body
The plant's Emidat UUID.
"CEM 42.5 R, 25 kg bag (Munich)"
Emidat material-type UUID — determines the product type.
M, M2, M3, KG, T, L, KWH, MJ, UNIT, METRIC TON*KM "KG"
First year this instance is valid.
2020 <= x <= 21002025
Your own code for this instance (its SKU / BOM node id). Optional. When
provided it is unique among your active instances — creating another
with the same code returns 409 (see External IDs).
"CEM-42.5R-25KG-MUNICH"
The production process's Emidat UUID. Optional.
Last valid year, or null if open-ended.
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.
Production output per year; drives the computable LCA years. Each year must fall inside the instance's production period.
Economic value in EUR per declared product unit. Optional allocation
input; omit it or pass null when no economic value is available.
x >= 00.35
Response
Returned unchanged — an Idempotency-Key replay.
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"