API Overview
Base URL, authentication, error format, and endpoint summary.
The ATAP API is a REST API for entity management, credential issuance, revocation, and DIDComm messaging. Approvals themselves are transported via DIDComm — not via REST.
Base URL
Declared in /.well-known/atap.json. The reference implementation uses:
- Production:
https://api.atap.dev/v1 - Sandbox:
https://api.sandbox.atap.dev/v1
Authentication
Authenticated endpoints require OAuth 2.1 + DPoP (RFC 9449). Each request includes:
- A
DPoPheader with a proof JWT - An
Authorization: DPoP <token>header
See OAuth & DPoP for token acquisition.
Scopes
| Scope | Permits |
|---|---|
atap:inbox | Read inbox, SSE stream |
atap:send | Send DIDComm messages |
atap:revoke | Submit approval revocations |
atap:manage | Manage credentials, key rotation |
Error format
Errors follow RFC 7807 (Problem Details):
{
"type": "https://atap.dev/errors/trust-level-insufficient",
"title": "Insufficient trust level",
"status": 403,
"detail": "This endpoint requires trust level 2.",
"instance": "/v1/credentials/personhood"
}Endpoints at a glance
Public (no auth)
POST
/v1/entitiesNoneRegister a new entity.
GET
/v1/entities/{id}NoneGet entity info.
GET
/{type}/{id}/did.jsonNoneResolve DID Document.
GET
/.well-known/atap.jsonNoneServer discovery.
GET
/v1/revocationsNoneQuery revocations by entity DID.
GET
/v1/credentials/status/{list-id}NoneBitstring Status List.
Authenticated (DPoP)
DELETE
/v1/entities/{id}atap:manageCrypto-shred entity.
POST
/v1/revocationsatap:revokeSubmit signed revocation.
POST
/v1/credentials/email/startatap:manageStart email verification.
POST
/v1/credentials/email/verifyatap:manageComplete email verification.
GET
/v1/credentialsatap:manageList own credentials.
POST
/v1/didcommDIDCommDIDComm message endpoint.