Verify a serialized GTIN scan.
Tiered response:
verificationStatus, gtin,
serialNumber, verifiedAt, recommendation). Throttled at 60
requests / hour per IP. Unknown serials return the same shape as
known-authentic to prevent enumeration.scanHistory
counters and anomalies array. No anonymous rate limit.Path parameters mirror GS1 Digital Link AI ordering: 01 (GTIN) +
21 (serial). Returns 422 for malformed GTIN or serial.
Experimental (v1): This linkType response shape is published as a
v1 experimental contract. The auth-tier split, response fields, and
verificationStatus enum may change before the first external
integration freezes the shape.
Documentation Index
Fetch the complete documentation index at: https://docs.closient.com/llms.txt
Use this file to discover all available pages before exploring further.
GS1 GTIN-8/12/13/14 (AI 01) of the serialized trade item. Validated as 8-14 ASCII digits; non-digit input returns 422 invalid_gtin.
Per-trade-item serial number (AI 21). 1-20 printable ASCII characters per GS1 General Specifications; out-of-range input returns 422 invalid_serial.
OK
Authenticated response payload — minimal plus history and anomalies.
Verification status. Unknown serials always return authentic (enumeration protection). The internal unverified state is never exposed -- it collapses to authentic on the public contract until Phase 3 ships positive-authentication rules.
authentic, suspect, counterfeit_suspected, serialization_error Echoed GTIN-8/12/13/14 from the request path.
Echoed AI 21 serial component from the request path.
Server timestamp of when this verification response was generated.
Action recommendation. proceed for authentic and unknown serials; flag_for_review for suspect, counterfeit_suspected, or serialization_error.
proceed, flag_for_review Aggregate scan counters. null when the serial has never been observed (the enumeration-safe path returns full fields populated to zero on the unauth tier; on the auth tier we expose the truth and return null so callers can distinguish 'never seen' from 'seen-but-zero'.
{
"consumerScans": 3,
"distinctRetailLocations": 2,
"firstSeen": "2026-04-01T10:00:00Z",
"retailerScans": 2,
"totalScans": 5
}Anomaly rules triggered for this serial. Empty when no rule has fired. Phase 1 only emits duplicate_retail_scan.