Skip to main content
POST
Create supplier product

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.

Headers

Idempotency-Key
string

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

application/json
name
string
required

Name of the supplier product.

Example:

"Portland Cement CEM I 42.5 R"

material_type
object
required

What this supplier product is made of — either an Emidat elementary or a composite you defined. Discriminated by category.

plant_id
string<uuid>
required

The plant's Emidat UUID.

external_id
string | null

Your own code for this supplier product (e.g. from your ERP). Optional. When provided it is unique among your active supplier products — creating another with the same code returns 409 (see External IDs).

Example:

"COMP-001"

supplier_plant_id
string<uuid> | null

UUID of the supplier plant. Create via POST /v2/supplier-plants. Optional.

transport_route
object | null

Transport distances from the supplier plant to your gate, one per modality (km). Optional.

epd_id
string<uuid> | null

Optional EPD UUID to link to this supplier product, if one was identified during setup.

hazardous_substances
object[]

Hazardous substances in this material, each by CAS number and mass share. Optional; defaults to none.

lifetime_years
number | null

Expected service life in years. Optional.

secondary_percentage
number | null

Share of secondary (recycled) content, 0–100. Optional.

moisture_content_percentage
number | null

Moisture content as a percentage. Optional.

Response

Returned unchanged — an Idempotency-Key replay.

id
string<uuid>
required
external_id
string | null
required

Your own code for this supplier product, as provided on creation.

name
string
required
Example:

"Portland Cement CEM I 42.5 R"

material_type
object
required

What this supplier product is made of — an Emidat elementary or a composite, by reference. Discriminated by category. Resolve a composite_id with GET /v2/composites/{id}.

plant_id
string<uuid>
required

The plant's Emidat UUID.

supplier_plant_id
string<uuid> | null
required

UUID of the supplier plant this material is sourced from. Resolve it with GET /v2/supplier-plants/{id}.

transport_route
object | null
required

Transport distances from the supplier plant to your gate, one per modality (km).

epd_id
string<uuid> | null
required
hazardous_substances
object[]
required

Hazardous substances in this material, each by CAS number and mass share.

lifetime_years
number | null
required
secondary_percentage
number | null
required
moisture_content_percentage
number | null
required
unit
enum<string>
required
Available options:
M,
M2,
M3,
KG,
T,
L,
KWH,
MJ,
UNIT,
METRIC TON*KM
Example:

"KG"

impacts_per_kg
object[] | null
required

Characterized cradle-to-gate impacts of this supplier product per kg. Null until computed.

transport_impacts_per_kg
object[] | null
required

The transport portion of this product's impacts per kg. Null until computed.

secondary_datasets
object[] | null
required

Background datasets used to compute the impacts.

created_at
string<date-time>
required