For the complete documentation index, see llms.txt. This page is also available as Markdown.

Policies

Return a list of all policies.

get

Returns all policies. Add Api-Version: 2 header to use status filter. Each item may include userGroups (all group rows for this user on that policy, including inactive) and userGroup (the last active group in server order—handy for UI labels, e.g. groupLabel or uuid). Typically, for Standard Registry on dry-run policies, userRole and userGroup reflect the last active role (often a virtual user), and userGroups contains the group rows for that role; when the last active role is Administrator, userGroups is []. For regular users, userGroups usually show roles on published policies.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 0
pageSizenumberOptional

The numbers of items to return

Example: 20
typestringOptional

Policy type

Example: local
Header parameters
Api-VersionstringRequired

Use "2" for this endpoint (supports status filter).

Example: 2
Responses
200

Successful operation. Two examples: regular user (userGroups usually reflect roles on published policies) and Standard Registry (dry-run: last active role and its userGroups; Administrator has userGroups []). Other combinations are possible depending on policy state and assignments.

application/json
get
/policies

Creates a new policy.

post

Creates a new policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
post
/policies

Return a list of all policies with imported records (excluding one policy).

get

Returns policies that have a records topic (draft/dry-run/demo/view), excluding the policy identified by policyId. There is no request body—only the path segment. The path value is used to omit that policy from the result (e.g. the record-import dialog so “another policy” does not include the one you are open on).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy id to exclude from the returned list. Pass the current policy id from the client context; the server uses this value only for that exclusion filter.

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
get
/policies/with-imported-records/{policyId}

Migrate policy data.

post

Migrate policy data. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
vcsstring[]Required
vpsstring[]Required
migrateStatebooleanRequired
migrateRetirePoolsbooleanRequired
retireContractIdstringRequired
modestring · enumOptionalDefault: start_newPossible values:
runIdstringOptional
Responses
200

Array of migration issues per document. Empty array when migration completed without per-document errors. Each item includes id and message (e.g. JSON_SCHEMA_VALIDATION_ERROR).

application/json
idstringOptional

Document or entity id related to the error

messagestringOptional

Error message

post
/policies/migrate-data

Migrate policy data asynchronous.

post

Migrate policy data asynchronous. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
vcsstring[]Required
vpsstring[]Required
migrateStatebooleanRequired
migrateRetirePoolsbooleanRequired
retireContractIdstringRequired
modestring · enumOptionalDefault: start_newPossible values:
runIdstringOptional
Responses
post
/policies/push/migrate-data

Resume migration asynchronous.

post

Resume migration asynchronous. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
runIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
Responses
post
/policies/push/migrate-data/resume

Retry failed migration items asynchronous.

post

Retry failed migration items asynchronous. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
runIdstringRequired

Migration run id whose failed items should be retried.

Example: 69aeb71ef8c5b278e3bab4e5
Responses
post
/policies/push/migrate-data/retry-failed

Get migration status by policy pair.

get

Returns latest migration run status for source/destination pair. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
srcPolicyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
dstPolicyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
Responses
200

Migration run status.

application/json
get
/policies/migrate-data/status

Get migration runs list.

get

Returns migration runs.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pageIndexnumberOptionalExample: 0
pageSizenumberOptionalExample: 10
statusstring[]Optional

Filter by migration run status: running, completed, failed, stopped. Multiple values are passed as a comma-separated list. In Swagger UI, select several values from the list by holding Ctrl (Windows/Linux) or Command (macOS).

Responses
200

Migration runs.

application/json
countnumberRequired
pageIndexnumberRequired
pageSizenumberRequired
get
/policies/migrate-data/runs

Creates a new policy.

post

Creates a new policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
post
/policies/push

Clones policy.

post

Clones policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Source policy id to clone. The new policy is created asynchronously; optional overrides in the body apply name, topicDescription, description, and policyTag (see clone/import flow).

Example: 69aeb71ef8c5b278e3bab4e5
Body
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
post
/policies/push/{policyId}

Remove policy.

delete

Remove policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
delete
/policies/push/{policyId}

Remove multiple policies.

post

Remove multiple policies by their IDs. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
policyIdsstring[]Required
Responses
post
/policies/push/delete-multiple

Retrieves policy configuration.

get

Retrieves policy configuration for the specified policy ID for users who have API permission to read, execute, manage, or audit policies and access to that policy.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Policy configuration.

application/json
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
get
/policies/{policyId}

Updates policy configuration.

put

Updates policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
200

Policy configuration.

application/json
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
put
/policies/{policyId}

Disconnected policy state for the current user.

get

Returns JSON null when the current user is not in a local disconnected state for this policy. Returns the policy configuration (PolicyDTO) when the user is disconnected (same enrichment as policy info for the viewer).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

null if not disconnected; otherwise the policy object for the disconnected user.

application/json
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
get
/policies/{policyId}/disconnected

No content

Returns auto-generated API documentation for the policy.

get

Returns a list of documented API actions with relative URLs for the specified policy.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Policy documentation entries.

application/json
object[]Optional
get
/policies/{policyId}/about

Publishes the policy onto IPFS.

put

Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
policyVersionstringRequiredExample: 1.0.0
policyAvailabilitystring · enumOptionalExample: privatePossible values:
recordingEnabledbooleanOptional

Record policy actions

Example: false
Responses
200

Successful operation.

application/json
isValidstringRequired
put
/policies/{policyId}/publish

Publishes the policy onto IPFS.

put

Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
policyVersionstringRequiredExample: 1.0.0
policyAvailabilitystring · enumOptionalExample: privatePossible values:
recordingEnabledbooleanOptional

Record policy actions

Example: false
Responses
put
/policies/push/{policyId}/publish

Dry Run policy.

put

Switches the specified policy into dry-run mode and returns the resulting validation payload. Dry-run mode is intended for testing and simulation without executing real transactions. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
object · ObjectOptional
Responses
200

Successful operation.

application/json
isValidstringRequired
put
/policies/{policyId}/dry-run

Discontinue policy.

put

Discontinues the policy. For an immediate discontinue, send an empty JSON object {}. For a scheduled discontinue, send a body with date as an ISO-8601 timestamp (UTC). Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
datestring · date-timeOptional

UTC instant when the policy should be discontinued (omit for immediate).

Example: 2026-03-30T20:00:00.000Z
Responses
200

Successful operation.

application/json
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
put
/policies/{policyId}/discontinue

Return policy to editing.

put

Return policy to editing. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
put
/policies/{policyId}/draft

Validates policy.

post

Validates the policy configuration provided in the request body. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
uuidstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequiredExample: Policy name
descriptionstringRequiredExample: Description
topicDescriptionstringRequiredExample: Description
applicabilityConditionsstringOptional
detailsUrlstringOptional
typicalProjectsstringOptional
policyTagstringRequiredExample: Tag
statusstring · enumRequiredExample: DRAFTPossible values:
creatorstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
topicIdstringRequiredExample: 0.0.6046379
instanceTopicIdstringRequiredExample: 0.0.6046379
messageIdstringRequiredExample: 1773670900.819264517
availabilitystring · enumOptionalExample: privatePossible values:
codeVersionstringRequiredExample: 1.0.0
createDatestringRequiredExample: 2026-03-03T17:25:53.312Z
versionstringRequiredExample: 1.0.0
originalChangedstringOptional
editableParametersSettingsobject · PolicyEditableFieldDTO[]Required
userRolestringRequiredExample: Installer
userRolesstring[]RequiredExample: ["Installer"]
userGroupsobject[]Required

Full list of group rows for this user in the policy (getGroupsByUser), including inactive.

Example: [{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]
policyRolesstring[]RequiredExample: ["Registrant"]
policyNavigationobject[]RequiredExample: [{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}]
policyTopicsobject[]RequiredExample: [{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}]
policyTokensobject[]RequiredExample: [{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}]
policyGroupsobject[]RequiredExample: [{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]
policyDocumentationobject[]Required

User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).

Example: [{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]
categoriesstring[]Required
projectSchemastringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
200

Validation result.

application/json
post
/policies/validate

Disconnects the user from the selected policy.

put

Disconnects the user from the selected policy. On success the response body is the boolean true.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Returns true when the disconnect succeeds.

application/json
booleanOptionalExample: true
put
/policies/{policyId}/disconnect

Restores the user’s participation in the policy after disconnection.

put

Restores the user’s participation in the policy after disconnection. On success the response body is the boolean true.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Returns true when the reconnect succeeds.

application/json
booleanOptionalExample: true
put
/policies/{policyId}/reconnect

Returns a policy navigation.

get

Returns policy navigation. Optional savepointIds (stringified JSON array) scopes navigation to a dry-run savepoint state when provided.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
savepointIdsstringOptional

Optional. Savepoint ids as a JSON array of strings, passed as a single query value (stringified JSON). Parsed with the rest of the query and sent to the engine.

Example: ["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]
Responses
200

Successful operation.

application/json
objectOptional
get
/policies/{policyId}/navigation

Returns a list of groups the user is a member of.

get

Returns groups for the current user. Optional savepointIds (stringified JSON array) scopes groups to a dry-run savepoint state when provided.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
savepointIdsstringOptional

Optional. JSON array of savepoint id strings, sent as a single query value (stringified JSON). Invalid values yield 400.

Example: ["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]
Responses
200

Successful operation.

application/json
objectOptional
get
/policies/{policyId}/groups

Select a policy group or return to Default State.

post

Sets the active group for the current user on this policy. Send uuid: null to enter Default State (not tied to a specific group); from there you may create a new group if you want. Send uuid with an existing group identifier to switch to that group.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
uuidstring · uuid · nullableOptional

An existing group uuid, or JSON null for Default State.

Responses
200

Successful operation.

application/json
objectOptional
post
/policies/{policyId}/groups

Get policy documents.

get

Get policy documents. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
typestring · enumOptional

Document type.

Possible values:
includeDocumentbooleanOptional

Include document field.

Example: true
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 0
pageSizenumberOptional

The numbers of items to return

Example: 20
Responses
200

JSON array of document index rows (fields vary by stored record). X-Total-Count is the total matching rows for paging.

application/json
get
/policies/{policyId}/documents

Get policy documents with filters.

get

Get policy documents with filters.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
textSearchstringOptional

Text search

Example: Example
schemasstringOptional

Schemas

Example: ["#001, #002"]
ownersstringOptional

Owners

Example: ["001, 002"]
tokensstringOptional

Tokens

Example: ["001, 002"]
relatedstringOptional

Related

Example: ["001, 002"]
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 0
pageSizenumberOptional

The numbers of items to return

Example: 20
Responses
200

Documents.

application/json
Responsestring[]
get
/policies/{policyId}/search-documents

Export policy documents as a ZIP archive.

get

Exports policy documents and related filtered data as a ZIP archive.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
idsstringOptional

Ids

Example: ["001, 002"]
textSearchstringOptional

Text search

Example: Example
schemasstringOptional

Schemas

Example: ["#001, #002"]
ownersstringOptional

Owners

Example: ["001, 002"]
tokensstringOptional

Tokens

Example: ["001, 002"]
relatedstringOptional

Related

Example: ["001, 002"]
Responses
200

Successful operation. Response zip file.

application/json
stringOptional
get
/policies/{policyId}/export-documents

Get policy document owners.

get

Get policy document owners.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

JSON array of distinct document-owner DIDs (strings). X-Total-Count matches array length for Standard Registry; other roles receive a single-element array.

application/json
Responsestring[]

Hedera DID of a document owner

get
/policies/{policyId}/document-owners

Get policy tokens.

get

Get policy tokens.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Token Ids.

application/json
Responsestring[]
get
/policies/{policyId}/tokens

Download policy data export archive.

get

Downloads a ZIP archive (served with .data filename extension) containing policy migration/export content. Typical entries include policy.json, blocks.json, users.json, userTopic.json, plus folders generated from loaders such as vcs/, vps/, tokens/, and related files (multiDocuments/, documentStates/, mintRequests/, mintTransactions/, retirePools/). Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

ZIP binary payload with exported policy data and related entities for migration/import.

string · binaryOptional
get
/policies/{policyId}/data

Upload policy data.

post

Upload policy data. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
string · binaryOptional
Responses
200

Uploaded policy.

application/json
Other propertiesanyOptional
post
/policies/data

Download virtual keys and DID documents (ZIP).

get

Returns a ZIP archive (DEFLATE) with virtual keys and DID documents for the policy dry run / demo context. The response uses Content-Type: application/virtual-keys and Content-Disposition: attachment with a .vk filename derived from the policy name. Archive layout: folder virtualKeys/ — one .json file per virtual key (participant DIDs, excluding the Standard Registry owner DID); folder dids/ — one .json file per DID document. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Binary body: ZIP archive as described in the operation summary (not JSON).

application/virtual-keys
string · binaryOptional
get
/policies/{policyId}/virtual-keys

Upload virtual keys and DID documents (ZIP).

post

Imports the same ZIP layout as GET /policies/{policyId}/virtual-keys exports: folders virtualKeys/ and dids/ with JSON files. Send raw archive bytes with Content-Type: binary/octet-stream (e.g. a .vk file from export). Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
string · binaryOptional
Responses
200

Import finished successfully. The response body is JSON null (no object payload).

application/json
any · nullableOptional

Null on success.

post
/policies/{policyId}/virtual-keys

No content

Tag → block id map.

get

Maps each block tag to its instance UUID for this policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Record of block tag → block instance UUID.

application/json
Other propertiesstring · uuidOptional
get
/policies/{policyId}/tag-block-map

Retrieves data for the policy root block.

get

Returns data from the root policy block. Users with permission to execute or manage the policy can make this request. If the root block is not available to the caller at the current policy stage or time, the request may fail.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
savepointIdsstringOptional

Optional. Savepoint ids (JSON array or stringified JSON). Parsed and passed with the rest of the query object to the engine.

Example: ["69c2cfc021d39e7b6d15e236"]
Responses
200

Successful operation.

application/json
idstringRequired
blockTypestringRequired
get
/policies/{policyId}/blocks

Get block data by UUID.

get

Returns the block payload for the specified UUID. Within a policy, different roles may see different blocks at different stages or moments of the workflow. If the requested block is not available to the caller’s role at this time, the API responds with 422 Unprocessable Entity and message: "Block Unavailable" (see response example).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Block Identifier

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Query parameters
savepointIdsstringOptional

Optional. Savepoint ids (JSON array or stringified JSON). Parsed and passed with the rest of the query object to the engine.

Example: ["69c2cfc021d39e7b6d15e236"]
Responses
200

Block document. The OpenAPI schema is a minimal BlockDTO; actual responses include additional fields per block type—see the example.

application/json
idstringRequired
blockTypestringRequired
get
/policies/{policyId}/blocks/{uuid}

Send data to block by UUID.

post

Sends block-specific input to the block identified by uuid and returns the block action result.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Block Identifier

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Query parameters
timeoutnumberOptional

Optional engine timeout in milliseconds. Forwarded to guardian-service and clamped there to the range 10 ms to 1 hour.

Default: 60000Example: 60000
waitRemotePolicybooleanOptional

Optional. Parsed as boolean in the API Gateway. If true, waits for a response from the remote policy action.

Default: trueExample: true
Body
object · ObjectOptional
Responses
200

Successful operation.

application/json
idstringRequired
blockTypestringRequired
post
/policies/{policyId}/blocks/{uuid}

Get mint requests for a policy.

get

Returns paginated mint requests for the specified policy with optional filters.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
statusstringOptional

Status filter (error, pending, success)

Example: error
targetstringOptional

Account ID filter

Example: 0.0.6046379
vpMessageIdstringOptional

VP Message ID filter

Example: 1775659196.584626142
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 0
pageSizenumberOptional

The numbers of items to return

Example: 20
Responses
200

Mint requests.

application/json
get
/policies/{policyId}/mint-requests

Retry mint by VP message ID.

post

Retries failed mint/transfer operations for the specified VP message within the given policy. Fire-and-forget: the endpoint performs synchronous validation (policy access, owner check, per-request cooldown / in-progress checks) and returns as soon as validation passes; the actual Hedera mint/transfer runs in the background. Poll GET /policies/{policyId}/mint-requests to observe progress and final state.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
vpMessageIdstringRequired

VP Message Id

Example: 1774449700.283746192
Responses
200

Validation passed; retry has been queued (fire-and-forget). warnings contains any per-request messages surfaced synchronously during validation (e.g. cooldown or already-in-progress); an empty array means every request was accepted for background processing. message is set only when no retry was needed because every mint request for the VP is already fully minted and transferred.

application/json
post
/policies/{policyId}/mint/{vpMessageId}/retry

Send data to block by UUID with sync events.

post

Sends block-specific input to the block identified by uuid and returns the action result together with sync event metadata. Set history=true to include the full steps history.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Block Identifier

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Query parameters
historybooleanOptional

History

Example: true
timeoutnumberOptional

Timeout

Default: 60000Example: 60000
waitRemotePolicybooleanOptional

Wait for a response from the remote policy

Default: trueExample: true
Body
object · ObjectOptional
Responses
200

Successful operation.

application/json
stepsobject[]Required
post
/policies/{policyId}/blocks/{uuid}/sync-events

Get block data by tag name.

get

Requests block data by tag. Users with permission to execute or manage the policy can make this request. The block tag is case-sensitive. Works the same way as GET /policies/{policyId}/blocks/{uuid}. The only difference is that this route identifies the target block by tagName instead of uuid.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
tagNamestringRequired

Block name (Tag)

Example: block-tag
Query parameters
savepointIdsstringOptional

Optional. Savepoint ids (JSON array or stringified JSON). Parsed and passed with the rest of the query object to the engine.

Example: ["69c2cfc021d39e7b6d15e236"]
Responses
200

Successful operation.

application/json
idstringRequired
blockTypestringRequired
get
/policies/{policyId}/tag/{tagName}/blocks

Send data to block by tag name.

post

Works the same way as POST /policies/{policyId}/blocks/{uuid}. The difference is that this route identifies the target block by tagName instead of uuid.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
tagNamestringRequired

Block name (Tag)

Example: block-tag
Query parameters
timeoutnumberOptional

Optional engine timeout in milliseconds. Forwarded to guardian-service and clamped there to the range 10 ms to 1 hour.

Default: 60000Example: 60000
waitRemotePolicybooleanOptional

Optional. If true, waits for a response from the remote policy action.

Default: trueExample: true
Body
object · ObjectOptional
Responses
200

Successful operation.

application/json
idstringRequired
blockTypestringRequired
post
/policies/{policyId}/tag/{tagName}/blocks

Send data to block by tag name with sync events.

post

Works the same way as POST /policies/{policyId}/blocks/{uuid}/sync-events. The difference is that this route identifies the target block by tagName instead of uuid.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
tagNamestringRequired

Block name (Tag)

Example: block-tag
Query parameters
historybooleanOptional

History

Example: true
timeoutnumberOptional

Timeout

Default: 60000Example: 60000
waitRemotePolicybooleanOptional

Wait for a response from the remote policy

Default: trueExample: true
Body
object · ObjectOptional
Responses
200

Successful operation.

application/json
stepsobject[]Required
post
/policies/{policyId}/tag/{tagName}/blocks/sync-events

Get block UUID by tag name.

get

Resolves the block identified by tagName within the policy and returns its block UUID as { id }. Users with permission to execute or manage the policy can make this request. The block tag is case-sensitive.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
tagNamestringRequired

Block name (Tag). Case-sensitive.

Example: block-tag
Responses
200

Resolved block identifier.

application/json
idstringRequiredExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
get
/policies/{policyId}/tag/{tagName}

Get block parent chain by UUID.

get

Returns the UUID chain for the specified block, starting with the requested block and continuing through its parents up to the root block. Users with permission to execute or manage the policy can make this request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Block Identifier

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
200

Successful operation.

application/json
string · uuid[]Optional
get
/policies/{policyId}/blocks/{uuid}/parents

Returns block descriptions.

get

Returns block descriptions. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

Block descriptions.

application/json
Other propertiesanyOptional
get
/policies/blocks/about

Return policy and its artifacts in a zip file format for the specified policy.

get

Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

ZIP archive containing the exported policy file.

application/zip
string · binaryOptional
get
/policies/{policyId}/export/file

Return Hedera message ID for the specified published policy.

get

Returns the Hedera message ID for the specified published policy together with related policy metadata: internal id, name, description, version, and owner DID. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Hedera message ID and related policy metadata.

application/json
idstringRequiredExample: 69c38f81462c9c1141de2df2
namestringRequiredExample: CDM AMS-III.AR Policy
descriptionstringRequiredExample: Substituting fossil fuel-based lighting with LED/CFL lighting systems
versionstringRequiredExample: 1
messageIdstringRequiredExample: 1774427068.001165000
ownerstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161
get
/policies/{policyId}/export/message

Return policy and its artifacts in a xlsx file format for the specified policy.

get

Returns a xlsx file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

ZIP/XLSX binary payload returned as a file download.

application/zip
string · binaryOptional
get
/policies/{policyId}/export/xlsx

Import new policy from a Hedera message.

post

Imports a new policy and all associated artifacts into the local DB using the provided Hedera topic message ID. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original hash/message linkage for later change tracking. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
versionOfTopicIdstringOptional

The topic ID of policy version.

Example: 0.0.00000001
demobooleanOptional

Import policy in demo mode.

Example: true
originalTrackingbooleanOptional

Save original state of the policy

Example: true
Body
messageIdstringRequired

Hedera topic message id

Responses
post
/policies/import/message

Import new policy from a Hedera message asynchronously.

post

Starts asynchronous import of a new policy and all associated artifacts into the local DB using the provided Hedera topic message ID. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original hash/message linkage for later change tracking. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
versionOfTopicIdstringOptional

The topic ID of policy version.

Example: 0.0.00000001
demobooleanOptional

Import policy in demo mode.

Example: true
originalTrackingbooleanOptional

Save original state of the policy

Example: true
Body
messageIdstringRequired

Hedera topic message id

Responses
post
/policies/push/import/message

Policy preview from IPFS.

post

Previews the policy identified by the provided Hedera topic message ID without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
messageIdstringRequired

Hedera topic message id

Responses
200

Policy preview.

application/json
messageIdstringRequiredExample: 1773670900.819264517
schemasobject[]Required
tagsobject[]Required
moduleTopicIdstringRequiredExample: 0.0.6046379
post
/policies/import/message/preview

Policy preview from IPFS.

post

Previews the policy identified by the provided Hedera topic message ID without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
messageIdstringRequired

Hedera topic message id

Responses
post
/policies/push/import/message/preview

Import new policy from a ZIP file.

post

Imports a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
versionOfTopicIdstringOptional

The topic ID of policy version.

Example: 0.0.00000001
demobooleanOptional

Import policy in demo mode.

Example: true
Body
string · binaryOptional
Responses
post
/policies/import/file

Import new policy from a ZIP file with metadata.

post

Imports a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. The optional metadata file is a JSON payload used for import settings such as tool message remapping and importRecords. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
versionOfTopicIdstringOptional

The topic ID of policy version.

Example: 0.0.00000001
demobooleanOptional

Import policy in demo mode.

Example: true
Body
policyFilestring · binaryRequired

Policy archive (ZIP format).

metadatastring · binary · nullableOptional

Optional JSON file (for example metadata.json) with content like { "tools": { "1706867530.884259218": "1774367941.594676930" }, "importRecords": true }.

Responses
post
/policies/import/file-metadata

Import new policy from a ZIP file asynchronously.

post

Starts asynchronous import of a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original ZIP/hash linkage for later change tracking. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
versionOfTopicIdstringOptional

The topic ID of policy version.

Example: 0.0.00000001
demobooleanOptional

Import policy in demo mode.

Example: true
originalTrackingbooleanOptional

Save original state of the policy

Example: true
Body
string · binaryOptional
Responses
post
/policies/push/import/file

Import new policy from a ZIP file with metadata asynchronously.

post

Starts asynchronous import of a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original ZIP/hash linkage for later change tracking. The optional metadata file is a JSON payload used for import settings such as tool message remapping and importRecords. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
versionOfTopicIdstringOptional

The topic ID of policy version.

Example: 0.0.00000001
demobooleanOptional

Import policy in demo mode.

Example: true
originalTrackingbooleanOptional

Save original state of the policy

Example: true
Body
policyFilestring · binaryRequired

Policy archive (ZIP format).

metadatastring · binary · nullableOptional

Optional JSON file (for example metadata.json) with content like { "tools": { "1706867530.884259218": "1774367941.594676930" }, "importRecords": true }.

Responses
post
/policies/push/import/file-metadata

Policy preview from a zip file.

post

Previews the policy from a zip file without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
string · binaryOptional
Responses
200

Policy preview.

application/json
messageIdstringRequiredExample: 1773670900.819264517
schemasobject[]Required
tagsobject[]Required
moduleTopicIdstringRequiredExample: 0.0.6046379
post
/policies/import/file/preview

Imports new policy from a xlsx file.

post

Imports new policy and all associated artifacts, such as schemas and VCs, from the provided xlsx file into the local DB. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
string · binaryOptional
Responses
post
/policies/import/xlsx

Imports new policy from a xlsx file.

post

Imports new policy and all associated artifacts, such as schemas and VCs, from the provided xlsx file into the local DB. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
schemasstringOptional

Optional comma-separated schema ids used by the async XLSX import flow.

Example: 69c2cfc021d39e7b6d15e236,69c2cfc021d39e7b6d15e237
Body
string · binaryOptional
Responses
post
/policies/push/import/xlsx

Policy preview from a xlsx file.

post

Previews the policy from a xlsx file without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
string · binaryOptional
Responses
200

Preview payload parsed from the XLSX file.

application/json
post
/policies/import/xlsx/preview

Get dry-run virtual users.

get

Returns virtual users for the selected dry-run policy. Optional savepointIds can be provided as a stringified JSON array to read users from a specific savepoint context. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
savepointIdsstringOptional

Optional stringified JSON array of savepoint ids used to read users from a specific savepoint context.

Example: ["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]
Responses
200

Virtual users for the current dry-run state or the selected savepoints.

application/json
Other propertiesanyOptional
get
/policies/{policyId}/dry-run/users

Get dry-run virtual user by DID.

get

Returns a virtual user from the selected dry-run policy by its DID. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
didstringRequired

Virtual User DID

Example: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
Responses
200

Virtual user.

application/json
Other propertiesanyOptional
get
/policies/{policyId}/dry-run/user/{did}

Create dry-run virtual user.

post

Creates a new virtual user for the selected dry-run policy and returns the created user object. Use Api-Version: 2. Optional savepointIds in the request body scopes creation to a specific savepoint context. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Header parameters
Api-VersionstringRequired

Use "2" for this endpoint (returns the created dry-run virtual user object).

Example: 2
Body
savepointIdsstring[]OptionalExample: ["67c85d2fcebecbe1c0231522","67c85d35cebecbe1c0231523"]
Responses
post
/policies/{policyId}/dry-run/user

Change active virtual user.

post

Sets the active dry-run virtual user by DID and returns the updated virtual users list. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
didstringRequired

DID of the virtual user to activate.

Example: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
Responses
200

Virtual users for the dry-run policy after the active user change.

application/json
Other propertiesanyOptional
post
/policies/{policyId}/dry-run/login

Run a policy block in dry-run mode.

post

Runs the provided block configuration in dry-run mode with the supplied event/document payload and returns execution logs, errors, input, and output documents. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
Responses
post
/policies/{policyId}/dry-run/block

List dry-run history records for a block tag.

get

Returns stored dry-run history entries for the specified block tag, including recorded document payloads and related metadata. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
tagNamestringRequired

Block tag (e.g. choose_role).

Example: choose_role
Responses
200

Array of dry-run document records for the block tag.

application/json
Other propertiesanyOptional
get
/policies/{policyId}/dry-run/block/{tagName}/history

Get dry-run savepoints.

get

Returns the list of savepoints for the policy (Dry Run only).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
Responses
200

List of dry-run savepoints.

application/json
get
/policies/{policyId}/savepoints

Create dry-run savepoint.

post

Creates a new savepoint for the policy (Dry Run only). Returns { savepoint } with the created record (same shape as items in GET /savepoints).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
Body
namestringRequiredExample: Before publishing changes
savepointPathstring[]RequiredExample: ["root-block","sub-block"]
Responses
200

Response includes savepoint: the created dry-run savepoint record.

application/json
post
/policies/{policyId}/savepoints

Get dry-run savepoints count.

get

Returns the number of savepoints for the policy (Dry Run only).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
Query parameters
includeDeletedbooleanOptional

Include deleted savepoints in count

Example: false
Responses
200

Dry-run savepoints count.

application/json
numberOptionalExample: {"count":5}
get
/policies/{policyId}/savepoints/count

Apply savepoint

put

Restores Dry Run state to the selected savepoint. Returns { savepoint } with the updated savepoint record (same shape as POST /savepoints).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy identifier.

Example: 69aeb71ef8c5b278e3bab4e5
savepointIdstringRequired

Savepoint id to apply.

Example: 69b8115f3dc0fa022156fb89
Responses
200

Response includes savepoint: the applied dry-run savepoint record after restore.

application/json
put
/policies/{policyId}/savepoints/{savepointId}

Rename dry-run savepoint.

patch

Updates the name of a Dry Run savepoint for the policy.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
savepointIdstringRequiredExample: 69b8115f3dc0fa022156fb89
Body
namestringRequiredExample: Updated checkpoint name
Responses
200

Updated savepoint metadata.

application/json
Other propertiesanyOptional
patch
/policies/{policyId}/savepoints/{savepointId}

Delete dry-run savepoints.

post

Deletes the specified savepoints for the policy (Dry Run only). When the policy has more than one savepoint and skipCurrentSavepointGuard is false, the current savepoint cannot be deleted and the request fails. When skipCurrentSavepointGuard is true, that guard is bypassed; the UI uses this mode for "delete all savepoints". Leaf savepoints are hard-deleted, while savepoints with children are marked as deleted.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
Body
savepointIdsstring[]RequiredExample: ["69aeb71ef8c5b278e3bab4e5"]
skipCurrentSavepointGuardbooleanOptional

If false, and the policy has more than one savepoint, the current savepoint cannot be deleted. If true, that guard is bypassed (used by the UI for deleting all savepoints).

Example: false
Responses
200

Deletion result. hardDeletedIds contains only savepoints that were hard-deleted. This array can be empty when the request causes only soft deletes (for example, deleting savepoints that still have children). If the current savepoint is included while the guard is enforced, the request fails instead of returning an empty result.

application/json
hardDeletedIdsstring[]Optional
post
/policies/{policyId}/savepoints/delete

Clear dry-run state.

post

Clear dry-run state. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Dry-run state restart result.

application/json
Other propertiesanyOptional
post
/policies/{policyId}/dry-run/restart

Get dry-run transactions.

get

Returns virtual Hedera transactions generated during the policy dry-run. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 0
pageSizenumberOptional

The numbers of items to return

Example: 20
Responses
200

Transactions.

application/json
get
/policies/{policyId}/dry-run/transactions

Get dry-run artifacts.

get

Returns dry-run artifacts/documents generated for the policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 0
pageSizenumberOptional

The numbers of items to return

Example: 20
Responses
200

Artifacts.

application/json
get
/policies/{policyId}/dry-run/artifacts

Get dry-run IPFS files.

get

Returns IPFS file records generated during the policy dry-run. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Query parameters
pageIndexnumberOptional

The number of pages to skip before starting to collect the result set

Example: 20
pageSizenumberOptional

The numbers of items to return

Example: 20
Responses
200

Files.

application/json
get
/policies/{policyId}/dry-run/ipfs

Get Mock Configuration.

get

Returns the current mock configuration for the policy's dry-run session, including the master enabled flag and the per-block enable/disable map.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Config

application/json
enabledbooleanOptionalExample: true
get
/policies/{policyId}/dry-run/mock/config

Update Mock Configuration.

post

Updates the mock configuration — master toggle and/or per-block overrides.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
enabledbooleanOptionalExample: true
Responses
200

Config

application/json
enabledbooleanOptionalExample: true
post
/policies/{policyId}/dry-run/mock/config

Get Stored Mock Data.

get

Returns all currently stored mock entries (IPFS, Topics, Tokens, and API) for this policy.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Config

application/json
get
/policies/{policyId}/dry-run/mock/data

Save Mock Data.

post

Saves (creates or updates) mock data entries. The request body follows the same schema as the GET response above. Existing entries for the same key are overwritten; all other existing entries are preserved.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
Responses
200

Data

application/json
post
/policies/{policyId}/dry-run/mock/data

Import Mock Data.

post

Imports mock data from a previously exported .mock file and merges it into the current mock dataset.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
stringOptional
Responses
200

Successful operation.

application/json
objectOptional
post
/policies/{policyId}/dry-run/mock/import

Export Mock Data.

get

Exports all stored mock data as a downloadable compressed '.mock' file (zip), which contains separate files for each data type. The response is streamed with 'Content-Disposition: attachment'.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation. Response zip file.

No content

get
/policies/{policyId}/dry-run/mock/export

No content

Execute API Mock Request (Frontend Blocks).

post

Triggers a mocked external API call on behalf of a policy block whose logic executes on the 'frontend' (client-side code blocks). The server resolves the request against the stored API mock entries and returns the configured response.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
typestringOptionalExample: GET
urlstringOptionalExample: http://localhost/
bodyobjectOptional
headersobjectOptional
Responses
200

Successful operation

application/json
objectOptional
post
/policies/{policyId}/dry-run/mock/request/api

Execute IPFS Mock Request (Frontend Blocks).

post

Triggers a mocked IPFS file retrieval on behalf of a policy block whose logic executes on the 'frontend'. The server resolves the CID against the stored IPFS mock entries and returns the configured payload.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
cidstringOptionalExample: 9db028d2-03ad-4d49-a178-cf4b67f8c147
Responses
200

Successful operation.

application/json
string · binaryOptional
post
/policies/{policyId}/dry-run/mock/request/ipfs

Get multi-policy link.

get

Returns the current multi-policy link settings for the policy. Users with permission to execute or manage the policy can make this request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
Other propertiesanyOptional
get
/policies/{policyId}/multiple

Create or update multi-policy link.

post

Creates or updates the multi-policy link for the current policy. For a main policy, call GET /policies/{policyId}/multiple and reuse the returned mainPolicyTopicId and synchronizationTopicId. For a sub-policy, use the link generated by the main policy owner; it contains both mainPolicyTopicId and synchronizationTopicId. Users with permission to execute or manage the policy can make this request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
mainPolicyTopicIdstringRequired

Topic ID of the main policy.

synchronizationTopicIdstringRequired

Synchronization topic ID shared between linked policies.

Responses
200

Successful operation.

application/json
Other propertiesanyOptional
post
/policies/{policyId}/multiple

Add policy test.

post

Add policy test. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
testsstring · binary[]Required

One or more uploaded test files.

Responses
post
/policies/{policyId}/test

Get policy test.

get

Get policy test. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
testIdstringRequired

Test Id

Example: 69b8115f3dc0fa022156fb89
Responses
200

Successful operation.

application/json
idstringRequired

Test ID

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Test UUID

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequired

Test Name

Example: Test Name
policyIdstringRequired

Policy ID

Example: 69aeb71ef8c5b278e3bab4e5
ownerstringRequired

Test owner

Example: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
statusstring · enumRequired

Test status

Example: NewPossible values:
datestringRequired

Last start date

Example: 2026-03-03T17:25:53.312Z
durationstringRequired

Test duration

Example: 0
progressstringRequired

Test progress

Example: 0
resultIdstringRequired

Test result

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
resultstringRequired

Test result

get
/policies/{policyId}/test/{testId}

Delete policy test.

delete

Delete policy test. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
testIdstringRequired

Test Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
booleanOptional
delete
/policies/{policyId}/test/{testId}

Start policy test.

post

Start policy test. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
testIdstringRequired

Test Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
idstringRequired

Test ID

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Test UUID

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequired

Test Name

Example: Test Name
policyIdstringRequired

Policy ID

Example: 69aeb71ef8c5b278e3bab4e5
ownerstringRequired

Test owner

Example: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
statusstring · enumRequired

Test status

Example: NewPossible values:
datestringRequired

Last start date

Example: 2026-03-03T17:25:53.312Z
durationstringRequired

Test duration

Example: 0
progressstringRequired

Test progress

Example: 0
resultIdstringRequired

Test result

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
resultstringRequired

Test result

post
/policies/{policyId}/test/{testId}/start

Stop policy test.

post

Stop policy test. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
testIdstringRequired

Test Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
idstringRequired

Test ID

Example: 69aeb71ef8c5b278e3bab4e5
uuidstringRequired

Test UUID

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
namestringRequired

Test Name

Example: Test Name
policyIdstringRequired

Policy ID

Example: 69aeb71ef8c5b278e3bab4e5
ownerstringRequired

Test owner

Example: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
statusstring · enumRequired

Test status

Example: NewPossible values:
datestringRequired

Last start date

Example: 2026-03-03T17:25:53.312Z
durationstringRequired

Test duration

Example: 0
progressstringRequired

Test progress

Example: 0
resultIdstringRequired

Test result

Example: 9db028d2-03ad-4d49-a178-cf4b67f8c147
resultstringRequired

Test result

post
/policies/{policyId}/test/{testId}/stop

Get test details.

get

Get test details. In the UI, this data is available from the policy grid by opening the tests dialog for a policy. Only users with the Standard Registry role are allowed to make the request.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
testIdstringRequired

Test Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Successful operation.

application/json
totalnumberRequired

Total number of fields compared

Example: 10
get
/policies/{policyId}/test/{testId}/details

Get methodology categories.

get

Returns all available methodology categories that can be used to filter methodology / policy templates in the library.

Responses
get
/policies/methodologies/categories

Search methodologies by categories and text.

post

Returns methodology / policy templates filtered by category IDs and optional free-text search. Use this endpoint to search the methodology library by selected categories, text query, or both.

Body
categoryIdsstring[]Optional

Optional methodology category IDs to filter by.

textstringOptional

Optional free-text search query.

Responses
post
/policies/methodologies/search

Create a new VC document version.

post

Creates a new version of an existing VC document for the policy using the provided document DB record ID and updated document payload. In the UI, this is triggered from the VC document viewer after switching to edit mode and saving changes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Body
documentIdstringRequired

Document DB record ID of the VC document to version.

Responses
200

Successful operation.

application/json
Other propertiesanyOptional
post
/policies/{policyId}/create-new-version-vc-document

Get all versions of a VC document.

get

Returns all stored versions of the selected VC document for the policy. The documentId parameter must be the document DB record ID (the same row.id used in the UI), not the VC document.id / urn:uuid. In the UI, this data is used in the VC document viewer to populate the version selector.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
documentIdstringRequired

Document Id

Example: 69b8115f3dc0fa022156fb89
Responses
200

Successful operation.

application/json
Other propertiesanyOptional
get
/policies/{policyId}/get-all-version-vc-documents/{documentId}

Save policy config with values

post

Save policy config with values to the PolicyParameters table

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired
Bodyobject · PolicyEditableFieldDTO[]
object · PolicyEditableFieldDTO[]Optional
Responses
200

Successful operation.

No content

post
/policies/{policyId}/parameters

No content

Get policy parameters.

get

Get policy parameters.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
policyIdstringRequired
Bodyobject · PolicyEditableFieldDTO[]
object · PolicyEditableFieldDTO[]Optional
Responses
200

Successful operation.

No content

get
/policies/{policyId}/parameters/config

No content

Last updated