curl -i https://thingidentity.com/01/00012345000058/10/LOT42/21/SN001
curl -i "https://thingidentity.com/01/00012345000058?linkType=gs1:certificationInfo"
curl -H "Accept: application/linkset+json" https://thingidentity.com/01/00012345000058/21/SN001
HTTP/2 307
location: /en-us/acme/bubbles-for-levels/product-information-page?10=LOT42&21=SN001
cache-control: public, s-maxage=600, stale-while-revalidate=600
vary: Accept, Accept-Language
access-control-allow-origin: *
{
"linkset": [
{
"anchor": "https://thingidentity.com/01/00012345000058/21/SN001",
"description": "babelki-do-poziomic",
"https://ref.gs1.org/voc/defaultLink": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie"
}
],
"https://ref.gs1.org/voc/pip": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie",
"hreflang": ["pl-PL"],
"type": "text/html"
},
{
"href": "https://thingidentity.com/en-us/acme/bubbles-for-levels/product-information-page?21=SN001",
"title": "Product information page",
"hreflang": ["en-US"],
"type": "text/html"
}
],
"https://ref.gs1.org/voc/defaultLinkMulti": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie",
"hreflang": ["pl-PL"],
"type": "text/html"
},
{
"href": "https://thingidentity.com/en-us/acme/bubbles-for-levels/product-information-page?21=SN001",
"title": "Product information page",
"hreflang": ["en-US"],
"type": "text/html"
}
]
}
]
}
{ "status": 400, "error": "INVALID_GS1_DIGITAL_LINK" }
{ "status": 404, "error": "NOT_FOUND" }
Resolve a GS1 Digital Link
Redirect a scan to the product page, or return the product’s linkset.
GET
/
01
/
{gtin}
curl -i https://thingidentity.com/01/00012345000058/10/LOT42/21/SN001
curl -i "https://thingidentity.com/01/00012345000058?linkType=gs1:certificationInfo"
curl -H "Accept: application/linkset+json" https://thingidentity.com/01/00012345000058/21/SN001
HTTP/2 307
location: /en-us/acme/bubbles-for-levels/product-information-page?10=LOT42&21=SN001
cache-control: public, s-maxage=600, stale-while-revalidate=600
vary: Accept, Accept-Language
access-control-allow-origin: *
{
"linkset": [
{
"anchor": "https://thingidentity.com/01/00012345000058/21/SN001",
"description": "babelki-do-poziomic",
"https://ref.gs1.org/voc/defaultLink": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie"
}
],
"https://ref.gs1.org/voc/pip": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie",
"hreflang": ["pl-PL"],
"type": "text/html"
},
{
"href": "https://thingidentity.com/en-us/acme/bubbles-for-levels/product-information-page?21=SN001",
"title": "Product information page",
"hreflang": ["en-US"],
"type": "text/html"
}
],
"https://ref.gs1.org/voc/defaultLinkMulti": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie",
"hreflang": ["pl-PL"],
"type": "text/html"
},
{
"href": "https://thingidentity.com/en-us/acme/bubbles-for-levels/product-information-page?21=SN001",
"title": "Product information page",
"hreflang": ["en-US"],
"type": "text/html"
}
]
}
]
}
{ "status": 400, "error": "INVALID_GS1_DIGITAL_LINK" }
{ "status": 404, "error": "NOT_FOUND" }
The path is an uncompressed GS1 Digital Link URI: the GTIN, optionally followed by its key qualifiers.
The qualifiers keep this order, and any of them may be left out. The third-party serialised extension (
Qualifier values use GS1 character set 82: letters, digits and
/01/{gtin}[/22/{cpv}][/10/{lot}][/21/{serial}]
/01/{gtin}/235/{tpx}
235)
stands alone. Other GS1 Application Identifiers, such as the expiry date (17), go in the query string. A trailing
slash is ignored.
No authentication is needed. CORS, caching, error bodies and the linkset formats are described in the
Overview.
Key qualifiers
The key qualifiers are optional path segments after the GTIN, each an Application Identifier followed by its value:| Application Identifier | Qualifier | Value |
|---|---|---|
22 | Consumer product variant (CPV) | Up to 20 characters |
10 | Batch or lot number | Up to 20 characters |
21 | Serial number | Up to 20 characters |
235 | Third-party controlled, serialised extension of the GTIN (TPX) | Up to 28 characters |
!"%&'()*+,-./:;<=>?_. Percent-encode the
characters that cannot appear in a URL path segment as they are, for example / as %2F.
Link types
linkType takes:
- a GS1 link type the product has a page for, as a CURIE (
gs1:certificationInfo) or as its full URI (https://ref.gs1.org/voc/certificationInfo, or the olderhttps://gs1.org/voc/certificationInfoandhttp://gs1.org/voc/certificationInfo), - the name of one of the product’s pages, as it appears in the product page URL,
gs1:defaultLink, the default page in the product’s default language,gs1:defaultLinkMulti, the default page in the scanner’s language,linkset, to get the linkset instead of a redirect.
10, 21 and 17 (lot, serial and expiry date) when they are in the link
but not in the query, so the product page opens the version pinned to them in the dashboard.
Invalid links
A request is400 when:
- the GTIN is not 8, 12, 13 or 14 digits, or its check digit is wrong,
- a qualifier has no value,
- an Application Identifier in the path is not
22,10,21or235, - the qualifiers are out of order, or
235is combined with another one, - a value is too long or has a character outside character set 82,
- a qualifier is repeated with a different value,
- the path is not valid percent-encoding.
curl -i https://thingidentity.com/01/00012345000058/10/LOT42/21/SN001
curl -i "https://thingidentity.com/01/00012345000058?linkType=gs1:certificationInfo"
curl -H "Accept: application/linkset+json" https://thingidentity.com/01/00012345000058/21/SN001
HTTP/2 307
location: /en-us/acme/bubbles-for-levels/product-information-page?10=LOT42&21=SN001
cache-control: public, s-maxage=600, stale-while-revalidate=600
vary: Accept, Accept-Language
access-control-allow-origin: *
{
"linkset": [
{
"anchor": "https://thingidentity.com/01/00012345000058/21/SN001",
"description": "babelki-do-poziomic",
"https://ref.gs1.org/voc/defaultLink": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie"
}
],
"https://ref.gs1.org/voc/pip": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie",
"hreflang": ["pl-PL"],
"type": "text/html"
},
{
"href": "https://thingidentity.com/en-us/acme/bubbles-for-levels/product-information-page?21=SN001",
"title": "Product information page",
"hreflang": ["en-US"],
"type": "text/html"
}
],
"https://ref.gs1.org/voc/defaultLinkMulti": [
{
"href": "https://thingidentity.com/pl-pl/acme/babelki-do-poziomic/informacje-o-produkcie?21=SN001",
"title": "Informacje o produkcie",
"hreflang": ["pl-PL"],
"type": "text/html"
},
{
"href": "https://thingidentity.com/en-us/acme/bubbles-for-levels/product-information-page?21=SN001",
"title": "Product information page",
"hreflang": ["en-US"],
"type": "text/html"
}
]
}
]
}
{ "status": 400, "error": "INVALID_GS1_DIGITAL_LINK" }
{ "status": 404, "error": "NOT_FOUND" }
Linkset contents
The linkset has one entry, for the scanned link:anchoris the uncompressed GS1 Digital Link on the scanned host, with its key qualifiers and without the query.descriptionis the product name in its default language. Left out when the product has none.https://ref.gs1.org/voc/defaultLinkholds one link: the default page in the default language, withhrefandtitleonly.https://ref.gs1.org/voc/defaultLinkMultiholds the default page in every language it is published in.- Every other key is the full URI of a link type, holding that page in every language it is published in.
titleis the page’s name in that language,hreflangthe language, andtypeis alwaystext/html.
thingidentity.com from gtin.at. When the scan carries a lot, serial or expiry date, in
the path or in the query, every href carries it too, so each link opens the same pinned version as the scan.Headers
application/linkset+json returns the linkset instead of a redirect. With linkType=linkset, application/json, application/ld+json and text/html choose its format. Also chooses between JSON error bodies and an HTML error page.
The scanner's languages. The redirect opens the first one the product is published in.
Path Parameters
The GTIN in 14 digits, with a valid check digit. GTIN-8, GTIN-12 and GTIN-13 are accepted too and read as the 14-digit GTIN padded with leading zeros.
Query Parameters
The page to open instead of the default one. The name is read in any case (linktype too); the value is case-sensitive. A value that matches no page returns 404.
Response
The linkset, when requested.