---
title: Get registry guidance
description: Get curated EU DPP registry guidance — registration, identifiers (EN 18219), data carriers, formats, standards, and where a passport is created.
canonical: "https://www.tracepass.eu/docs/get-registry-guidance"
locale: en
source: "https://www.tracepass.eu/docs/get-registry-guidance"
---

# Get registry guidance

> Get curated EU DPP registry guidance — registration, identifiers (EN 18219), data carriers, formats, standards, and where a passport is created.

```http
GET /api/v1/regulatory/registry-guidance
```

Returns curated guidance points for the requested topic. Each point carries a `point` (a plain-language statement), a `detail` (fuller explanation), a `source` with a URL and kind (`commission` / `standard` / `law` / `our_finding`), and a `sourceDate`. Commission guidance points are labelled 'Commission guidance, not law'; TracePass research points are labelled 'TracePass research, not law'. `stillMoving` is true while the Commission has not finalised the registry procedure — treat all points with corresponding caution.

Available on every plan. Counts one scope answer (~100/day per company). `topic` is required and must be one of: `registration`, `identifiers`, `data_carrier`, `data_format`, `standards`, `where_created`, `access`. An invalid or missing topic returns 400 `invalid_input` with the allowed list. Add `category` to filter to points relevant for that category.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — either a `tp_` API key (Developer → API Keys; simplest, for server-to-server) or an OAuth 2.0 access token (Developer → OAuth Apps; for user-authorized apps, scoped + revocable). The Authentication page has the full OAuth flow and scope list. |
| `topic` | query | string | yes | Guidance topic — one of: `registration`, `identifiers`, `data_carrier`, `data_format`, `standards`, `where_created`, `access`. Returns 400 `invalid_input` when missing or unrecognised. |
| `category` | query | string | no | Optional category key to filter guidance points to those relevant for this category. |
| `locale` | query | string | no | Response language for `answer`, `point`, and `detail` — `en`, `bg`, `de`, or `it`. Defaults to `Accept-Language`, then `en`. |

## Examples

```bash
curl -sS "https://app.tracepass.eu/api/v1/regulatory/registry-guidance?topic=identifiers&locale=en" \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"
```

```typescript
const res = await fetch(
  "https://app.tracepass.eu/api/v1/regulatory/registry-guidance?topic=identifiers&locale=en",
  { headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` } }
);
const envelope = await res.json();
// envelope.data.points — guidance points for the topic
// envelope.data.stillMoving — true while the registry procedure is being finalised
```

```python
import os, requests
resp = requests.get(
    "https://app.tracepass.eu/api/v1/regulatory/registry-guidance",
    params={"topic": "identifiers", "locale": "en"},
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
)
envelope = resp.json()
```

## Responses

### 200 — Guidance points

```json
{
  "status": "answered",
  "answer": "2 guidance points on \"identifiers\". Note: the registry procedure is still being finalised by the Commission.",
  "locale": "en",
  "data": {
    "topic": "identifiers",
    "points": [
      {
        "id": "id-001",
        "topic": "identifiers",
        "point": "EN 18219:2026, the harmonised standard on unique identifiers cited under ESPR, defines nine identification schemes: five for products and four for economic operators and facilities.",
        "detail": "Product schemes (Clause 5): web-enabled structured-path or query identifiers including GS1 Digital Link; Identification Link strings under EN IEC 61406; W3C decentralized identifiers (DIDs); and others. A product identifier is provided as a URL, is never reassigned, and gives access to public passport information without registration or authentication (4.6.1).",
        "source": {
          "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026D1736",
          "kind": "standard",
          "title": "EN 18219:2026 Digital product passport – Unique identifiers, Clauses 4–6"
        },
        "sourceDate": "2026-07-15"
      }
    ],
    "stillMoving": true
  },
  "profileUsed": [],
  "learnable": [],
  "citations": [
    { "celex": "", "ref": "EN 18219:2026 Digital product passport – Unique identifiers", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026D1736" }
  ],
  "ruleIds": [],
  "asOf": "2026-10-09",
  "ruleStatus": "verified",
  "machineTranslated": false,
  "disclaimer": "Regulatory information as of 9 Oct 2026, not legal advice. Check the cited articles before relying on it. — TracePass"
}
```

### 400 — Invalid topic

```json
{ "error": "invalid_input", "field": "topic", "message": "topic is required; one of: registration, identifiers, data_carrier, data_format, standards, where_created, access" }
```

### 401 — Unauthorized

```json
{ "error": "Invalid or revoked API key" }
```

### 403 — Account not eligible

```json
{ "error": "account_not_eligible", "reason": "email_not_verified" }
```

### 429 — Answer cap exceeded

```json
{ "error": "scope_answer_cap", "limit": 100, "resetAt": "2026-10-12T00:00:00.000Z" }
```

### 503 — Regulatory data unavailable

```json
{ "error": "regulatory_data_unavailable" }
```

## Related

- [GET Required fields](https://www.tracepass.eu/docs/get-required-fields.md)
- [GET Regulatory changes](https://www.tracepass.eu/docs/get-regulatory-changes.md)
