Official client SDKs for the OpenDPP Digital Product Passport API — generated from the public OpenAPI contract and version-locked to it.
| SDK | Package | Source |
|---|---|---|
| TypeScript | @opendpp/sdk (npm) |
typescript/ |
| Java | eu.opendpp-node:opendpp-sdk (Maven Central) |
java/ |
| Kotlin | via the Java artifact — same coordinates, idiomatic from Kotlin | java/ |
| Python | opendpp (PyPI) — planned |
— |
Part of the OpenDPP open client surface (Apache-2.0). The SDKs are ergonomics only — they embed no tier/masking logic and no restricted-key knowledge; every privileged operation is a typed call to the hosted node behind a Developer-Plan key. A rival could regenerate an equivalent from the public spec in an afternoon — the value is the hosted node it calls, not the client.
npm install @opendpp/sdkimport { createOpenDppClient, getHealth } from "@opendpp/sdk";
const client = createOpenDppClient({ apiKey: process.env.OPENDPP_API_KEY });
const health = await getHealth({ client });Full SDK + docs: typescript/.
implementation("eu.opendpp-node:opendpp-sdk:1.11.0")import eu.opendppnode.sdk.OpenDpp;
import eu.opendppnode.sdk.api.ServiceApi;
import eu.opendppnode.sdk.invoker.ApiClient;
ApiClient client = OpenDpp.client(System.getenv("OPENDPP_API_KEY"));
var health = new ServiceApi(client).getHealth();Java 17+, built on the JDK HttpClient with Jackson. Full SDK + docs: java/.
Kotlin consumes the same artifact idiomatically — no separate package:
val client = OpenDpp.client(System.getenv("OPENDPP_API_KEY"))
val health = ServiceApi(client).healthComing next — the same generation pipeline, published to PyPI as opendpp.
Each SDK is mechanically generated from openapi.json (the
curated public API contract) and version-locked to OPENAPI_VERSION — the SDK's major.minor is
the contract version (@opendpp/sdk@1.11.x targets contract 1.11), while the patch digit is the
SDK's own lane for client-only fixes against the same contract. CI regenerates and fails on any
drift, so the committed client always matches the spec. Releases are keyless where the registry supports it (npm OIDC trusted publishing for TypeScript); the Java artifacts are GPG-signed and published to Maven Central. Nothing here re-implements a server-side
capability.
- opendpp-interop — interop boundary kit: official AAS + UNTP schemas, validated samples, an offline conformance validator, the OpenAPI contract.
- opendpp-knowledge — the API as an OKF (Open Knowledge Format) bundle for AI agents.
- Live service · API reference ·
openapi.json
Apache-2.0 © Opendpp UAB. See NOTICE and TRADEMARK.md.
"OpenDPP" is a trademark of Opendpp UAB; the license grants no rights to the marks.
