API reference

The hosted platform is a language-agnostic HTTP API. Base URL:

https://api.getdpdp.net/api/v1

Authenticate machine requests with a secret key (dpdp_sk_…) in the X-API-Key header; a publishable key (dpdp_pk_…) is limited to reading purposes and recording consent. A few endpoints are public (no key) so anyone can verify a certificate.

Always-current reference. The tables below are a guide; the exhaustive, auto-generated schema (it can't drift from the code) lives at Swagger UI and ReDoc. The JavaScript SDK wraps these in typed methods.

MethodEndpointPurpose
GET POST/purposesList or create consent purposes (with multilingual notices).
POST/consentRecord consent for a purpose; returns an immutable receipt.
POST/consent/withdrawWithdraw consent (triggers erasure per the policy).
GET/consent/statusCurrent consent state for a principal.
GET/consent/recordsList consent records.
POST/activityRecord activity (resets the inactivity clock for retention).

Erasure & fan-out

MethodEndpointPurpose
POST/erasureRecord an erasure (or legal-hold deferral) for a subject.
POST/erasure/confirmA downstream target confirms it erased its copy.
GET/erasure/tasksList per-target fan-out tasks.
POST/erasure/tasks/{id}/retryRe-send an erasure instruction to a target.
GET POST/targetsList or register downstream erasure targets.
GET POST DELETE/targets/{id}Get, update, or remove a target.

Audit & evidence

MethodEndpointPurpose
GET/auditThe hash-chained audit log (optionally by principal).
GET/audit/verifyWhere the chain breaks (and which checkpoint it anchored to).
POST/audit/checkpointSnapshot the chain so it can be pruned and still verify.
POST GET/evidenceIngest (or list) an SDK-pushed audit chain (idempotent).
POST/evidence/certificateIssue a certificate from pushed evidence.

Certificates

MethodEndpointPurpose
POST/certificateCounter-signed Certificate of Erasure.
POST/consent/certificateCounter-signed Certificate of Consent (with notice fingerprint).
POST/certificate/verifyVerify a certificate JWT. Public.
GET/certificate/public-keyThe signing public key. Public.
GET/certificate/registry/{fingerprint}Look a certificate up in the registry (revocation).

Retention, readiness & stats

MethodEndpointPurpose
GET POST/retention/policiesList or upsert per-purpose retention rules.
POST/retention/runRun the retention sweep (supports a dry run).
GET/readinessGraded DPDP retention-readiness score over your policies.
GET/statsAggregate dashboard counts.

Rights & breaches

MethodEndpointPurpose
GET POST/dsrList or create data-subject requests (access/correction/…).
GET POST/dsr/{id}Get or advance a request (acknowledge / complete / reject / extend).
GET POST/breachesList or report breach incidents (metadata only, no PII).
GET POST/breaches/{id}Get or advance a breach.
GET/breaches/{id}/notificationDraft the Board + principal notifications.

Account & API keys

Dashboard endpoints (under /api/v1/auth/), used by the web app. These return a JWT: signup/login give an access + refresh pair; send the access token as Authorization: Bearer <token> on subsequent calls.

MethodEndpointPurpose
POST/auth/signup · /auth/loginCreate an account / sign in → access + refresh tokens.
POST/auth/refreshExchange a refresh token for a new access token.
POST/auth/logoutRevoke (blacklist) a refresh token.
GET/auth/meCurrent user + the organizations they can act on.
GET POST/auth/keysList or create API keys.
POST/auth/keys/{id}/revokeRevoke an API key.

Not Python? See Other languages — call any of these over HTTP, or use the JS SDK.