APIs
Procivis One exposes five APIs covering different layers of the platform.
| API | Purpose | License |
|---|---|---|
| Core | Credentials, schemas, certificate infrastructure, keys, trust infrastructure, DIDs, and external-facing protocol endpoints | Open source |
| Enterprise Backend | Management layer for operators; wraps Core for the Desk web application and provides simplified IAM integration | Enterprise |
| Wallet-Relying Party Registry | Trust registry infrastructure for EUDI-compliant relying party registration, certificate issuance, and lifecycle management | Enterprise |
| OpenID Bridge | Enables any OIDC relying party to accept digital credentials for authentication without changing their auth infrastructure | Enterprise |
| Notification Service | The Notification Service API provides translation-ready, template-based notifications to end users across configurable delivery channels. |
The Enterprise Backend, OpenID Bridge, and WRPR are all built on top of Core.
Making Requests
Every endpoint is relative to your deployment's host. A local Core
instance started via the Quick Start runs at
http://localhost:3000; a hosted or self-managed deployment uses
whatever domain you've configured it under.
Requests use these headers:
Accept: application/json— always requiredContent-Type: application/json— required for requests with a body (POST,PUT,PATCH)Authorization: Bearer <token>— required unless your instance runs with no authentication; see Authentication below for how tokens are issued per mode
A GET request has no body, so no Content-Type is needed:
curl -X 'GET' \
'http://localhost:3000/api/proof-request/v2/38036299-0a0c-475e-9ccb-01677c840619/presentation-definition' \
-H 'accept: application/json' \
-H 'Authorization: Bearer test'
A POST request includes one:
curl -X 'POST' \
'http://localhost:3000/api/organisation/v1' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer test' \
-d '{}'
If you're using Swagger UI instead of a direct HTTP client, the base URL and Authorization header are already applied for you once you hit Authorize — see the Quick Start for that path.
Authentication
All Procivis One components share the same authentication modes: no authentication, static token, or STS. STS mode is recommended for production deployments. For a full explanation of authentication modes, token structures, and integration patterns, see Configuring Authentication Mode.
Common patterns
Errors
HTTP status code responses follow the standard pattern:
- 2xx: Successful responses
- 4xx: Client error responses
- 5xx: Server error responses
Most error responses include additional detail for troubleshooting.
Pagination
When retrieving lists of resources, use the page and pageSize query
parameters to control results.
page: the page to return; the first page is0pageSize: number of items per page; defaults to30for the Enterprise Backend API; must be specified for the Core API
Paginated responses include totalItems and totalPages fields.
Sorting
Pass sort and sortDirection query parameters to sort lists.
sort: the response field to sort by; supported values are listed per endpointsortDirection:ASCorDESC
Default ordering is createdDate DESC. If sort is specified without
sortDirection, direction defaults to ASC.
Filtering
List endpoints support filtering by query parameter. The following capabilities are available across resources, though not every resource supports every filter.
By name
name filters items whose names start with the provided string
(case-insensitive). For credentials and proof requests, which have no
name, it filters by the associated schema name instead.
Add exact[]=name to switch from prefix matching to exact matching
(still case-insensitive).
Advanced search
The /credential and /history endpoints support searchText combined
with searchType[] to search within specific fields. Unlike name,
searchText matches anywhere within the field, not just at the start.
By date range
All list endpoints support createdDateAfter, createdDateBefore,
lastModifiedAfter, and lastModifiedBefore using RFC 3339 timestamps.
Credentials additionally support issuanceDateAfter,
issuanceDateBefore, revocationDateAfter, and revocationDateBefore.
Proof requests additionally support requestedDateAfter,
requestedDateBefore, completedDateAfter, and completedDateBefore.
By state
Use states[] to filter by lifecycle state. Available states vary by
resource type. See the relevant workflow guides for state reference:
Issuing · Verifying ·
Holding
By role
Use roles[] to filter by the system's role in creating the resource.
For example, filter credentials by HOLDER to return only credentials
the system holds as a wallet, or VERIFIER to return only proof requests
the system initiated.
By ID
Use ids[] to retrieve specific items by UUID in a single request.
By format, type, and key properties
Credential schemas support formats[]. Identifiers support types[],
didMethods[]. Keys support keyTypes[]. Identifiers also support
keyAlgorithms[] and keyStorages[].
Remote vs. local
Use isRemote=false to return only entities your system created and
controls. Use isRemote=true to return entities from external parties
your system has interacted with.
By related entity
- Proof requests: filter by
proofSchemaIds[] - Trust entities: filter by
trustAnchorId - Trust anchors: filter by
isPublisher
OpenAPI specifications
Core · Enterprise Backend · WRPR · OpenID Bridge
Access and licensing
Core is open source → Procivis One Core on GitHub
Enterprise Backend, WRPR, and OpenID Bridge require an enterprise license → Contact sales