Skip to main content
POST
Create substance of concern

Authorizations

X-API-Key
string
header
required

Body

application/json

Payload for POST /substances-of-concern.

gtin
string<gtin>
required

GTIN (8, 12, 13 or 14 digits) of the product. Must be a product the caller's organization owns, else 404.

Required string length: 8 - 14
substance_id
string<shortuuid>
required

A substance from the substance catalog, else 404. Substances still awaiting review are not accepted. 409 if the product already records this substance for the same component.

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
component_id
string<shortuuid> | null

URL-safe 22-character shortuuid encoding of the row's UUID primary key. Stable across the row's lifetime; suitable for sharing in URLs, log lines, and external SDK clients. Accepted on input as either the shortuuid form or the canonical UUID form (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
concentration
number | null

Measured concentration, 0-1,000,000.

Required range: 0 <= x <= 1000000
concentration_unit
enum<string> | null

Unit of concentration.

Available options:
PPM,
PPB,
MG_KG,
MG_L,
UG_KG,
UG_L,
PERCENT
threshold_value
number | null

Regulatory or internal limit, 0-1,000,000.

Required range: 0 <= x <= 1000000
threshold_unit
enum<string> | null

Unit of threshold_value. Use the same unit as concentration_unit.

Available options:
PPM,
PPB,
MG_KG,
MG_L,
UG_KG,
UG_L,
PERCENT
regulation
enum<string>
default:OTHER

Regulation the substance is tracked under.

Available options:
REACH,
ROHS,
PROP65,
TSCA,
FDA,
OTHER
is_above_threshold
boolean
default:false

Whether the concentration is above the threshold.

notes
string
default:""

Free-text notes.

Maximum string length: 1000
Pattern: ^[^\x00]{0,1000}$

Response

Created

A regulated substance present in one of the organization's products.

id
string<shortuuid>
required

URL-safe 22-character shortuuid encoding of the row's UUID primary key. Stable across the row's lifetime; suitable for sharing in URLs, log lines, and external SDK clients. Accepted on input as either the shortuuid form or the canonical UUID form (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
organization_id
string<shortuuid>
required

The organization that owns the product.

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
gtin
string
required

The product's GTIN, normalized to GTIN-14.

created
string<date-time>
required

Server-side ISO 8601 timestamp of creation (UTC).

modified
string<date-time>
required

Server-side ISO 8601 timestamp of last modification (UTC).

substance_id
string<shortuuid>
required

The substance, from the substance catalog.

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
substance_name
string
required

The substance's name.

component_id
string<shortuuid> | null
required

URL-safe 22-character shortuuid encoding of the row's UUID primary key. Stable across the row's lifetime; suitable for sharing in URLs, log lines, and external SDK clients. Accepted on input as either the shortuuid form or the canonical UUID form (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Required string length: 22
Pattern: ^[23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{22}$
concentration
number | null
required

Measured concentration. Null when unmeasured.

concentration_unit
string
required

Unit of concentration. Empty when unset.

threshold_value
number | null
required

Regulatory or internal limit. Null when unset.

threshold_unit
string
required

Unit of threshold_value. Empty when unset.

regulation
string
required

Regulation the substance is tracked under.

is_above_threshold
boolean
required

Whether the concentration is above the threshold.

notes
string
required

Free-text notes. Empty when unset.