Skip to main content
POST
Issue a brand recall

Authorizations

X-API-Key
string
header
required

Body

application/json

Request body to issue a brand recall at any granularity.

gtin
string
required

GTIN-8, GTIN-12, GTIN-13, or GTIN-14 barcode digits (no spaces, no hyphens). Shorter forms are zero-left-padded to GTIN-14 server-side. Returns 404 if no product matches the normalized GTIN; 422 if the value is not a valid GTIN.

Required string length: 8 - 14
Pattern: ^\d{8,14}$
reason
string
required

The safety issue / hazard, shown to consumers and notified subscribers.

Minimum string length: 1
remedy
string
required

The action a consumer should take (return, discard, contact support).

Minimum string length: 1
title
string
default:""

Optional recall title. Defaults to a product + scope summary when blank.

scopes
RecallScopeIn · object[]

The recall's scope list. Omit or send an empty list for a whole-product recall. Multiple scopes OR-combine.

Maximum array length: 100

Response

Created

A brand-issued recall including its scope list (C-4118).

A recall with an empty scopes list is a whole-product recall (every unit of the GTIN is affected). Otherwise the scopes OR-combine: a unit is affected if it matches any scope.

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}$
title
string
required

Recall headline.

Maximum string length: 1000
status
enum<string>
required

Lifecycle state. TERMINATED means withdrawn.

Available options:
ONGOING,
COMPLETED,
TERMINATED,
UNKNOWN
severity
enum<string>
required

Risk classification; UNKNOWN for brand recalls by default.

Available options:
CLASS_I,
CLASS_II,
CLASS_III,
UNKNOWN
created
string<date-time>
required

Server-side UTC timestamp of issuance.

hazard
string
default:""

The safety issue (maps to the issue-time reason).

remedy
string
default:""

What a consumer should do.

public_url
string
default:""

Link shown to consumers — the product's resolver page for brand recalls.

Maximum string length: 500
company_name
string
default:""

Issuing brand's organization name.

Maximum string length: 500
recall_date
string<date> | null

Date the recall was issued (YYYY-MM-DD).

scopes
RecallScopeOut · object[]

The recall's granularity. Empty == whole product; otherwise LOT_LIST / SERIAL_SET / DATE_WINDOW predicates.