REST API
The platform offers all operations through a RESTful API. The API uses Keycloak-based authentication and exchanges data in JSON format. The API follows OpenAPI 3.0.3 specification with interactive documentation available via Swagger UI.
API Structure
The v2 API is organized into functional modules:
Endpoint Hierarchy
/api/v2/multi-agent
├── /holder → Credential holder operations
├── /groups → Agent group management
│ ├── /{groupId}/issuer → Issuer operations via group
│ └── /{groupId}/mediator → Mediator operations via group
All v2 routes require Keycloak authentication.
Root & Health Endpoints
| Method | Path | Description |
|---|---|---|
| GET | / | Welcome message for DT Cloud SSI API Service |
| GET | /health | Health check for Issuer and Holder agents |
| GET | /health/metrics | System and process metrics |
| GET | /docs | Swagger UI documentation |
| GET | /docs.json | OpenAPI specification in JSON |
Holder - Credential Holder (/api/v2/multi-agent/holder)
Connection Management
| Method | Path | Description |
|---|---|---|
| POST | /holder/connections/receive-invitation | Receive invitation |
| GET | /holder/connections | List connections |
| GET | /holder/connections/active | List active connections |
| GET | /holder/connections/{connectionId} | Get connection details |
| DELETE | /holder/connections | Delete connections |
Credential Management
| Method | Path | Description |
|---|---|---|
| GET | /holder/credentials/offers | Get credential offers |
| POST | /holder/credentials/offers/{credExId}/accept | Accept credential offer |
| GET | /holder/credentials/exchanges | List credential exchanges |
| GET | /holder/credentials/wallet | Get wallet credentials |
| GET | /holder/credentials/wallet/with-revocation | Get credentials with revocation status |
| POST | /holder/credentials/proposals | Create credential proposal |
| POST | /holder/credentials/request | Request credential |
| DELETE | /holder/credentials/offers | Delete credential offers |
| DELETE | /holder/credentials/exchanges | Delete credential exchanges |
Revocation Requests
| Method | Path | Description |
|---|---|---|
| POST | /holder/revocation-requests | Create revocation request |
| GET | /holder/revocation-requests | List revocation requests |
| GET | /holder/revocation-requests/{requestId} | Get specific revocation request |
Group Management (/api/v2/multi-agent/groups)
| Method | Path | Description |
|---|---|---|
| POST | /groups | Create agent group |
| GET | /groups | List agent groups |
| GET | /groups/{groupId} | Get agent group |
| PUT | /groups/{groupId} | Update agent group |
| DELETE | /groups/{groupId} | Delete agent group |
| POST | /groups/{groupId}/agents/{tenantId} | Add agent to group |
| DELETE | /groups/{groupId}/agents/{tenantId} | Remove agent from group |
| GET | /groups/{groupId}/select-agent | Select agent from group |
| POST | /groups/{groupId}/auto-scale | Configure auto-scaling |
Issuer - Credential Issuer (/api/v2/multi-agent/groups/{groupId}/issuer)
Connection Management
| Method | Path | Description |
|---|---|---|
| POST | /issuer/connections/create-invitation | Create invitation |
| GET | /issuer/connections | List connections |
| GET | /issuer/connections/{connectionId} | Get connection details |
Schema Management
| Method | Path | Description |
|---|---|---|
| POST | /issuer/schemas | Create schema |
| GET | /issuer/schemas | List schemas |
Credential Definition Management
| Method | Path | Description |
|---|---|---|
| POST | /issuer/credential-definitions | Create credential definition |
| GET | /issuer/credential-definitions | List credential definitions |
Credential Issuance
| Method | Path | Description |
|---|---|---|
| POST | /issuer/credentials/issue-by-schema | Issue credential by schema |
| POST | /issuer/credentials/send-offer | Send credential offer |
| GET | /issuer/credentials/exchanges | List credential exchanges |
| POST | /issuer/credentials/exchanges/{credExId}/issue | Issue credential from exchange |
Revocation Management
| Method | Path | Description |
|---|---|---|
| POST | /issuer/revocation/revoke | Revoke credential |
| GET | /issuer/revocation/registries | List revocation registries |
| GET | /issuer/revocation/registries/{revRegId} | Get revocation registry details |
Proof/Verification
| Method | Path | Description |
|---|---|---|
| GET | /issuer/proofs/records | List proof records |
| POST | /issuer/proofs/records/{presExId}/verify | Verify proof |
| GET | /issuer/proofs/transcripts | Get transcript proofs |
| GET | /issuer/proofs/diplomas | Get diploma proofs |
Wallet Management
| Method | Path | Description |
|---|---|---|
| POST | /issuer/wallet/register-public-did | Register public DID |
| GET | /issuer/wallet/public-did | Get public DID |
| GET | /issuer/wallet/dids | List DIDs |
Mediator (/api/v2/multi-agent/groups/{groupId}/mediator)
Connection Management
| Method | Path | Description |
|---|---|---|
| POST | /mediator/connections/create-invitation | Create invitation |
| GET | /mediator/connections | List connections |
| GET | /mediator/connections/{connectionId} | Get connection details |
| DELETE | /mediator/connections/{connectionId} | Delete connection |
| DELETE | /mediator/connections | Delete all connections |
Mediation Management
| Method | Path | Description |
|---|---|---|
| GET | /mediator/mediation/records | List mediation records |
| GET | /mediator/mediation/records/{mediationId} | Get mediation record |
| GET | /mediator/mediation/keylists | Get mediation keylists |
| POST | /mediator/mediation/records/{mediationId}/grant | Grant mediation |
| POST | /mediator/mediation/records/{mediationId}/deny | Deny mediation |
| DELETE | /mediator/mediation/records/{mediationId} | Delete mediation record |
| DELETE | /mediator/mediation/records | Delete all mediation records |
API Flow
Error Codes
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not found |
| 500 | Server error |
Summary
| Metric | Value |
|---|---|
| API Version | v2 |
| Authentication | Keycloak |
| Documentation | OpenAPI 3.0.3 via Swagger UI |
| Agent Types | Holder (Holder), Issuer (Issuer), Mediator |