- Invitation-based — one agent creates an invitation object or URL; the peer accepts it to complete the handshake.
- Out-of-band (OOB) — an invitation is shared as a URL or QR code and can be scanned by any compatible agent. OOB invitations may be single-use or reusable (
multiUseInvitation).
Base path
All endpoints are rooted at/orgs/:orgId/connections or /orgs/:orgId/question-answer.
Authentication
Every endpoint requires a JWT bearer token.Role-based access
| Role | Allowed operations |
|---|---|
owner, admin, issuer, verifier, member | Read connections, create invitations |
owner | Delete all connection records |
owner, admin, issuer, verifier, member, holder, super_admin, platform_admin | Send questions and basic messages |
Endpoints
List connections
GET /orgs/:orgId/connections — Paginated list of all connections for an organization.Get connection
GET /orgs/:orgId/connections/:connectionId — Retrieve a single connection by its ID.Create invitation
POST /orgs/:orgId/connections — Create an outbound OOB connection invitation.Receive invitation URL
POST /orgs/:orgId/receive-invitation-url — Accept an invitation delivered as a URL.Receive invitation object
POST /orgs/:orgId/receive-invitation — Accept an invitation delivered as a JSON object.Send question
POST /orgs/:orgId/question-answer/question/:connectionId — Send a question-and-answer message over a connection.Get Q&A records
GET /orgs/:orgId/question-answer/question — Retrieve all question-answer records for an organization.Send basic message
POST /orgs/:orgId/basic-message/:connectionId — Send a plain-text message over a connection.Delete connections
DELETE /orgs/:orgId/connections — Delete all connection records for an organization.List connections
GET /orgs/:orgId/connections
Retrieve all connections for an organization. Supports pagination, full-text search, and sorting.
Required roles: owner, admin, issuer, verifier, member
Path parameters
UUID of the organization.
Query parameters
Page to retrieve. Defaults to
1.Number of records per page. Min
1, max 100. Defaults to 10.Free-text search across connection fields.
Field to sort by. Enum:
createDateTime (default) and other available sort fields.Sort direction.
ASC or DESC (default).Response
200 on success.Human-readable result message.
Examples
200 response
Get connection by ID
GET /orgs/:orgId/connections/:connectionId
Retrieve the details of a specific connection.
Required roles: owner, admin, issuer, verifier, member
Path parameters
UUID of the organization.
UUID of the connection to retrieve.
Examples
200 response
| Status | Description |
|---|---|
400 Bad Request | connectionId is not a valid UUID. |
401 Unauthorized | Missing or invalid bearer token. |
403 Forbidden | Authenticated user lacks the required role. |
Create connection invitation
POST /orgs/:orgId/connections
Creates an outbound out-of-band connection invitation. The response contains an invitation URL and object that the peer can use to establish a connection.
Required roles: owner, admin, issuer, verifier, member
Path parameters
UUID of the organization creating the invitation.
Request body
All fields are optional. When the body is omitted or left empty, a default invitation is created.Human-readable label to display to the recipient.
Internal alias for this invitation.
URL of an image to include in the invitation.
A code expressing the intended goal of the connection (e.g.,
"issue-vc").A human-readable description of the connection’s purpose.
Whether to include a handshake protocol in the invitation. Defaults to
true.Array of DIDComm handshake protocol URIs to advertise. For example,
["https://didcomm.org/connections/1.0"].When
true, the invitation can be accepted by multiple peers. Defaults to false.Automatically accept the connection once the peer responds. Defaults to
false.Attempt to reuse an existing connection if one exists with the same peer.
A specific recipient key (verkey) to use for this invitation.
A DID to use as the invitation endpoint instead of a service endpoint.
Custom routing configuration for the invitation.
Additional attachments to include in the OOB invitation message.
Pre-attached messages to deliver alongside the invitation.
Response
Examples
201 response
Receive invitation URL
POST /orgs/:orgId/receive-invitation-url
Accept an OOB invitation delivered as a URL string. The agent parses the URL and completes the connection handshake.
Required roles: owner, admin
Path parameters
UUID of the organization accepting the invitation.
Request body
The full OOB invitation URL to accept.
Internal alias for the resulting connection.
Display label for the resulting connection.
Automatically complete the connection handshake. Defaults to
false.Automatically accept the invitation without user confirmation. Defaults to
false.Attempt to reuse an existing connection with the same peer.
Timeout in milliseconds to wait for the peer to respond.
Examples
Receive invitation object
POST /orgs/:orgId/receive-invitation
Accept an OOB invitation delivered as a raw JSON invitation object.
Required roles: owner, admin
Path parameters
UUID of the organization accepting the invitation.
Request body
The DIDComm invitation object.
Internal alias for the resulting connection.
Automatically complete the handshake.
Automatically accept without user confirmation.
Attempt to reuse an existing connection with the same peer.
Send question
POST /orgs/:orgId/question-answer/question/:connectionId
Send a question-and-answer message to a connected peer. The peer receives a list of valid text responses and must pick one.
Required roles: owner, admin, issuer, verifier, member, holder, super_admin, platform_admin
Path parameters
UUID of the organization.
ID of the connection over which to send the question.
Request body
The question text to send to the peer. Example:
"What is your name?".Array of valid response objects the peer may choose from. Each object must have a
text (string) field.Example: [{ "text": "Emma" }, { "text": "Kiva" }]Optional supplementary detail or context for the question.
Examples
201 response
Get question-answer records
GET /orgs/:orgId/question-answer/question
Retrieve all question-answer records for the organization.
Required roles: owner, admin, issuer, verifier, member, holder, super_admin, platform_admin
Path parameters
UUID of the organization.
Examples
Send basic message
POST /orgs/:orgId/basic-message/:connectionId
Send a plain-text DIDComm basic message to a connected peer.
Required roles: owner, admin, issuer, verifier, member, holder, super_admin, platform_admin
Path parameters
UUID of the organization.
UUID of the connection to message.
Request body
The plain-text message body to send.
Examples
201 response
Delete connections
DELETE /orgs/:orgId/connections
Delete all connection records associated with an organization. This action is irreversible.
Required roles: owner
Path parameters
UUID of the organization whose connection records will be deleted.
Examples
200 response
| Status | Description |
|---|---|
400 Bad Request | orgId is not a valid UUID. |
401 Unauthorized | Missing or invalid bearer token. |
403 Forbidden | Authenticated user does not have the owner role. |