Skip to main content

APIs & SDKs

Four developer surfaces, one platform. Pick the one that matches your stack — they all hit the same backend, the same data, and the same authenticated session.

Pick your interface​

When to pick what​

You're building…Reach for
A React frontend (wallet, DPP scan UI, loyalty dashboard)React SDK
A Node.js backend, a Vue / Svelte / Next app, a CLIJavaScript SDK
A Python service that mints or updates DPP passports server-sidePython SDK
Anything else (Go, Ruby, PHP, Rust, no-code)REST API

The four surfaces are not exclusive — most production deployments mix them. A typical Loyalty integration uses the React SDK on the storefront and the REST API from the back-office to mint points after a checkout webhook fires on the partner's side.

Coverage matrix​

What each surface exposes today. – means « not surfaced at this layer yet » — the underlying capability still exists, you can usually reach it via the REST API.

CapabilityReact SDKJS SDKPython SDKREST API
Embedded Wallet (auth, accounts, signing)✅✅–✅
Digital Product Passport (mint, update, certify)✅✅✅✅
On-chain Loyalty (orders, reward tiers, accounts)✅✅–✅
Wallet for Agents–––✅
Imports (catalogue, bulk DPP)–––✅
Admin operations (members, applications, billing)–––✅ (Admin Console preferred)

Authentication at a glance​

SurfaceMechanism
React SDKSession cookie issued by Keyban Auth
JS SDKSession cookie or X-Api-Key, depending on context
Python SDKX-Api-Key header (passed to the constructor)
REST APIX-Api-Key header, with { resource: ['action'] } permissions

API keys are issued from the Admin Console — there is no public REST endpoint to provision them programmatically. See Permissions & Roles for the full model and the OR-logic between member roles and API key scopes.

Versioning and stability​

  • REST endpoints carry a major version in the path (/v1/...). Breaking changes ship behind a new prefix; old versions stay live for the duration documented in the migration note.
  • TypeScript SDKs follow semver — the changelog is in each package's CHANGELOG.md.
  • Python SDK follows semver against the DPP REST surface it wraps.
  • OpenAPI spec is the source of truth — the SDKs are regenerated or hand-tested against it on every release.