---
title: "EUDR URL Patterns"
description: "GS1 Digital Link URL patterns for EUDR implementations"
canonical_url: "https://openepcis.io/docs/digital-product-passport/eudr/url-patterns"
last_updated: "2026-07-02T20:31:50.131Z"
---

This page documents the GS1 Digital Link URL patterns used in EUDR implementations.

## Base URL Structure

All identifiers use the GS1 Digital Link standard:

```text
https://id.gs1.org/{ai}/{value}
```

## Product Identifiers (SGTIN)

Products are identified using GTIN + Serial Number:

```text
https://id.gs1.org/01/{GTIN}/21/{Serial}
```

**Examples:**

<table>
<thead>
  <tr>
    <th>
      Product
    </th>
    
    <th>
      URL
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Timber log
    </td>
    
    <td>
      <code>
        https://id.gs1.org/01/09521234000020/21/LOG-2025-001
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Furniture
    </td>
    
    <td>
      <code>
        https://id.gs1.org/01/09521234000037/21/TABLE-2025-001
      </code>
    </td>
  </tr>
</tbody>
</table>

**Breakdown:**

```text
https://id.gs1.org/01/09521234000020/21/LOG-2025-001
                   │  │              │  │
                   │  │              │  └── Serial Number (AI-21)
                   │  │              └── Application Identifier
                   │  └── GTIN (14 digits)
                   └── Application Identifier
```

## Location Identifiers (GLN)

Locations use Global Location Numbers:

```text
https://id.gs1.org/414/{GLN}
```

**Examples:**

<table>
<thead>
  <tr>
    <th>
      Location
    </th>
    
    <th>
      URL
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Plot of Land
    </td>
    
    <td>
      <code>
        https://id.gs1.org/414/9521234000099
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Processing Facility
    </td>
    
    <td>
      <code>
        https://id.gs1.org/414/9521234000105
      </code>
    </td>
  </tr>
</tbody>
</table>

## Organization Identifiers (Party GLN)

Organizations use Party GLNs:

```text
https://id.gs1.org/417/{GLN}
```

**Examples:**

<table>
<thead>
  <tr>
    <th>
      Organization
    </th>
    
    <th>
      URL
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Timber Producer
    </td>
    
    <td>
      <code>
        https://id.gs1.org/417/9521234000006
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Furniture Manufacturer
    </td>
    
    <td>
      <code>
        https://id.gs1.org/417/9521234000105
      </code>
    </td>
  </tr>
</tbody>
</table>

## Device Identifiers (GIAI)

GPS devices and sensors use Global Individual Asset Identifier:

```text
https://id.gs1.org/8004/{GIAI}
```

**Example:**

```text
https://id.gs1.org/8004/9521234000006-GPS-001
```

## Content Negotiation

GS1 Digital Link resolvers support content negotiation:

<table>
<thead>
  <tr>
    <th>
      Accept Header
    </th>
    
    <th>
      Response
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        application/ld+json
      </code>
    </td>
    
    <td>
      JSON-LD product data
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        application/json
      </code>
    </td>
    
    <td>
      JSON product data
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        text/html
      </code>
    </td>
    
    <td>
      Human-readable web page
    </td>
  </tr>
</tbody>
</table>

**Example Request:**

```bash
curl -H "Accept: application/ld+json" \
  https://id.gs1.org/01/09521234000020/21/LOG-2025-001
```

## Link Types

Access related data using link types:

<table>
<thead>
  <tr>
    <th>
      Link Type
    </th>
    
    <th>
      Purpose
    </th>
    
    <th>
      URL Pattern
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      EPCIS Events
    </td>
    
    <td>
      Event history
    </td>
    
    <td>
      <code>
        ?linkType=epcis
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Master Data
    </td>
    
    <td>
      Product details
    </td>
    
    <td>
      <code>
        ?linkType=masterData
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Certification
    </td>
    
    <td>
      Certificates
    </td>
    
    <td>
      <code>
        ?linkType=certificationInfo
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Recall
    </td>
    
    <td>
      Recall info
    </td>
    
    <td>
      <code>
        ?linkType=recallStatus
      </code>
    </td>
  </tr>
</tbody>
</table>

The `?linkType=` query parameter takes the bare GS1 relation name (per the GS1 Digital Link spec). The same relations appear as full IRIs (`https://ref.gs1.org/voc/epcis`, …) when keyed in an IETF linkset response.

**Example - Get EPCIS Events:**

```text
https://id.gs1.org/01/09521234000020/21/LOG-2025-001?linkType=epcis
```

## Event Identifiers

EPCIS events use UUIDs:

```text
urn:uuid:{uuid}
```

**Example:**

```text
urn:uuid:550e8400-e29b-41d4-a716-446655440020
```

## Business Transaction References

Transactions use URIs to reference documents:

<table>
<thead>
  <tr>
    <th>
      Transaction Type
    </th>
    
    <th>
      Example URL
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Purchase Order
    </td>
    
    <td>
      <code>
        https://example.com/orders/PO-2025-001
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Due Diligence Report
    </td>
    
    <td>
      <code>
        https://example.com/eudr/due-diligence/LOG-2025-001.pdf
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      Certificate
    </td>
    
    <td>
      <code>
        https://fsc.org/en/certificate/FSC-C123456
      </code>
    </td>
  </tr>
</tbody>
</table>

## Master Data Linking

Link EPCIS events to master data using `masterDataAvailableFor`:

```json
{
  "epcList": [{
    "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001",
    "masterDataAvailableFor": {
      "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001"
    }
  }]
}
```

This pattern indicates that detailed master data can be retrieved by resolving the `@id`.

## Geolocation in URLs

While geolocation data is stored in master data (not URLs), the plot of land identifier links to it:

```json
{
  "eudr:originDetails": {
    "@id": "https://id.gs1.org/414/9521234000099",
    "masterDataAvailableFor": {
      "@id": "https://id.gs1.org/414/9521234000099"
    }
  }
}
```

Resolving the GLN returns the plot details including polygon coordinates.

## Regulatory Reference Numbers

EUIS reference numbers are stored as strings, not URLs:

```json
{
  "regulatoryIdentifier": [{
    "regulatoryReferenceNumber": "EUIS-2025-DE-00012345",
    "regulatoryIdentifierType": "DUE_DILIGENCE_STATEMENT"
  }]
}
```

Format: `EUIS-{YEAR}-{COUNTRY}-{NUMBER}`

## Example URLs by Scenario

### Timber Harvest Chain

```text
Plot of Land:     https://id.gs1.org/414/9521234000099
Producer:         https://id.gs1.org/417/9521234000006
Timber Log:       https://id.gs1.org/01/09521234000020/21/LOG-2025-001
Processing Plant: https://id.gs1.org/414/9521234000105
Manufacturer:     https://id.gs1.org/417/9521234000105
Furniture:        https://id.gs1.org/01/09521234000037/21/TABLE-2025-001
```

### Querying Product History

```bash
# Get product master data
curl -H "Accept: application/ld+json" \
  "https://id.gs1.org/01/09521234000020/21/LOG-2025-001"

# Get EPCIS event history
curl -H "Accept: application/ld+json" \
  "https://id.gs1.org/01/09521234000020/21/LOG-2025-001?linkType=epcis"

# Get source plot details
curl -H "Accept: application/ld+json" \
  "https://id.gs1.org/414/9521234000099"
```

## Best Practices

1. **Use GS1 Company Prefix** for all identifiers
2. **Always include serial numbers** for traceability
3. **Link master data consistently** using `masterDataAvailableFor`
4. **Use standard link types** for content negotiation
5. **Store EUIS references** as strings, not URLs
