---
title: Задължителни полета
description: Задължителните DPP полета за продуктова категория — цитати от членове, нива на достъп, очаквани полета и (батерии) флагове за производител.
canonical: "https://www.tracepass.eu/bg/docs/get-required-fields"
locale: bg
source: "https://www.tracepass.eu/bg/docs/get-required-fields"
---

# Задължителни полета

> Задължителните DPP полета за продуктова категория — цитати от членове, нива на достъп, очаквани полета и (батерии) флагове за производител.

```http
GET /api/v1/regulatory/required-fields
```

Връща задължителните и очакваните полета за паспорт от дадената категория, с члена от регламента на ЕС, на който се основава всяко поле, нивото му на достъп (публично / ограничено / от власти) и — за батерии — дали данните обикновено се съхраняват от производителя, доставчик или оператора. Без `group` endpoint-ът връща обобщение: общи бройки по група и ниво на достъп, плюс `requiredByHolder` (само за батерии). С `group` — пълния списък с полета за тази група.

Достъпно при всеки план. Брои един отговор към ограничението за компания (~100/ден, ~30/мин, споделено между таблото, API и DPP Асистента). При достигане на ограничението се връща 429 `scope_answer_cap`. Непознато `category` връща 400 `invalid_input` с разрешения списък.

Добавете `X-Source: assistant` при извикване от DPP Assistant MCP сървъра — отговорът се подписва от асистента и се прилага портата на OAuth акаунта (необходим е потвърден имейл, не от временен доставчик). API ключовете заобикалят портата.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — или `tp_` API ключ (Developer → API Keys; най-просто, за server-to-server), или OAuth 2.0 access token (Developer → OAuth Apps; за приложения, авторизирани от потребител, scoped и отзоваеми). Страницата Authentication съдържа пълния OAuth поток и списъка със scopes. |
| `category` | query | string | yes | Ключ на категорията шаблон — напр. `battery`, `detergents`, `toys`. Връща 400 `invalid_input` с `allowed` списъка при непознат ключ. |
| `group` | query | string | no | Ключ на групата от шаблона (полето `category` на всяко поле). При липса — обобщение; при наличие — пълен списък с полета за групата. |
| `subType` | query | string | no | Подтип батерия — `EV`, `LMT` или `industrial_gt_2kwh`. Филтрира `requiredBy` по същия начин като двигателя за съответствие. Връща 400 при непознат подтип. |
| `locale` | query | string | no | Език на отговора за текста в `answer` — `en`, `bg`, `de` или `it`. По подразбиране от `Accept-Language`, след това `en`. |

## Examples

```bash
curl -sS "https://app.tracepass.eu/api/v1/regulatory/required-fields?category=detergents&locale=en" \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"
```

```typescript
const res = await fetch(
  "https://app.tracepass.eu/api/v1/regulatory/required-fields?category=detergents&locale=en",
  { headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` } }
);
const envelope = await res.json();
// envelope.data.summary.requiredNow — total required fields
// for category=battery, envelope.data.summary.requiredByHolder splits them by who holds the data
```

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

## Responses

### 200 — Обобщение на задължителните полета

```json
{
  "status": "answered",
  "answer": "detergents passports require 12 fields now, with 4 additional fields anticipated.",
  "locale": "en",
  "data": {
    "category": "detergents",
    "locale": "en",
    "summary": {
      "requiredNow": 12,
      "anticipated": 4,
      "optional": 61,
      "byGroup": {
        "product_id": { "required": 4, "anticipated": 0, "dynamic": 0, "total": 11 },
        "economic_operator": { "required": 6, "anticipated": 0, "dynamic": 0, "total": 11 },
        "composition": { "required": 0, "anticipated": 1, "dynamic": 0, "total": 11 },
        "data_carrier": { "required": 2, "anticipated": 3, "dynamic": 0, "total": 8 },
        "…": {}
      },
      "byAccessTier": { "public": 64, "restricted": 10, "authority": 3 }
    }
  },
  "profileUsed": [],
  "learnable": [],
  "citations": [
    { "celex": "32026R0405", "ref": "Annex VI Part A, point (a)", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32026R0405" },
    "…"
  ],
  "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 — Невалидна категория или подтип

```json
{ "error": "invalid_input", "field": "category", "message": "\"toaster\" is not a category with a passport template", "allowed": ["battery", "construction", "detergents", "electronics", "fmcg", "furniture", "jewelry", "packaging", "paints-coatings", "steel", "textile", "toys", "tyres"] }
```

### 401 — Неоторизиран

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

### 403 — Акаунтът не отговаря на условията

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

### 429 — Надвишен лимит за отговори

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

### 503 — Регулаторните данни са недостъпни

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

## Related

- [POST Проверка на обхвата на DPP](https://www.tracepass.eu/bg/docs/check-scope.md)
- [GET Регулаторни промени](https://www.tracepass.eu/bg/docs/get-regulatory-changes.md)
