GS1 Linkset
The RFC 9264 linkset for a dynamic GS1 Digital Link code: every link the
resolver would serve for this identifier, with one anchor per lot/serial
override. Requires the qr:read scope.
Returned as application/linkset+json without this API’s { data }
envelope, and with a Link header pointing at the GS1 JSON-LD context —
the bytes are the same ones QRKit’s resolver serves, so you can hand
them straight to a validator or stand the record up on your own
resolver. Link relations are full GS1 vocabulary IRIs.
Every anchor carries the links registered ON it plus everything
inherited from the level above (section 2.5.10): an override for
10/LOT1 publishes the GTIN’s links as well as its own, most general
first, with a repeated href listed once per relation. The default
link is published twice — under gs1:defaultLink, and under the
descriptive gs1:pip relation a client can ask for by name. Non-https
destinations are dropped rather than served.
Static GS1 codes resolve on your own host and QRKit holds no link record
for them, so they return 422; so does a non-GS1 code.
Authorizations
API key in the Authorization header: Bearer qr_live_… or Bearer qr_test_…. Token endpoints take a Clerk session JWT instead.
Path Parameters
qr_… — a dynamic GS1 code.
Response
The linkset
An RFC 9264 linkset. Link relations are FULL GS1 vocabulary IRIs
(https://ref.gs1.org/voc/pip), never gs1: CURIEs — the published
linkset schema rejects a colon in a key. Each override gets its OWN
anchor: a lot-specific recall belongs to that lot's URI, not to every
unit ever made — and that anchor also carries everything registered on
the level above it (section 2.5.10). These are the same bytes QRKit's
resolver serves for the same identifier.

