TL;DR
- A GS1 Digital Link resolver is the web service behind the domain in a GS1 Digital Link. It reads the identifiers in a scanned address and sends the reader to the right destination: a product page, a recall notice, a manual, or machine-readable data.
- It answers three kinds of request: a plain scan goes to the default link, a request for a specific link type goes to that link, and a request for the linkset returns every link it holds for the product.
- Resolvers can be run by brands, GS1 Member Organizations, retailers or solution providers. Because each one is independent and follows the same GS1 standard, any conformant app can use any resolver.
A GS1 Digital Link resolver is a web server that connects a GS1 identifier, such as a product's GTIN, to the information about it online. When a phone scans a GS1 Digital Link QR code, the request goes to the resolver at the code's domain. The resolver checks the address, finds the links stored for that product, batch or item, and redirects to the one that fits the request. That is what lets a single code serve shoppers, business partners and systems, each with something different.
The resolver at a glance
| What it is | A web server that resolves GS1 identifiers to online resources |
| Input | A GS1 Digital Link URI: domain, primary key, qualifiers and attributes |
| Output | A redirect to a destination, a list of links, or an error explaining why there is none |
| Who runs it | Brands, GS1 Member Organizations, retailers or solution providers |
| Standard | GS1's specification for conformant resolvers, alongside the GS1 Digital Link URI syntax |
| Protocol | HTTPS, answering GET, HEAD and OPTIONS requests, with CORS so web apps can query it |
The three ways to query a resolver
| Request | What the resolver does | Typical reader |
|---|---|---|
| A plain scan of the address | Redirects to the default link, usually the product page | A shopper's phone |
The address with a linkType parameter, such as ?linkType=gs1:recallStatus | Redirects to the link of that type, if it has one | An app or a business partner looking for something specific |
The address with linkType=linkset | Returns the full list of links it holds for that identifier, in a machine-readable format | Systems and apps that want to discover everything available |
Links can also be chosen by language and by context. A shopper in France can be sent to the French page and a shopper in Germany to the German one, from the same code.
What a resolver does with each request
- Decompress. If the code carries the compressed form the standard allows for small symbols, the resolver expands it.
- Validate. It checks the syntax: a valid GS1 primary key, key qualifiers in the right order, and valid data attributes.
- Look up. It finds the links stored for that identifier, at the most specific level it has: item, batch or product.
- Choose. It picks the link that matches the request: the default link, the requested link type, or the linkset.
- Respond. It returns a redirect, the list of links, or an error with an explanation.
The metadata stored with each link
| Attribute | Required | Example |
|---|---|---|
| Target URL | Yes | The address of a page about that product, not a homepage or search results |
| Link type | Yes | A product information page, gs1:pip |
| Title | Yes | "Product information", shown when an app lists the options |
| Human language | No | en, fr, de |
| Media type | No | text/html for a page, application/json for data |
| Context | No | A territory or a use, for routing by market |
A target can carry more than one link type when one page serves several roles, for example a product page that also shows allergen information.
How a resolver answers
| Situation | Response |
|---|---|
| A matching link exists | A redirect to it (307 Temporary Redirect), with the linkset exposed in the HTTP Link header |
| The resolver has no information, but another resolver may | A redirect to the alternative resolver (307) |
| The resolver has no information | 404 Not Found |
| The resolver knows why it can't serve the identifier | 303 See Other, pointing to an explanation |
| The address is malformed | An error response that says what is wrong |
Query string values in the original address, such as the expiry date, are passed on unchanged when the resolver redirects. Each extra redirect adds time for the person scanning, so chains of resolvers should stay short.
How to set up a GS1 Digital Link resolver: five steps
- Choose the domain. A subdomain of your own, such as
id.yourbrand.com, keeps the codes yours whichever provider runs the resolver, and shows shoppers your brand in the address. - Build it or use a provider. Anyone can build a conformant resolver with enough time and engineering. A provider gives you one ready to use. Either way, check that it follows the GS1 resolver standard, so any conformant app can read your codes.
- Load your products and their default links. Add each GTIN with its default destination, and add batch or item-level entries where you need different destinations, for example for a recall.
- Add link types, languages and context. Give each link its type and title, add language versions, and route by market where the content differs.
- Test every path. Check a plain scan, a request for each link type, the linkset, an unknown GTIN and a malformed address, then monitor the scans after launch. The troubleshooting guide covers what to check when a code doesn't open.
The resolver on the Digital Link platform
Digital Link, the platform behind this site, runs a GS1 conformant resolver for your codes, on its own domain or on your subdomain through a CNAME record. Each product gets a default destination, with versions by language and country, and variants for batches or items. Every link can be changed at any time without reprinting.
Create your first GS1 Digital Link QR code
Frequently asked questions
What is a GS1 Digital Link resolver?
The web service behind the domain in a GS1 Digital Link. It reads the identifiers in a scanned address, finds the links stored for that product, batch or item, and redirects to the destination that fits the request.
Who runs GS1 Digital Link resolvers?
Brands, GS1 Member Organizations, retailers and solution providers can all run one. Each is independent, and because they follow the same GS1 standard, an app can query any of them.
What is a link type?
The category of a destination a resolver can offer for a product, such as the product information page, gs1:pip, or the recall status, gs1:recallStatus. An app asks for a link type to get a specific resource instead of the default page.
What is a linkset?
The full list of links a resolver holds for an identifier, returned in a machine-readable format when an app asks for linkType=linkset. It lets systems discover everything available about a product.
Do I need my own resolver?
You need a conformant resolver behind your codes, but not necessarily one you built. Most brands use a provider, and put the codes on their own subdomain so they stay theirs.
Does a checkout use the resolver?
No. A 2D-ready checkout reads the GTIN, batch and expiry date directly from the code, without the internet. Only phones and apps that open the address reach the resolver.





