Skip to main content
Scanning a GS1 Digital Link, such as https://thingidentity.com/01/09506000134352/21/SN001, opens the resolver. It finds the published product for the GTIN and either redirects the scanner to the right product page or returns the list of all the product’s links (the linkset). The resolver follows the GS1-Conformant Resolver standard (release 1.2) for the GTIN primary key (01) with its key qualifiers, and also reads compressed links in the EPC binary encoding.

Endpoints

Hosts

Unlike the other endpoints, the resolver is not served on api.thingidentity.com. It answers on: When a product’s brand has an active custom domain and the product is scanned on thingidentity.com or gtin.at, the resolver redirects with 307 to the uncompressed GS1 Digital Link on the custom domain, with the same query string. Codes printed before the domain was set up keep working that way. A linkset request is answered on the scanned host instead, with links pointing to the custom domain.

Requests

The resolver is public: requests need no token, and it sets no cookies. It supports GET, HEAD and OPTIONS. HEAD returns the same status and headers as GET, without a body. Every response allows cross-origin use, so browser applications on any origin can call the resolver:
OPTIONS returns 204 No Content with these headers, Allow: GET, HEAD, OPTIONS and Access-Control-Max-Age: 86400.

What a scan returns

Location of a redirect to a product page is /{locale}/{brand}/{product}/{page}, followed by the query string of the scan: a path on the scanned host, or a full URL on https://thingidentity.com for a scan on gtin.at.

Language

The scanner’s languages are, in order: the language picked on thingidentity.com, then the languages in Accept-Language, by weight. The redirect opens the first of them the product is published in, matching the exact tag first and then any region of the same language. When none matches, it opens the product’s default language.

Linkset formats

The Accept header chooses how the linkset is written. Only application/linkset+json asks for a linkset by itself; with the other types, add linkType=linkset. The linkset validates against the GS1 linkset schema. The application/linkset+json and application/json responses point to the JSON-LD context with a Link header:

Status codes

Errors are JSON when Accept asks for JSON (application/json, application/ld+json or application/linkset+json):
Otherwise the body is an HTML error page in the scanner’s language.