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
Każde zapytanie do chronionych endpointów musi zawierać nagłówek:
Authorization: Bearer {api_key}
# lub alternatywnie (legacy)
X-API-Key: eur_live_xxxxxxxxxxxxxxxxxxxxKlucz 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.
| Metoda | Endpoint | Opis | Wersja |
|---|---|---|---|
| GET | /api/v1/verify/{dds_id} | Zweryfikuj status DDS (publiczny) | v1 |
| GET | /api/eudr/v1/risk-score | Risk Score (pojedynczy) | v1 |
| POST | /api/eudr/v1/risk-score/batch | Risk Score (batch, max 500) | v1 |
| GET | /api/eudr/v1/dds/{ddsId} | Pobierz DDS | v1 |
| POST | /api/csrd/report | Generuj raport CSRD (PDF) | v1 |
| GET | /api/widget | JavaScript widget (embed badge) | v1 |
| GET | /api/eudr/v1/webhooks | Lista webhooków | v1 |
| POST | /api/eudr/v1/webhooks | Zarejestruj webhook | v1 |
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 HTTP | Znaczenie |
|---|---|
200 OK | DDS znaleziony i zweryfikowany |
404 Not Found | DDS o podanym ID nie istnieje |
429 Too Many Requests | Przekroczono limit zapytań |
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.pdfOdpowiedź
Content-Type: application/pdf Content-Disposition: attachment; filename="CSRD-Animex-Foods-2025.pdf" # Plik PDF z raportem CSRD (Scope 3, ryzyko EUDR, emisje CO2)
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
| Parametr | Wartości | Domyślnie |
|---|---|---|
lang | pl | en | pl |
style | badge | card | full | badge |
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>
| Plan | Limit dzienny | Burst (per min) | Uwagi |
|---|---|---|---|
| Free | 100 / dzień | 10 / min | Tylko weryfikacja |
| Standard | 2 000 / dzień | 60 / min | DDS + risk score |
| Enterprise | Bez limitu | Bez limitu | SLA 99.9%, wsparcie 24/7 |
Nagłówki odpowiedzi informujące o limitach:
X-RateLimit-Limit | Maksymalna liczba zapytań na dzień |
X-RateLimit-Remaining | Pozostała liczba zapytań w bieżącym oknie |
X-RateLimit-Reset | Unix timestamp resetu limitu (midnight UTC) |
Po przekroczeniu limitu API zwraca 429 Too Many Requests z nagłówkiem Retry-After: 86400.
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.
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"]}'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