EUDR.pl
API v1 · Live

EUDR.pl Public API v1

REST JSON API do weryfikacji zgodności EUDR, generowania raportów CSRD oraz osadzania odznaki zgodności na Twojej stronie produktowej. Bazowy URL: https://eudr.pl

Uwierzytelnianie

Każde zapytanie do chronionych endpointów musi zawierać nagłówek:

Authorization: Bearer {api_key}
# lub alternatywnie (legacy)
X-API-Key: eur_live_xxxxxxxxxxxxxxxxxxxx

Klucz API wygenerujesz w panelu: eudr.pl/eudr/api-keys

Endpoint GET /api/v1/verify/{dds_id} jest publiczny — nie wymaga klucza API. Zalogowani użytkownicy portalu mogą pomijać nagłówek — uwierzytelnianie przez cookie sesji odbywa się automatycznie.

Endpointy

MetodaEndpointOpisWersja
GET/api/v1/verify/{dds_id}Zweryfikuj status DDS (publiczny)v1
GET/api/eudr/v1/risk-scoreRisk Score (pojedynczy)v1
POST/api/eudr/v1/risk-score/batchRisk Score (batch, max 500)v1
GET/api/eudr/v1/dds/{ddsId}Pobierz DDSv1
POST/api/csrd/reportGeneruj raport CSRD (PDF)v1
GET/api/widgetJavaScript widget (embed badge)v1
GET/api/eudr/v1/webhooksLista webhookówv1
POST/api/eudr/v1/webhooksZarejestruj webhookv1

GET/api/v1/verify/{dds_id}

Publiczny endpoint do weryfikacji statusu deklaracji Due Diligence. Zwraca status zgodności, poziom ryzyka i datę weryfikacji. Nie wymaga uwierzytelniania.

Przykład zapytania

curl -X GET \
  "https://eudr.pl/api/v1/verify/DDS-PL-14120112-M8K2F9A4" \
  -H "Accept: application/json"

Przykładowa odpowiedź 200 OK

{
  "dds_id": "DDS-PL-14120112-M8K2F9A4",
  "status": "COMPLIANT",
  "risk_level": "low",
  "operator_name": "Jan Kowalski",
  "commodity": "Pszenica",
  "country_of_production": "PL",
  "verified_at": "2025-04-08T10:23:00.000Z",
  "valid_until": "2026-04-08T23:59:59.000Z",
  "cert_url": "https://eudr.pl/cert/DDS-PL-14120112-M8K2F9A4"
}

Kody błędów

Kod HTTPZnaczenie
200 OKDDS znaleziony i zweryfikowany
404 Not FoundDDS o podanym ID nie istnieje
429 Too Many RequestsPrzekroczono limit zapytań

POST/api/csrd/report

Generuje raport CSRD (PDF) dla operatora łańcucha dostaw. Raport zawiera Scope 3 emisje, analizę ryzyka EUDR dostawców i rekomendacje ESG. Wymaga planu Standard lub Enterprise.

Schemat ciała zapytania

{
  "company_name": "string",        // wymagane
  "report_year": 2025,             // wymagane, 4-cyfrowy rok
  "suppliers": [                   // wymagane, tablica dostawców
    {
      "name": "string",            // nazwa dostawcy
      "nip": "string",             // NIP (opcjonalnie)
      "parcel_id": "string",       // ID działki ULDK (opcjonalnie)
      "crop_type": "wheat|corn|rapeseed|soy|other",
      "quantity_t": 480,           // tonaż
      "area_ha": 120,              // powierzchnia ha
      "location": "string"         // region/województwo
    }
  ]
}

Przykład cURL

curl -X POST "https://eudr.pl/api/csrd/report" \
  -H "Authorization: Bearer eur_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "company_name": "Animex Foods Sp. z o.o.",
    "report_year": 2025,
    "suppliers": [
      {
        "name": "Jan Kowalski Gospodarstwo Rolne",
        "nip": "7272445205",
        "parcel_id": "141201_2.0001.AR_1.1",
        "crop_type": "wheat",
        "quantity_t": 480,
        "area_ha": 120,
        "location": "Kujawsko-Pomorskie"
      }
    ]
  }' \
  --output csrd_report.pdf

Odpowiedź

Content-Type: application/pdf
Content-Disposition: attachment; filename="CSRD-Animex-Foods-2025.pdf"
# Plik PDF z raportem CSRD (Scope 3, ryzyko EUDR, emisje CO2)

GET/api/widget — Embed Badge

Zwraca gotowy skrypt JavaScript do osadzenia odznaki zgodności EUDR na Twojej stronie produktowej, w sklepie B2B lub systemie ERP. Skrypt jest bezstanowy, nie wymaga klucza API i działa cross-origin.

Parametry URL

ParametrWartościDomyślnie
langpl | enpl
stylebadge | card | fullbadge

Integracja — dodaj do strony produktu

<!-- 1. Dodaj skrypt do <head> lub przed </body> -->
<script src="https://eudr.pl/api/widget?lang=pl" async></script>

<!-- 2. Umieść div z numerem DDS tam, gdzie chcesz odznakę -->
<div data-eudr-dds="DDS-PL-14120112-M8K2F9A4"></div>

<!-- Widget automatycznie pobiera status i renderuje odznakę: -->
<!--
  ✅ Zweryfikowano EUDR · Zobacz certyfikat   (zielona)
  ⏳ Weryfikacja w toku · Zobacz certyfikat   (żółta)
  ✗  Brak weryfikacji  · Zobacz certyfikat   (czerwona)
-->

<!-- Wiele produktów na jednej stronie: -->
<div data-eudr-dds="DDS-PL-14120112-M8K2F9A4"></div>
<div data-eudr-dds="DDS-PL-30150-AA001"></div>

Alternatywnie — plik statyczny

<!-- Jeśli preferujesz self-hosting: -->
<script src="https://eudr.pl/widget.js" async></script>

Limity zapytań (Rate Limiting)

PlanLimit dziennyBurst (per min)Uwagi
Free100 / dzień10 / minTylko weryfikacja
Standard2 000 / dzień60 / minDDS + risk score
EnterpriseBez limituBez limituSLA 99.9%, wsparcie 24/7

Nagłówki odpowiedzi informujące o limitach:

X-RateLimit-LimitMaksymalna liczba zapytań na dzień
X-RateLimit-RemainingPozostała liczba zapytań w bieżącym oknie
X-RateLimit-ResetUnix timestamp resetu limitu (midnight UTC)

Po przekroczeniu limitu API zwraca 429 Too Many Requests z nagłówkiem Retry-After: 86400.

Wersjonowanie

Endpointy produkcyjne dostępne są pod prefiksem /api/eudr/v1/. Bieżąca wersja API: 1.0.

Polityka deprecacji: Poprzednie wersje utrzymywane przez co najmniej 12 miesięcy po ogłoszeniu nowej wersji. Deprecacja sygnalizowana nagłówkami Sunset i Deprecation: true.

Więcej przykładów cURL

1. Weryfikacja DDS (bez klucza API):

curl "https://eudr.pl/api/v1/verify/DDS-PL-14120112-M8K2F9A4"

2. Risk Score dla działki:

curl -X GET \
  "https://eudr.pl/api/eudr/v1/risk-score?lat=52.2297&lng=21.0122&radiusKm=10" \
  -H "Authorization: Bearer eur_live_xxxxxxxxxxxxxxxxxxxx"

3. Batch risk score (do 500 działek):

curl -X POST "https://eudr.pl/api/eudr/v1/risk-score/batch" \
  -H "Authorization: Bearer eur_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"parcels":[{"lat":52.23,"lng":21.01},{"lat":51.11,"lng":17.03}]}'

4. Rejestracja webhooka:

curl -X POST "https://eudr.pl/api/eudr/v1/webhooks" \
  -H "Authorization: Bearer eur_live_xxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://myapp.example.com/webhook","events":["risk.critical","dds.at_risk"]}'

SDK

Python i JavaScript SDK — wkrótce.

W międzyczasie API jest w pełni użyteczne przez zwykłe HTTP (fetch, axios, requests). Przykłady integracji znajdziesz powyżej.

Jeśli chcesz być poinformowany o premierze SDK, napisz na: api@eudr.pl

Wsparcie

Email: kontakt@eudr.pl

Enterprise / integracje B2B: api@eudr.pl

Status systemu: eudr.pl/status

Wygeneruj API KeyDashboard APIWebhookiKontakt Enterprise
EUDR.pl · Powered by Niezbędnik Rolnika · EU 2023/1115