API dla Cyfrowego Paszportu Produktu: dokumentacja dla deweloperów
Dzięki API dla klientów Twoje systemy tworzą produkty, uzupełniają pola danych, publikują paszporty oraz pobierają kody QR i pliki PDF. Uwierzytelnianie odbywa się za pomocą klucza API, który samodzielnie generujesz na platformie. Pełny opis jest dostępny jako plik OpenAPI 3.1.
Ostatnia aktualizacja: 1 października 2026
Przegląd
API dla klientów to interfejs REST wykorzystujący JSON. Działa na danych Twojej organizacji, czyli na tych samych produktach i paszportach, które widzisz w aplikacji internetowej. Typowe zastosowania to integracja z systemem ERP lub PLM, nocna synchronizacja danych podstawowych lub skrypt pobierający kody QR do druku.
Bazowy adres URL to https://dpp.com2u.selfhost.eu/api/v1/integration. Wszystkie odpowiedzi są w formacie JSON, z wyjątkiem pobierania kodu QR i pliku PDF.
Pobierz specyfikację
Czytelną maszynowo dokumentację referencyjną wszystkich endpointów, pól, przykładów i odpowiedzi błędów stanowi specyfikacja OpenAPI 3.1 ze schematem zabezpieczeń ApiKeyAuth:
Ten sam plik udostępnia samo API pod adresem GET /api/v1/integration/openapi.json, bez klucza. Zaimportuj go do Swagger UI, Postmana lub wybranego generatora kodu. Opisy w pliku są w języku niemieckim.
Szybki start
- Zarejestruj się lub zaloguj. API jest dostępne w planach płatnych, zob. Cennik.
- Otwórz na platformie sekcję Organizacja i wygeneruj klucz API. Skopiuj go od razu, ponieważ jest wyświetlany tylko raz.
- Przetestuj połączenie:
curl -H "X-API-Key: $DPP_API_KEY" \
https://dpp.com2u.selfhost.eu/api/v1/integration/me
Odpowiedź zawiera Twoją organizację, zakresy (scopes) klucza, Twój plan oraz zużycie wywołań API.
Uwierzytelnianie
Przy każdym wywołaniu wysyłaj klucz w nagłówku X-API-Key. Równoważny jest nagłówek Authorization: Bearer dpp_key_…. Organizacja wynika zawsze z klucza — identyfikator organizacji przekazany jako parametr nie jest uwzględniany. API nie akceptuje tokenów sesji z aplikacji internetowej.
Klucz należy do osoby, która go wygenerowała. Operacje są wykonywane z jej uprawnieniami jako Owner lub Admin. Jeśli ta osoba utraci tę rolę, API odpowiada kodem 403, dopóki nie zostanie wygenerowany nowy klucz. Wygenerowanie nowego klucza natychmiast unieważnia dotychczasowy. Platforma przechowuje wyłącznie skrót SHA-256 klucza.
Endpointy
Wszystkie ścieżki znajdują się pod /api/v1/integration. Każdy endpoint wymaga określonego zakresu (scope); nowy klucz ma wszystkie cztery.
| Metoda i ścieżka | Przeznaczenie | Scope |
|---|---|---|
GET /me | Organizacja, zakresy, plan, zużycie | każdy klucz |
GET /schemas | Schematy z polami danych | products:read |
POST /products | Utworzenie produktu, opcjonalnie z polami danych | products:write |
GET /products | Lista produktów (status, q, limit, offset) | products:read |
GET /products/{id} | Odczyt produktu | products:read |
GET /products/{id}/fields | Odczyt aktualnych pól danych | products:read |
PATCH /products/{id}/fields | Ustawienie pól danych | products:write |
POST /products/{id}/passports | Wygenerowanie i opublikowanie paszportu | passports:write |
GET /products/{id}/passports | Lista wersji paszportu | passports:read |
POST /passports/{id}/publish | Opublikowanie wersji roboczej | passports:write |
GET /products/{id}/passport/qr | Kod QR jako PNG lub SVG | passports:read |
GET /products/{id}/passport/pdf | Paszport jako PDF | passports:read |
Tworzenie produktu
Pole name jest obowiązkowe. Bez schema_key stosowany jest domyślny schemat Twojej organizacji; dostępne klucze zwraca GET /schemas. Pola danych można przekazać od razu. Za pomocą field_status określasz status wartości — do paszportu trafiają wyłącznie wartości approved.
curl -X POST https://dpp.com2u.selfhost.eu/api/v1/integration/products \
-H "X-API-Key: $DPP_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Moduł baterii X1","category":"Baterie przemysłowe",
"manufacturer_ref":"ART-4711","schema_key":"battery-v1",
"fields":{"battery_chemistry":"LFP"},"field_status":"approved"}'
Odpowiedź ze statusem 201 zawiera id produktu. Jest to jednocześnie niepowtarzalny identyfikator produktu zakodowany w kodzie QR. Limit produktów w Twoim planie obowiązuje tak samo jak w aplikacji internetowej.
Publikowanie paszportu, pobieranie kodu QR i PDF
Paszport zamraża zatwierdzone pola danych jako nową wersję. Jeśli brakuje pól obowiązkowych, API odpowiada kodem 422 i wymienia je w missing_fields.
curl -X POST -H "X-API-Key: $DPP_API_KEY" \
https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passports
curl -o qr.png -H "X-API-Key: $DPP_API_KEY" \
"https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passport/qr?format=png&size=600"
curl -o passport.pdf -H "X-API-Key: $DPP_API_KEY" \
https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passport/pdf
Aby uzyskać kod QR w formie wektorowej, użyj format=svg. Plik PDF jest dostępny dopiero po publikacji — wcześniej API odpowiada kodem 404. Kod QR prowadzi do publicznej strony paszportu; więcej na ten temat w artykule Cyfrowy Paszport Produktu z Excela.
Kody błędów
| Status | Znaczenie |
|---|---|
| 401 | Brak klucza lub klucz nieprawidłowy, unieważniony albo wygasły |
| 402 | Wyczerpany limit: wywołań API, produktów lub paszportów |
| 403 | Brak zakresu, plan bez API, twórca klucza nie jest już Owner ani Admin, organizacja zablokowana |
| 404 | Nie znaleziono obiektu lub należy on do innej organizacji |
| 422 | Nieprawidłowe dane wejściowe, nieznane pole lub brak pól obowiązkowych |
W przypadku 401 i 403 pole detail zawiera obiekt z code i message, na przykład insufficient_scope lub api_not_in_plan. W przypadku 402 pole detail podaje zasób, limit i dotychczasowe zużycie.
Ograniczenia
Przez API ustawiasz pola danych na poziomie produktu. Pola dla partii lub pojedynczych egzemplarzy uzupełniasz w aplikacji internetowej. Nie ma limitu szybkości, ale obowiązuje limit wywołań w ramach planu; liczy się każde uwierzytelnione wywołanie. Pobranie specyfikacji nie jest wliczane. Aktualne plany i limity znajdziesz na stronie Cennik. Szablon do masowego importu bez API oferuje szablon danych.
Najczęściej zadawane pytania
- Skąd wziąć klucz API?
Na platformie, w sekcji Organizacja. Klucz generują tam właściciele (Owner) i administratorzy. Jest on wyświetlany tylko raz, a każda organizacja ma dokładnie jeden klucz.
- Które plany obejmują API?
Starter, Professional i Enterprise — nie obejmuje go plan próbny. Na każdy paszport z limitu planu przypada 10 wywołań API. Aktualne wartości znajdziesz na stronie Cennik.
- Czy obowiązuje limit szybkości (rate limit)?
Nie ma osobnego limitu szybkości (HTTP 429). Ograniczeniem jest limit wywołań w ramach planu. Gdy zostanie wyczerpany, API odpowiada kodem 402.
- Czy mogę wczytać specyfikację do Swagger UI lub Postmana?
Tak. Plik OpenAPI 3.1 jest dostępny do pobrania w formatach JSON i YAML i można go zaimportować do popularnych narzędzi oraz generatorów kodu.
Zacznij od swoich danych produktowych
Wypróbuj bezpłatnie przez 30 dni: zaimportuj dane, sprawdź je i opublikuj jako paszport produktu.