Skip to main content

Create organization

POST /orgs Creates a new organization. The authenticated user becomes the owner of the new organization. Required roles: Authenticated user (no org role required — creates a new org).

Request body

string
required
Display name for the organization. Must be between 2 and 200 characters.
string
required
A short description of the organization. Must be between 2 and 1000 characters.
Logo image encoded as a base64 string or a URL. Defaults to an empty string.
string
The organization’s website URL.
string
A fully qualified URL (including protocol and TLD) where the platform sends event notifications. Must include http:// or https://.
string
Official registration number for the organization.
number
Numeric ID for the organization’s country.
number
Numeric ID for the organization’s state or province.
number
Numeric ID for the organization’s city.

Response

Returns 201 Created with the created organization object.
number
HTTP status code. 201 on success.
string
Human-readable result message.
object
The newly created organization.

List organizations

GET /orgs Returns all organizations the authenticated user is a member of. Supports filtering by role and pagination. Required roles: Authenticated user.

Query parameters

number
default:"1"
Page number to retrieve. Must be 1 or greater.
number
default:"10"
Number of results per page. Must be between 1 and 100.
Filter organizations by name.
string
Filter by the user’s role within each organization. Accepted values: owner, admin, issuer, verifier, member, holder, super_admin, platform_admin.

Get organization

GET /orgs/:orgId Returns the details of a single organization by its ID. Required roles: owner, admin, issuer, verifier, member

Path parameters

string
required
UUID of the organization.

Response

number
200 on success.
string
Human-readable result message.
object
Organization details.

Update organization

PUT /orgs/:orgId Updates the mutable fields of an existing organization. All body fields are optional — only the fields you include are changed. Required roles: owner, admin

Path parameters

string
required
UUID of the organization to update. Must be a valid UUID v4.

Request body

string
Updated display name. Between 2 and 200 characters.
string
Updated description. Between 2 and 1000 characters.
string
Updated logo as a base64-encoded image string. Must pass the ImageBase64Validator check.
string
Updated website URL.
boolean
default:"false"
When true, the organization appears in public profile listings.
number
Updated country ID.
number
Updated state or province ID.
number
Updated city ID.

Delete organization

DELETE /orgs/:orgId Permanently deletes an organization and all associated data. This action is irreversible. Required roles: owner
Deleting an organization removes all associated schemas, credentials, and DID configurations. This cannot be undone.

Path parameters

string
required
UUID of the organization to delete. Must be a valid UUID v4.

List DIDs

GET /orgs/:orgId/dids Returns all decentralized identifiers (DIDs) registered to an organization. Required roles: owner, admin, issuer, member

Path parameters

string
required
UUID of the organization.

Response

object[]
Array of DID records.

Set primary DID

PUT /orgs/:orgId/primary-did Designates one of the organization’s registered DIDs as its primary identifier. The primary DID is used by default in credential issuance and verification flows. Required roles: owner, admin, issuer, verifier, member

Path parameters

string
required
UUID of the organization.

Request body

string
required
The DID string to set as primary (e.g., did:indy:sovrin:staging:ABcDeFGhiJkLmNoPqRsTuV).
string
required
The UUID of the DID record in the platform database. Retrieve this from GET /orgs/:orgId/dids.

Get org roles

GET /orgs/:orgId/roles Returns the available role definitions for a specific organization. Required roles: owner, admin

Path parameters

string
required
UUID of the organization.

Generate client credentials

POST /orgs/:orgId/client_credentials Creates a client ID and client secret for the organization, enabling machine-to-machine (M2M) access without a user session. Use the returned credentials with POST /orgs/:clientId/token to obtain an access token. Required roles: owner

Path parameters

string
required
UUID of the organization.

Response

object
The generated client credentials.
The clientSecret is returned only once. Copy it immediately and store it in a secure secrets manager.

Get client token

POST /orgs/:clientId/token Exchanges an organization’s client credentials for an access token using the client_credentials OAuth 2.0 grant. The token is returned in the response body and a session_id cookie is also set. Authentication: No JWT bearer token required. Uses client credentials in the request body.

Path parameters

string
required
The client ID obtained from POST /orgs/:orgId/client_credentials.

Request body

string
required
The client secret paired with the client ID.

Response

object
The authentication result.