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

Policies

Create, publish, and manage environmental policy workflows.

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
namestringOptional

Filter by policy name.

Example: Example Policy
versionstringOptional

Filter by policy version.

Example: 1.0.0
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
GET /api/v1/policies HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Api-Version: 2
Accept: */*
[
  {
    "uuid": "b7e7d5ff-2675-4018-ac08-47609bc5a437",
    "name": "Verra VM0007 Policy",
    "version": "1",
    "description": "REDD+ Methodology Framework",
    "status": "PUBLISH",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "topicId": "0.0.8381081",
    "instanceTopicId": "0.0.8381318",
    "messageId": "1774508369.453794000",
    "availability": "private",
    "userRoles": [
      "Project_Proponent"
    ],
    "userGroups": [
      {
        "uuid": "d5c3ff1e-7e83-4ed9-a122-839c5843707d",
        "role": "VVB(manager)",
        "groupName": "VVBs",
        "groupLabel": "",
        "active": false,
        "id": "69c4d9881e6768b3a86de534"
      },
      {
        "uuid": "923b88ff-8ee8-429f-b32a-0a8799e6954e",
        "role": "Project_Proponent",
        "groupName": "Project_Proponent",
        "groupLabel": "",
        "active": false,
        "id": "69c4da1f1e6768b3a86de558"
      },
      {
        "uuid": "65347d9b-391e-4d2d-8758-039e3fd42490",
        "role": "Project_Proponent",
        "groupName": "Project_Proponent",
        "groupLabel": "AnotherProponent",
        "active": true,
        "id": "69c4da671e6768b3a86de55e"
      }
    ],
    "userRole": "Project_Proponent",
    "userGroup": {
      "uuid": "65347d9b-391e-4d2d-8758-039e3fd42490",
      "role": "Project_Proponent",
      "groupName": "Project_Proponent",
      "groupLabel": "AnotherProponent",
      "active": true,
      "id": "69c4da671e6768b3a86de55e"
    },
    "tests": [],
    "id": "69c4d51ac4f45966decb4710"
  },
  {
    "uuid": "1e95fab1-7b3e-4692-a16c-d977032be0d1",
    "name": "CDM AMS-III.AR Policy",
    "version": "1",
    "description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
    "status": "PUBLISH",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "topicId": "0.0.8366207",
    "instanceTopicId": "0.0.8366841",
    "messageId": "1774427068.001165000",
    "availability": "private",
    "userRoles": [
      "VVB"
    ],
    "userGroups": [
      {
        "uuid": "5ff7e8cc-d399-48be-ae4c-0c90e240d1d6",
        "role": "VVB",
        "groupName": "VVB",
        "groupLabel": null,
        "active": true,
        "id": "69c4d3e0340a8cb2868e3095"
      }
    ],
    "userRole": "VVB",
    "userGroup": {
      "uuid": "5ff7e8cc-d399-48be-ae4c-0c90e240d1d6",
      "role": "VVB",
      "groupName": "VVB",
      "groupLabel": null,
      "active": true,
      "id": "69c4d3e0340a8cb2868e3095"
    },
    "tests": [],
    "id": "69c38f81462c9c1141de2df2"
  }
]

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
201

Successful operation. Returns the full policy list (same as GET /policies) after creation.

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
post/policies
POST /api/v1/policies HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 273

{
  "name": "New policy",
  "applicabilityConditions": "",
  "detailsUrl": "",
  "typicalProjects": "",
  "topicDescription": "",
  "description": "Policy description",
  "categories": [
    "69c2cfc534d008dac266432c",
    "69c2cfc534d008dac2664316",
    ""
  ],
  "importantParameters": {
    "atValidation": "",
    "monitored": ""
  }
}
[
  {
    "createDate": "2026-03-26T08:00:30.081Z",
    "uuid": "8fe6f490-a978-4eb0-9d81-772dc62ae970",
    "name": "New policy",
    "description": "Policy description",
    "status": "DRAFT",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "topicId": "0.0.8381928",
    "codeVersion": "1.5.1",
    "tools": [],
    "userRoles": [
      "Administrator"
    ],
    "userGroups": [],
    "userRole": "Administrator",
    "userGroup": null,
    "tests": [],
    "id": "69c4e782c4f45966decb5091"
  },
  {
    "createDate": "2026-03-26T07:13:06.988Z",
    "uuid": "9b4a5fb8-7775-4aac-8d88-8876d3ab3fc5",
    "name": "VM0042",
    "version": "Dry Run",
    "description": "",
    "status": "DRY-RUN",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "policyRoles": [
      "Project Proponent",
      "VVB"
    ],
    "policyGroups": [],
    "topicId": "0.0.8381520",
    "instanceTopicId": "0.0.1774509251971",
    "policyTag": "Tag_1774509146169",
    "codeVersion": "1.5.1",
    "tools": [
      {
        "name": "AR-AM Tool 04",
        "version": null,
        "topicId": "0.0.5664329",
        "messageId": "1741365085.279118931"
      },
      {
        "name": "Tool 24",
        "version": null,
        "topicId": "0.0.5703543",
        "messageId": "1741724529.286080000"
      },
      {
        "name": "AR Tool 14",
        "version": null,
        "topicId": "0.0.5738458",
        "messageId": "1742305279.639972851"
      }
    ],
    "userRoles": [
      "Administrator"
    ],
    "userGroups": [],
    "userRole": "Administrator",
    "userGroup": null,
    "tests": [],
    "id": "69c4dc82c4f45966decb4cdd"
  },
  {
    "createDate": "2026-03-26T06:41:30.240Z",
    "uuid": "b7e7d5ff-2675-4018-ac08-47609bc5a437",
    "name": "Verra VM0007 Policy",
    "version": "1",
    "description": "REDD+ Methodology Framework",
    "status": "PUBLISH",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "policyRoles": [
      "Project_Proponent",
      "VVB",
      "VVB(manager)"
    ],
    "policyGroups": [
      {
        "name": "VVBs",
        "creator": "VVB(manager)",
        "members": [
          "VVB"
        ],
        "groupRelationshipType": "Multiple",
        "groupAccessType": "Private"
      },
      {
        "name": "Project_Proponent",
        "creator": "Project_Proponent",
        "members": [
          "Project_Proponent"
        ],
        "groupRelationshipType": "Single",
        "groupAccessType": "Private"
      }
    ],
    "topicId": "0.0.8381081",
    "instanceTopicId": "0.0.8381318",
    "policyTag": "Tag_1774507267355",
    "messageId": "1774508369.453794000",
    "codeVersion": "1.5.1",
    "tools": [],
    "userRoles": [
      "Administrator"
    ],
    "userGroups": [],
    "userRole": "Administrator",
    "userGroup": null,
    "tests": [],
    "id": "69c4d51ac4f45966decb4710"
  },
  {
    "createDate": "2026-03-25T08:34:23.327Z",
    "uuid": "42d2531a-d2e0-44fe-8601-057633c1b9bd",
    "name": "CDM AMS-II.J Policy",
    "version": "2",
    "description": "Demand-Side Activities for Efficient Lighting Technologies",
    "status": "PUBLISH",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "policyRoles": [
      "Project Participant",
      "VVB"
    ],
    "policyGroups": [],
    "topicId": "0.0.8366933",
    "instanceTopicId": "0.0.8366950",
    "policyTag": "Tag_1774427637162",
    "messageId": "1774427841.463316056",
    "codeVersion": "1.5.1",
    "tools": [
      {
        "name": "Tool 07",
        "version": null,
        "topicId": "0.0.2175383",
        "messageId": "1706867530.884259218"
      }
    ],
    "userRoles": [
      "Administrator"
    ],
    "userGroups": [],
    "userRole": "Administrator",
    "userGroup": null,
    "tests": [],
    "id": "69c39e0f462c9c1141de2f0b"
  },
  {
    "createDate": "2026-03-25T07:32:17.567Z",
    "uuid": "1e95fab1-7b3e-4692-a16c-d977032be0d1",
    "name": "CDM AMS-III.AR Policy",
    "version": "1",
    "description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
    "status": "PUBLISH",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
    "policyRoles": [
      "Project Participant",
      "VVB"
    ],
    "policyGroups": [],
    "topicId": "0.0.8366207",
    "instanceTopicId": "0.0.8366841",
    "policyTag": "Tag_1774423895959",
    "messageId": "1774427068.001165000",
    "codeVersion": "1.5.1",
    "tools": [
      {
        "name": "Tool 33",
        "version": null,
        "topicId": "0.0.4865949",
        "messageId": "1726593517.484578000"
      },
      {
        "name": "Tool 19",
        "version": null,
        "topicId": "0.0.2196124",
        "messageId": "1706869798.177938003"
      },
      {
        "name": "Tool 21",
        "version": null,
        "topicId": "0.0.2203279",
        "messageId": "1706873385.455822873"
      },
      {
        "name": "Tool 07",
        "version": null,
        "topicId": "0.0.2175383",
        "messageId": "1706867530.884259218"
      }
    ],
    "userRoles": [
      "Administrator"
    ],
    "userGroups": [],
    "userRole": "Administrator",
    "userGroup": null,
    "tests": [],
    "id": "69c38f81462c9c1141de2df2"
  }
]

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}
GET /api/v1/policies/with-imported-records/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "name": "Policy name"
  }
]

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
POST /api/v1/policies/migrate-data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1576

{
  "policies": {
    "src": "69c63ecb2737af139ce96bf1",
    "dst": "69c642562737af139ce96e7c"
  },
  "vcs": [
    "69c63f5634e3e2878e651c4f",
    "69c63f6a34e3e2878e651c62",
    "69c63fe534e3e2878e651c71",
    "69c63ff834e3e2878e651c7d",
    "69c6402a34e3e2878e651c8a",
    "69c6403d34e3e2878e651c96",
    "69c6404c34e3e2878e651ca1"
  ],
  "vps": [
    "69c6405934e3e2878e651ca6"
  ],
  "schemas": {
    "#a63f77de-b9ca-46c7-aa4c-fe8ef89fe50a&1.0.0": "#8e8198b8-86ae-477c-a996-f7fa1e229614&1.0.0",
    "#a0f1bcdd-911d-496d-958f-01b55e01ea3b&1.0.0": "#f9fbc33a-b91f-4b9a-9ab7-9dc2ece4a756&1.0.0",
    "#c6832572-8a62-4da0-ae0b-7f8b7abb47d4&1.0.0": "#6046253d-b414-4ea1-8d5a-c883a02e4e15&1.0.0"
  },
  "groups": {},
  "roles": {
    "Registrant": "Registrant"
  },
  "migrateState": true,
  "editedVCs": {},
  "blocks": {
    "9fd3f431-d96f-459e-b1fa-af74d50b88f2": "ebe327ef-1eda-4266-9100-04bcf7b741ba",
    "f876c7cc-5e8a-4a47-a2da-3ef4c99ed8d9": "3a82b6fc-c141-46cb-9ce4-b413a278e707",
    "ca500f4d-104c-4440-920a-c4c942149971": "22d8d663-0179-48f9-9375-a7f095b5959b",
    "9fcb7585-8422-48ef-acea-faeed5b0c931": "b6faca4f-2220-4665-a1ef-a649d5598cbf",
    "a7c2402b-c0ab-47db-82f3-a18f87852194": "d28ec286-9e18-4c21-abe4-ca8713f83639",
    "5c9ece32-4c10-443a-beaa-cd5e2c1cfefe": "83bfc30f-a2e1-475f-9124-fdafd2a8445f",
    "138c7d6a-3b08-43a3-b741-c2d0dd635573": "35e8eb6b-fcd1-4a0f-881d-dc8f0df6c0c0",
    "34aed736-c0b2-40b7-8aa5-69b1478c86e8": "c6c02969-624b-4a23-a929-a27d43d6923a",
    "b7d6aad4-23a9-4f5b-8037-a0e9475abf05": "e8fa9426-a33c-41aa-b8c3-20c40d51d246",
    "51fdfac6-86b6-41f9-a613-ac5868e214d7": "1c9baf00-8410-4a7b-a5ef-d39a86a03773"
  },
  "tokens": {},
  "tokensMap": {
    "0.0.8393265": "0.0.8393387"
  },
  "migrateRetirePools": true,
  "retireContractId": ""
}
[]

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
202

Created task.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/migrate-data
POST /api/v1/policies/push/migrate-data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1576

{
  "policies": {
    "src": "69c63ecb2737af139ce96bf1",
    "dst": "69c642562737af139ce96e7c"
  },
  "vcs": [
    "69c63f5634e3e2878e651c4f",
    "69c63f6a34e3e2878e651c62",
    "69c63fe534e3e2878e651c71",
    "69c63ff834e3e2878e651c7d",
    "69c6402a34e3e2878e651c8a",
    "69c6403d34e3e2878e651c96",
    "69c6404c34e3e2878e651ca1"
  ],
  "vps": [
    "69c6405934e3e2878e651ca6"
  ],
  "schemas": {
    "#a63f77de-b9ca-46c7-aa4c-fe8ef89fe50a&1.0.0": "#8e8198b8-86ae-477c-a996-f7fa1e229614&1.0.0",
    "#a0f1bcdd-911d-496d-958f-01b55e01ea3b&1.0.0": "#f9fbc33a-b91f-4b9a-9ab7-9dc2ece4a756&1.0.0",
    "#c6832572-8a62-4da0-ae0b-7f8b7abb47d4&1.0.0": "#6046253d-b414-4ea1-8d5a-c883a02e4e15&1.0.0"
  },
  "groups": {},
  "roles": {
    "Registrant": "Registrant"
  },
  "migrateState": true,
  "editedVCs": {},
  "blocks": {
    "9fd3f431-d96f-459e-b1fa-af74d50b88f2": "ebe327ef-1eda-4266-9100-04bcf7b741ba",
    "f876c7cc-5e8a-4a47-a2da-3ef4c99ed8d9": "3a82b6fc-c141-46cb-9ce4-b413a278e707",
    "ca500f4d-104c-4440-920a-c4c942149971": "22d8d663-0179-48f9-9375-a7f095b5959b",
    "9fcb7585-8422-48ef-acea-faeed5b0c931": "b6faca4f-2220-4665-a1ef-a649d5598cbf",
    "a7c2402b-c0ab-47db-82f3-a18f87852194": "d28ec286-9e18-4c21-abe4-ca8713f83639",
    "5c9ece32-4c10-443a-beaa-cd5e2c1cfefe": "83bfc30f-a2e1-475f-9124-fdafd2a8445f",
    "138c7d6a-3b08-43a3-b741-c2d0dd635573": "35e8eb6b-fcd1-4a0f-881d-dc8f0df6c0c0",
    "34aed736-c0b2-40b7-8aa5-69b1478c86e8": "c6c02969-624b-4a23-a929-a27d43d6923a",
    "b7d6aad4-23a9-4f5b-8037-a0e9475abf05": "e8fa9426-a33c-41aa-b8c3-20c40d51d246",
    "51fdfac6-86b6-41f9-a613-ac5868e214d7": "1c9baf00-8410-4a7b-a5ef-d39a86a03773"
  },
  "tokens": {},
  "tokensMap": {
    "0.0.8393265": "0.0.8393387"
  },
  "migrateRetirePools": true,
  "retireContractId": ""
}
{
  "taskId": "147d8d77-4eea-43f3-b20e-2e83971a398f",
  "expectation": 4,
  "action": "Migrate data",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
202

Created task.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/migrate-data/resume
POST /api/v1/policies/push/migrate-data/resume HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 36

{
  "runId": "69c2cfc021d39e7b6d15e236"
}
{
  "taskId": "147d8d77-4eea-43f3-b20e-2e83971a398f",
  "expectation": 4,
  "action": "Migrate data",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
202

Created task.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/migrate-data/retry-failed
POST /api/v1/policies/push/migrate-data/retry-failed HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 36

{
  "runId": "69c2cfc021d39e7b6d15e236"
}
{
  "taskId": "147d8d77-4eea-43f3-b20e-2e83971a398f",
  "expectation": 4,
  "action": "Migrate data",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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 /api/v1/policies/migrate-data/status?srcPolicyId=69aeb71ef8c5b278e3bab4e5&dstPolicyId=69aeb71ef8c5b278e3bab4e5 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "runId": "69c643902737af139ce96ee7",
      "srcPolicyId": "69c63ecb2737af139ce96bf1",
      "dstPolicyId": "69c642562737af139ce96e7c",
      "status": "completed",
      "startedAt": "2026-03-27T08:45:04.532Z",
      "finishedAt": "2026-03-27T09:09:55.412Z",
      "summary": {
        "vcDocument": {
          "total": 7,
          "success": 7,
          "failed": 0,
          "cursorLastId": "69c643a82737af139ce96f35"
        },
        "vpDocument": {
          "total": 1,
          "success": 1,
          "failed": 0,
          "cursorLastId": "69c643b42737af139ce96f5d"
        },
        "roleVcDocument": {
          "total": 0,
          "success": 0,
          "failed": 0,
          "cursorLastId": null
        },
        "policyRole": {
          "total": 1,
          "success": 1,
          "failed": 0,
          "cursorLastId": "69c63f3934e3e2878e651c48"
        },
        "policyState": {
          "total": 3,
          "success": 0,
          "failed": 3,
          "cursorLastId": "69c63f4134e3e2878e651c4b"
        },
        "mintRequest": {
          "total": 1,
          "success": 1,
          "failed": 0,
          "cursorLastId": "69c6405934e3e2878e651cab"
        },
        "mintTransaction": {
          "total": 1,
          "success": 1,
          "failed": 0,
          "cursorLastId": "69c6405934e3e2878e651cb0"
        },
        "multiDocument": {
          "total": 0,
          "success": 0,
          "failed": 0,
          "cursorLastId": null
        },
        "aggregateVc": {
          "total": 0,
          "success": 0,
          "failed": 0,
          "cursorLastId": null
        },
        "splitDocument": {
          "total": 0,
          "success": 0,
          "failed": 0,
          "cursorLastId": null
        },
        "documentState": {
          "total": 11,
          "success": 11,
          "failed": 0,
          "cursorLastId": "69c643a82737af139ce96f4b"
        },
        "token": {
          "total": 0,
          "success": 0,
          "failed": 0,
          "cursorLastId": null
        },
        "retirePool": {
          "total": 0,
          "success": 0,
          "failed": 0,
          "cursorLastId": null
        }
      },
      "isDryRun": false,
      "failedItems": [
        {
          "createDate": "2026-03-27T08:45:04.584Z",
          "updateDate": "2026-03-27T09:09:55.401Z",
          "srcPolicyId": "69c63ecb2737af139ce96bf1",
          "dstPolicyId": "69c642562737af139ce96e7c",
          "entityType": "policyState",
          "srcEntityId": "69c63f4134e3e2878e651c4b",
          "runId": "69c643902737af139ce96ee7",
          "attemptCount": 2,
          "errorMessage": "Error: Destination block mapping not found for policyState",
          "firstFailedAt": "2026-03-27T08:45:04.583Z",
          "lastFailedAt": "2026-03-27T09:09:55.397Z",
          "id": "69c643902737af139ce96eec"
        },
        {
          "createDate": "2026-03-27T08:45:04.582Z",
          "updateDate": "2026-03-27T09:09:55.401Z",
          "srcPolicyId": "69c63ecb2737af139ce96bf1",
          "dstPolicyId": "69c642562737af139ce96e7c",
          "entityType": "policyState",
          "srcEntityId": "69c6401d34e3e2878e651c86",
          "runId": "69c643902737af139ce96ee7",
          "attemptCount": 2,
          "errorMessage": "Error: Destination block mapping not found for policyState",
          "firstFailedAt": "2026-03-27T08:45:04.581Z",
          "lastFailedAt": "2026-03-27T09:09:55.397Z",
          "id": "69c643902737af139ce96eeb"
        },
        {
          "createDate": "2026-03-27T08:45:04.580Z",
          "updateDate": "2026-03-27T09:09:55.400Z",
          "srcPolicyId": "69c63ecb2737af139ce96bf1",
          "dstPolicyId": "69c642562737af139ce96e7c",
          "entityType": "policyState",
          "srcEntityId": "69c63fd734e3e2878e651c6d",
          "runId": "69c643902737af139ce96ee7",
          "attemptCount": 2,
          "errorMessage": "Error: Destination block mapping not found for policyState",
          "firstFailedAt": "2026-03-27T08:45:04.580Z",
          "lastFailedAt": "2026-03-27T09:09:55.397Z",
          "id": "69c643902737af139ce96eea"
        }
      ]
    }
  ]
}

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
GET /api/v1/policies/migrate-data/runs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "runId": "f3b2a9c1e4d5678901234567",
      "srcPolicyId": "f3b2a9c1e4d5678901234567",
      "dstPolicyId": "f3b2a9c1e4d5678901234567",
      "status": "string",
      "isDryRun": true,
      "startedAt": "string",
      "finishedAt": "string",
      "summary": "string",
      "failedItems": [
        {
          "srcPolicyId": {},
          "dstPolicyId": {},
          "entityType": {},
          "srcEntityId": {},
          "runId": {},
          "attemptCount": {},
          "errorCode": {},
          "errorMessage": {},
          "firstFailedAt": {},
          "lastFailedAt": {}
        }
      ]
    }
  ],
  "count": 0,
  "pageIndex": 0,
  "pageSize": 0
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push
POST /api/v1/policies/push HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 273

{
  "name": "New policy",
  "applicabilityConditions": "",
  "detailsUrl": "",
  "typicalProjects": "",
  "topicDescription": "",
  "description": "Policy description",
  "categories": [
    "69c2cfc534d008dac266432c",
    "69c2cfc534d008dac2664316",
    ""
  ],
  "importantParameters": {
    "atValidation": "",
    "monitored": ""
  }
}
{
  "taskId": "89e1e62a-7976-4e24-8dd3-997da02dc81e",
  "expectation": 8,
  "action": "Create policy",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/{policyId}
POST /api/v1/policies/push/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 132

{
  "policyTag": "Tag_1774613972836",
  "name": "ClonedPolicy",
  "topicDescription": "Topic description text",
  "description": "Description text"
}
{
  "taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
  "expectation": 5,
  "action": "Clone policy",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
delete/policies/push/{policyId}
DELETE /api/v1/policies/push/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
  "expectation": 5,
  "action": "Delete policy",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/delete-multiple
POST /api/v1/policies/push/delete-multiple HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 69

{
  "policyIds": [
    "69c673f3fbdb94688e7eea7f",
    "69c67548fbdb94688e7eeb98"
  ]
}
{
  "taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
  "expectation": 3,
  "action": "Delete policies",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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}
GET /api/v1/policies/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "69aeb71ef8c5b278e3bab4e5",
  "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "name": "Policy name",
  "description": "Description",
  "topicDescription": "Description",
  "policyTag": "Tag",
  "status": "DRAFT",
  "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "topicId": "0.0.6046379",
  "messageId": "1773670900.819264517",
  "codeVersion": "1.0.0",
  "createDate": "2026-03-03T17:25:53.312Z",
  "version": "1.0.0",
  "originalChanged": true,
  "config": {},
  "userRole": "Installer",
  "userRoles": [
    "Installer"
  ],
  "userGroup": {
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "role": "Installer",
    "groupLabel": "Label",
    "groupName": "Name",
    "active": true
  },
  "userGroups": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    }
  ],
  "policyRoles": [
    "Registrant"
  ],
  "policyNavigation": [
    {
      "role": "Registrant",
      "steps": [
        {
          "block": "Block tag",
          "level": 1,
          "name": "Step name"
        }
      ]
    }
  ],
  "policyTopics": [
    {
      "name": "Project",
      "description": "Project",
      "memoObj": "topic",
      "static": false,
      "type": "any"
    }
  ],
  "policyTokens": [
    {
      "tokenName": "Token name",
      "tokenSymbol": "Token symbol",
      "tokenType": "non-fungible",
      "decimals": "",
      "changeSupply": true,
      "enableAdmin": true,
      "enableFreeze": true,
      "enableKYC": true,
      "enableWipe": true,
      "templateTokenTag": "token_template_0"
    }
  ],
  "policyGroups": [
    {
      "name": "Group name",
      "creator": "Registrant",
      "groupAccessType": "Private",
      "groupRelationshipType": "Multiple",
      "members": [
        "Registrant"
      ]
    }
  ],
  "categories": [
    "string"
  ],
  "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "tests": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "name": "Test Name",
      "policyId": "69aeb71ef8c5b278e3bab4e5",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "status": "NEW",
      "date": "2026-03-03T17:25:53.312Z",
      "duration": 0,
      "progress": 0,
      "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "result": {}
    }
  ],
  "ignoreRules": [
    {
      "code": "string",
      "blockType": "string",
      "property": "string",
      "contains": "string",
      "severity": "warning"
    }
  ]
}

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}
PUT /api/v1/policies/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2763

{
  "id": "69aeb71ef8c5b278e3bab4e5",
  "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "name": "Policy name",
  "description": "Description",
  "topicDescription": "Description",
  "applicabilityConditions": "",
  "detailsUrl": "",
  "typicalProjects": "",
  "importantParameters": {
    "atValidation": "",
    "monitored": ""
  },
  "policyTag": "Tag",
  "status": "DRAFT",
  "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "topicId": "0.0.6046379",
  "instanceTopicId": "0.0.6046379",
  "messageId": "1773670900.819264517",
  "availability": "private",
  "codeVersion": "1.0.0",
  "tools": [
    {
      "name": "Tool 33",
      "version": "1.0.0",
      "topicId": "0.0.6046379",
      "messageId": "1773670900.819264517"
    }
  ],
  "schemaTemplate": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "createDate": "2026-03-03T17:25:53.312Z",
  "version": "1.0.0",
  "originalChanged": "text",
  "editableParametersSettings": [
    {}
  ],
  "config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "userRole": "Installer",
  "userRoles": [
    "Installer"
  ],
  "userGroup": {
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "role": "Installer",
    "groupLabel": "Label",
    "groupName": "Name",
    "active": true
  },
  "userGroups": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    }
  ],
  "policyRoles": [
    "Registrant"
  ],
  "policyNavigation": [
    {
      "role": "Registrant",
      "steps": [
        {
          "block": "Block tag",
          "level": 1,
          "name": "Step name"
        }
      ]
    }
  ],
  "policyTopics": [
    {
      "name": "Project",
      "description": "Project",
      "memoObj": "topic",
      "static": false,
      "type": "any"
    }
  ],
  "policyTokens": [
    {
      "tokenName": "Token name",
      "tokenSymbol": "Token symbol",
      "tokenType": "non-fungible",
      "decimals": "",
      "changeSupply": true,
      "enableAdmin": true,
      "enableFreeze": true,
      "enableKYC": true,
      "enableWipe": true,
      "templateTokenTag": "token_template_0"
    }
  ],
  "policyGroups": [
    {
      "name": "Group name",
      "creator": "Registrant",
      "groupAccessType": "Private",
      "groupRelationshipType": "Multiple",
      "members": [
        "Registrant"
      ]
    }
  ],
  "policyDocumentation": [
    {
      "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"
    }
  ],
  "categories": [
    "text"
  ],
  "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "tests": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "name": "Test Name",
      "policyId": "69aeb71ef8c5b278e3bab4e5",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "status": "New",
      "date": "2026-03-03T17:25:53.312Z",
      "duration": 0,
      "progress": 0,
      "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "result": "text"
    }
  ],
  "ignoreRules": [
    {
      "code": "text",
      "blockType": "text",
      "property": "text",
      "contains": "text",
      "severity": "warning"
    }
  ]
}
{
  "id": "69aeb71ef8c5b278e3bab4e5",
  "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "name": "Policy name",
  "description": "Description",
  "topicDescription": "Description",
  "policyTag": "Tag",
  "status": "DRAFT",
  "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "topicId": "0.0.6046379",
  "messageId": "1773670900.819264517",
  "codeVersion": "1.0.0",
  "createDate": "2026-03-03T17:25:53.312Z",
  "version": "1.0.0",
  "originalChanged": true,
  "config": {},
  "userRole": "Installer",
  "userRoles": [
    "Installer"
  ],
  "userGroup": {
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "role": "Installer",
    "groupLabel": "Label",
    "groupName": "Name",
    "active": true
  },
  "userGroups": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    }
  ],
  "policyRoles": [
    "Registrant"
  ],
  "policyNavigation": [
    {
      "role": "Registrant",
      "steps": [
        {
          "block": "Block tag",
          "level": 1,
          "name": "Step name"
        }
      ]
    }
  ],
  "policyTopics": [
    {
      "name": "Project",
      "description": "Project",
      "memoObj": "topic",
      "static": false,
      "type": "any"
    }
  ],
  "policyTokens": [
    {
      "tokenName": "Token name",
      "tokenSymbol": "Token symbol",
      "tokenType": "non-fungible",
      "decimals": "",
      "changeSupply": true,
      "enableAdmin": true,
      "enableFreeze": true,
      "enableKYC": true,
      "enableWipe": true,
      "templateTokenTag": "token_template_0"
    }
  ],
  "policyGroups": [
    {
      "name": "Group name",
      "creator": "Registrant",
      "groupAccessType": "Private",
      "groupRelationshipType": "Multiple",
      "members": [
        "Registrant"
      ]
    }
  ],
  "categories": [
    "string"
  ],
  "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "tests": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "name": "Test Name",
      "policyId": "69aeb71ef8c5b278e3bab4e5",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "status": "NEW",
      "date": "2026-03-03T17:25:53.312Z",
      "duration": 0,
      "progress": 0,
      "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "result": {}
    }
  ],
  "ignoreRules": [
    {
      "code": "string",
      "blockType": "string",
      "property": "string",
      "contains": "string",
      "severity": "warning"
    }
  ]
}

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
GET /api/v1/policies/{policyId}/disconnected HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

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
GET /api/v1/policies/{policyId}/about HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {}
]

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
PUT /api/v1/policies/{policyId}/publish HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 81

{
  "policyVersion": "1.0.0",
  "policyAvailability": "private",
  "recordingEnabled": false
}
{
  "policies": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "name": "Policy name",
      "description": "Description",
      "topicDescription": "Description",
      "policyTag": "Tag",
      "status": "DRAFT",
      "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "topicId": "0.0.6046379",
      "messageId": "1773670900.819264517",
      "codeVersion": "1.0.0",
      "createDate": "2026-03-03T17:25:53.312Z",
      "version": "1.0.0",
      "originalChanged": true,
      "config": {},
      "userRole": "Installer",
      "userRoles": [
        "Installer"
      ],
      "userGroup": {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      },
      "userGroups": [
        {
          "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
          "role": "Installer",
          "groupLabel": "Label",
          "groupName": "Name",
          "active": true
        }
      ],
      "policyRoles": [
        "Registrant"
      ],
      "policyNavigation": [
        {
          "role": "Registrant",
          "steps": [
            {
              "block": "Block tag",
              "level": 1,
              "name": "Step name"
            }
          ]
        }
      ],
      "policyTopics": [
        {
          "name": "Project",
          "description": "Project",
          "memoObj": "topic",
          "static": false,
          "type": "any"
        }
      ],
      "policyTokens": [
        {
          "tokenName": "Token name",
          "tokenSymbol": "Token symbol",
          "tokenType": "non-fungible",
          "decimals": "",
          "changeSupply": true,
          "enableAdmin": true,
          "enableFreeze": true,
          "enableKYC": true,
          "enableWipe": true,
          "templateTokenTag": "token_template_0"
        }
      ],
      "policyGroups": [
        {
          "name": "Group name",
          "creator": "Registrant",
          "groupAccessType": "Private",
          "groupRelationshipType": "Multiple",
          "members": [
            "Registrant"
          ]
        }
      ],
      "categories": [
        "string"
      ],
      "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "tests": [
        {
          "id": "69aeb71ef8c5b278e3bab4e5",
          "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
          "name": "Test Name",
          "policyId": "69aeb71ef8c5b278e3bab4e5",
          "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
          "status": "NEW",
          "date": "2026-03-03T17:25:53.312Z",
          "duration": 0,
          "progress": 0,
          "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
          "result": {}
        }
      ],
      "ignoreRules": [
        {
          "code": {},
          "blockType": {},
          "property": {},
          "contains": {},
          "severity": {}
        }
      ]
    }
  ],
  "isValid": true,
  "errors": {
    "blocks": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "name": "string",
        "errors": [
          {}
        ],
        "warnings": [
          {}
        ],
        "infos": [
          {}
        ],
        "isValid": true
      }
    ],
    "errors": [
      "string"
    ],
    "warnings": [
      "string"
    ],
    "infos": [
      "string"
    ]
  }
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
put/policies/push/{policyId}/publish
PUT /api/v1/policies/push/{policyId}/publish HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 81

{
  "policyVersion": "1.0.0",
  "policyAvailability": "private",
  "recordingEnabled": false
}
{
  "taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
  "expectation": 13,
  "action": "Publish policy",
  "userId": "69c2cfc021d39e7b6d15e236"
}

Dry Run policy.

put

Switches the specified policy into dry-run mode asynchronously and returns the task of the operation, so that its progress can be tracked. 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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
put/policies/push/{policyId}/dry-run
PUT /api/v1/policies/push/{policyId}/dry-run HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
  "expectation": 6,
  "action": "Dry-run policy",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
PUT /api/v1/policies/{policyId}/dry-run HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "policies": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "name": "Policy name",
      "description": "Description",
      "topicDescription": "Description",
      "policyTag": "Tag",
      "status": "DRAFT",
      "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "topicId": "0.0.6046379",
      "messageId": "1773670900.819264517",
      "codeVersion": "1.0.0",
      "createDate": "2026-03-03T17:25:53.312Z",
      "version": "1.0.0",
      "originalChanged": true,
      "config": {},
      "userRole": "Installer",
      "userRoles": [
        "Installer"
      ],
      "userGroup": {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      },
      "userGroups": [
        {
          "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
          "role": "Installer",
          "groupLabel": "Label",
          "groupName": "Name",
          "active": true
        }
      ],
      "policyRoles": [
        "Registrant"
      ],
      "policyNavigation": [
        {
          "role": "Registrant",
          "steps": [
            {
              "block": "Block tag",
              "level": 1,
              "name": "Step name"
            }
          ]
        }
      ],
      "policyTopics": [
        {
          "name": "Project",
          "description": "Project",
          "memoObj": "topic",
          "static": false,
          "type": "any"
        }
      ],
      "policyTokens": [
        {
          "tokenName": "Token name",
          "tokenSymbol": "Token symbol",
          "tokenType": "non-fungible",
          "decimals": "",
          "changeSupply": true,
          "enableAdmin": true,
          "enableFreeze": true,
          "enableKYC": true,
          "enableWipe": true,
          "templateTokenTag": "token_template_0"
        }
      ],
      "policyGroups": [
        {
          "name": "Group name",
          "creator": "Registrant",
          "groupAccessType": "Private",
          "groupRelationshipType": "Multiple",
          "members": [
            "Registrant"
          ]
        }
      ],
      "categories": [
        "string"
      ],
      "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "tests": [
        {
          "id": "69aeb71ef8c5b278e3bab4e5",
          "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
          "name": "Test Name",
          "policyId": "69aeb71ef8c5b278e3bab4e5",
          "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
          "status": "NEW",
          "date": "2026-03-03T17:25:53.312Z",
          "duration": 0,
          "progress": 0,
          "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
          "result": {}
        }
      ],
      "ignoreRules": [
        {
          "code": {},
          "blockType": {},
          "property": {},
          "contains": {},
          "severity": {}
        }
      ]
    }
  ],
  "isValid": true,
  "errors": {
    "blocks": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "name": "string",
        "errors": [
          {}
        ],
        "warnings": [
          {}
        ],
        "infos": [
          {}
        ],
        "isValid": true
      }
    ],
    "errors": [
      "string"
    ],
    "warnings": [
      "string"
    ],
    "infos": [
      "string"
    ]
  }
}

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
PUT /api/v1/policies/{policyId}/discontinue HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "uuid": "f3b2a9c1e4d5678901234567",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "string",
    "creator": "string",
    "owner": "string",
    "topicId": "f3b2a9c1e4d5678901234567",
    "messageId": "f3b2a9c1e4d5678901234567",
    "codeVersion": "1.0.0",
    "createDate": "string",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "string",
    "tests": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "uuid": "f3b2a9c1e4d5678901234567",
        "name": "Test Name",
        "policyId": "f3b2a9c1e4d5678901234567",
        "owner": "string",
        "status": "string",
        "date": "string",
        "duration": 0,
        "progress": 0,
        "resultId": "f3b2a9c1e4d5678901234567",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  }
]

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
PUT /api/v1/policies/{policyId}/draft HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "uuid": "f3b2a9c1e4d5678901234567",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "string",
    "creator": "string",
    "owner": "string",
    "topicId": "f3b2a9c1e4d5678901234567",
    "messageId": "f3b2a9c1e4d5678901234567",
    "codeVersion": "1.0.0",
    "createDate": "string",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "string",
    "tests": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "uuid": "f3b2a9c1e4d5678901234567",
        "name": "Test Name",
        "policyId": "f3b2a9c1e4d5678901234567",
        "owner": "string",
        "status": "string",
        "date": "string",
        "duration": 0,
        "progress": 0,
        "resultId": "f3b2a9c1e4d5678901234567",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  }
]

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
POST /api/v1/policies/validate HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2763

{
  "id": "69aeb71ef8c5b278e3bab4e5",
  "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "name": "Policy name",
  "description": "Description",
  "topicDescription": "Description",
  "applicabilityConditions": "",
  "detailsUrl": "",
  "typicalProjects": "",
  "importantParameters": {
    "atValidation": "",
    "monitored": ""
  },
  "policyTag": "Tag",
  "status": "DRAFT",
  "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
  "topicId": "0.0.6046379",
  "instanceTopicId": "0.0.6046379",
  "messageId": "1773670900.819264517",
  "availability": "private",
  "codeVersion": "1.0.0",
  "tools": [
    {
      "name": "Tool 33",
      "version": "1.0.0",
      "topicId": "0.0.6046379",
      "messageId": "1773670900.819264517"
    }
  ],
  "schemaTemplate": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "createDate": "2026-03-03T17:25:53.312Z",
  "version": "1.0.0",
  "originalChanged": "text",
  "editableParametersSettings": [
    {}
  ],
  "config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "userRole": "Installer",
  "userRoles": [
    "Installer"
  ],
  "userGroup": {
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "role": "Installer",
    "groupLabel": "Label",
    "groupName": "Name",
    "active": true
  },
  "userGroups": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    }
  ],
  "policyRoles": [
    "Registrant"
  ],
  "policyNavigation": [
    {
      "role": "Registrant",
      "steps": [
        {
          "block": "Block tag",
          "level": 1,
          "name": "Step name"
        }
      ]
    }
  ],
  "policyTopics": [
    {
      "name": "Project",
      "description": "Project",
      "memoObj": "topic",
      "static": false,
      "type": "any"
    }
  ],
  "policyTokens": [
    {
      "tokenName": "Token name",
      "tokenSymbol": "Token symbol",
      "tokenType": "non-fungible",
      "decimals": "",
      "changeSupply": true,
      "enableAdmin": true,
      "enableFreeze": true,
      "enableKYC": true,
      "enableWipe": true,
      "templateTokenTag": "token_template_0"
    }
  ],
  "policyGroups": [
    {
      "name": "Group name",
      "creator": "Registrant",
      "groupAccessType": "Private",
      "groupRelationshipType": "Multiple",
      "members": [
        "Registrant"
      ]
    }
  ],
  "policyDocumentation": [
    {
      "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"
    }
  ],
  "categories": [
    "text"
  ],
  "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
  "tests": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "name": "Test Name",
      "policyId": "69aeb71ef8c5b278e3bab4e5",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "status": "New",
      "date": "2026-03-03T17:25:53.312Z",
      "duration": 0,
      "progress": 0,
      "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "result": "text"
    }
  ],
  "ignoreRules": [
    {
      "code": "text",
      "blockType": "text",
      "property": "text",
      "contains": "text",
      "severity": "warning"
    }
  ]
}
{
  "policy": {
    "id": "69aeb71ef8c5b278e3bab4e5",
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "DRAFT",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "topicId": "0.0.6046379",
    "messageId": "1773670900.819264517",
    "codeVersion": "1.0.0",
    "createDate": "2026-03-03T17:25:53.312Z",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "tests": [
      {
        "id": "69aeb71ef8c5b278e3bab4e5",
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "name": "Test Name",
        "policyId": "69aeb71ef8c5b278e3bab4e5",
        "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
        "status": "NEW",
        "date": "2026-03-03T17:25:53.312Z",
        "duration": 0,
        "progress": 0,
        "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  },
  "results": {
    "blocks": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "name": "string",
        "errors": [
          {}
        ],
        "warnings": [
          {}
        ],
        "infos": [
          {}
        ],
        "isValid": true
      }
    ],
    "errors": [
      "string"
    ],
    "warnings": [
      "string"
    ],
    "infos": [
      "string"
    ]
  }
}

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
PUT /api/v1/policies/{policyId}/disconnect HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

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
PUT /api/v1/policies/{policyId}/reconnect HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

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
GET /api/v1/policies/{policyId}/navigation HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "result": "ok"
}

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
GET /api/v1/policies/{policyId}/groups HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "result": "ok"
}

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
POST /api/v1/policies/{policyId}/groups HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 13

{
  "uuid": null
}
{
  "result": "ok"
}

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 /api/v1/policies/{policyId}/documents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "schema": "#16462e4c-4553-4b91-8ff8-ea3a1094a744&1.0.0",
    "owner": "did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161",
    "messageId": "1774621651.173557000",
    "id": "69c693d288a9ebd936dfcb2d"
  }
]

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
GET /api/v1/policies/{policyId}/search-documents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  "string"
]

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 /api/v1/policies/{policyId}/export-documents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
string

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 /api/v1/policies/{policyId}/document-owners HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
  "did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161"
]

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
GET /api/v1/policies/{policyId}/tokens HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  "string"
]

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
GET /api/v1/policies/{policyId}/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary (zip archive)

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
POST /api/v1/policies/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
{
  "createDate": "2026-03-26T10:10:06.439Z",
  "updateDate": "2026-03-26T10:11:37.309Z",
  "uuid": "a3336ac3-ae33-4397-85ab-0dbed992c99b",
  "name": "iRec_4_1774519806406",
  "version": "3",
  "description": "iRec Description",
  "topicDescription": "iRec Description",
  "configFileId": "69c5065988275585de0ab308",
  "status": "PUBLISH",
  "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
  "policyRoles": [],
  "policyGroups": [],
  "policyTopics": [],
  "policyTokens": [],
  "topicId": "0.0.8382928",
  "instanceTopicId": "0.0.8382933",
  "synchronizationTopicId": "0.0.8382934",
  "commentsTopicId": "0.0.8382936",
  "policyTag": "Tag_1774519783335",
  "messageId": "1774519889.760696000",
  "codeVersion": "1.5.1",
  "hash": "35nNHbsFioMqSKBbv67YcL2KvHsQEu821T2hNdV3LWvk",
  "hashMapFileId": "69c5065988275585de0ab30a",
  "tools": [],
  "availability": "private",
  "locationType": "local",
  "recordsTopicId": "0.0.8382935",
  "autoRecordSteps": true,
  "contentFileId": "69c5064588275585de0ab2f0",
  "config": {},
  "hashMap": {},
  "id": "69c937108f421b1354945d4b"
}

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
GET /api/v1/policies/{policyId}/virtual-keys HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary

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
POST /api/v1/policies/{policyId}/virtual-keys HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"

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
GET /api/v1/policies/{policyId}/tag-block-map HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "Choose_Roles": "67b1ba6f-732b-49fe-b96c-2bc65d2bfef5",
  "header": "eba62c72-d50d-4deb-92e1-efb320b999d8",
  "approve_PP": "de7655e2-abb4-4c11-9c9d-d9045863655f",
  "pp_grid_sr": "342d3226-60b8-440f-ae74-4d9d4e9b1502",
  "pp_grid_sr_documents_to_approve": "75a79a7a-9e5d-451b-ac9a-0cae1c74e0c5",
  "pp_grid_sr_documents_approved": "721563a4-ac0b-41fd-ac3c-648f603c266f",
  "pp_grid_sr_documents_approved_rejected": "2cef948f-5331-40d7-8605-db8996949074",
  "pp_grid_sr_history": "d8a519e6-8154-441e-b0c5-ce9354ee3e20",
  "approve_pp_documents_btn": "ba9bbaff-777c-4cea-b57c-88f5e66738e8",
  "revoke_pp_sr_btn": "52566539-55b9-401e-a7ae-5c155e3c4e84",
  "revoke_pp_sr": "c5625a1d-4211-4c86-a807-138bef4ed683",
  "save_revoke_pp_sr": "b0f38345-c568-4846-bc16-a001f324c1be",
  "approve_VVB": "7df235de-8a3a-4b6a-b7e4-afbbb1e07789",
  "vvb_grid_sr": "7dcca0c2-686d-4f6e-ae6f-9047a062b21e",
  "vvb_grid_sr_documents_to_approve": "a81f2eb8-c463-40c0-9a99-1b54b4330d13",
  "vvb_grid_sr_documents_approved": "5eb49aed-e645-4cce-ac66-478f33e43ecb",
  "vvb_grid_sr_documents_approved_rejected": "94d0f573-d925-487c-93c5-197ae62b835c",
  "history_addon_35a0bfb0-72a2-4dde-a107-ce356544a9c7": "779fc971-2db2-402e-b74e-3a93c4d3fee1",
  "approve_documents_btn": "11957409-363d-4c9a-ad63-b44e22f095b9",
  "revoke_vvb_sr_btn": "4484e430-afdd-464b-9908-736f9f8691ca",
  "revoke_vvb_sr": "07ecfe0c-4764-4e4d-845d-1b906a74c673",
  "save_revoke_vvb_sr": "ef7b5c39-efb5-4c4c-8705-38d47a05c098",
  "return_vvb_to_wait": "c257b2c4-415e-4580-a1ca-b7978ae18e2a",
  "project_Pipeline": "ca3f48e7-46e0-4a9a-b808-0a8635950fc3",
  "project_grid_sr": "4e31d57a-4c68-49a3-bd32-3971df87bc4e",
  "project_grid_sr_waiting_for_validation": "9ea132db-8394-4f3d-b622-5468458ccb94",
  "project_grid_sr_validated_revoked": "42e89bd3-3f7b-4b3b-8de2-d5e9f568b966",
  "project_grid_sr_rejected": "28902755-9f7d-4b56-96f2-901bb11985c4",
  "sr_project_grid_history": "57e1bff5-28cd-407e-b011-43d2cffd99f3",
  "sr_validate_project_btn": "3dfdf39a-9e20-4622-b8cf-588083c3e643",
  "sr_save_validated_project": "391cd16e-3250-4630-a1a8-83e5567b9d6d",
  "sr_reassign_validated_project": "2e841cf4-90fe-4828-ab4e-2c6cb6ba931c",
  "sr_save_reassigned_validated_project_hedera": "c3970f63-517f-471b-b883-a09436634926",
  "sr_save_reassigned_validated_project_db": "5a6c1aaf-aab0-4356-a2ba-54885479401b",
  "sr_save_rejected_project": "4931d0ac-102f-42b2-943f-fb2f5ee4747e",
  "sr_reassign_rejected_project": "4231d33a-da43-43f6-b71b-4777f3241407",
  "sr_save_reassigned_rejected_project_hedera": "ed395fc3-f4e2-465c-a69f-c4f731683036",
  "sr_save_reassigned_rejected_project_db": "b375e199-3b1d-4d52-be48-153a77272f7c",
  "sr_revoke_project_btn": "f641ac31-b3db-4797-bf09-41399cc092d1",
  "sr_revoke_project": "e5d52ff6-000c-4024-b80c-810bd0487a89",
  "sr_save_revoked_projects": "6a5d7596-34d5-4be1-bc5c-002504c3c8a8",
  "Monitoring_Reports_sr": "d1ede253-2ad7-4e72-88e1-28d1caa8fbf7",
  "report_grid_sr": "6e844eaf-2209-4bc1-a615-dddd2b091414",
  "report_grid_sr_verified_approved_reports": "d4e2a6dd-dc93-4871-830d-74d6b6393cc5",
  "report_grid_sr_approved_revoked": "e68c4e8d-cc14-4779-871d-0d7fd1ea991f",
  "report_grid_sr_rejected": "544c78ea-9298-4579-87f2-0a77d08f93c7",
  "history_addon_97744a6d-4bd6-4281-9075-3695b76475f1": "251ad205-4bf8-4b3f-a3bc-748db5da2c9d",
  "sr_approve_report_btn": "bdee1b47-ce92-439e-91ae-851c9248540c",
  "sr_save_approved_report": "4e443dd1-913f-446d-8fb9-40e14290fdd0",
  "sr_reassign_approved_report": "cc29360f-e5ec-4d0f-bae3-e79491426b37",
  "sr_save_reassigned_approved_report_hedera": "90f82730-9304-4620-98a2-aa4487e713a0",
  "sr_save_reassigned_approved_report_db": "c5b54039-1ad3-454c-acda-fd85ba79cf41",
  "mintToken": "e9557770-0664-41c7-977d-b90e02705a58",
  "sr_save_rejected_report": "f7873839-57e1-41dd-8ea1-c5247f458a1f",
  "sr_reassign_rejected_report": "52babd73-4b65-4d67-a1c1-7c8b24631731",
  "sr_save_reassigned_rejected_report_hedera": "bd6127a3-556e-4366-a73b-28979db863fb",
  "sr_save_reassigned_rejected_report_db": "9adb9ed4-7cfa-4417-90ca-cfd2db637473",
  "sr_revoke_report_btn": "e8351d12-0ef0-4c13-8429-7c7461636879",
  "sr_revoke_reports": "501467ae-149f-4ca6-a0a5-af6312d50334",
  "sr_save_revoked_reports": "46422837-79c1-45b6-ade8-96f80a1af585",
  "VP": "dca1dc1e-8b6e-4d32-a2ed-f750c7408fee",
  "vp_grid": "76a5c371-2d7a-4669-a5c5-5e74b2e43922",
  "vp_grid_vp_documents": "903eb680-1d02-4eb1-b2d2-92c9b6089957",
  "TrustChain": "193f034e-f621-4187-92e8-4e02c23ae556",
  "trustChainBlock": "267d727f-b405-465e-bc0a-bb09f121b308",
  "MintTokenItem": "5ef14a78-bd0b-4460-9f5c-2f9b947b8b52",
  "ReportMonitoringReportApproved": "92390fb9-c377-4be5-95f7-8111d739ce5e",
  "ReportMonitoringReportVerified": "0e21256b-4217-4bad-8cbf-4f6a1f0c8f82",
  "AutomaticMonitoringReport": "9ab4f8d7-4b20-4fb9-99cd-1d8e0e685d61",
  "ReportMonitoringReportCreated": "6c6ca33b-1b17-473c-a0c4-f86c773ab85e",
  "ReportProjectValidation": "18d32be0-b899-4d12-b36f-ce23f45694d3",
  "AutomaticProject": "224bc884-fe6a-46e6-bec0-7888d7a54d1e",
  "ReportProjectCreated": "8b0c9803-c6a0-4c13-83f6-b02a7844c44b",
  "pp_step": "38ebef4b-0b4e-4724-b19f-81bb8b8c4c8a",
  "create_pp_profile": "a091d4c6-aa73-40d8-8c52-b33eb4f8dd00",
  "preset_pp_profile": "05ac6b40-f5e9-43aa-9e20-bffbfe3be525",
  "save_pp_profile_hedera": "0d5f03aa-cfe9-46bb-bc36-48d994750806",
  "save_pp_profile_db": "e290fad5-25de-461c-8c52-35df7c90d68e",
  "pp_wait_for_approve": "70e31450-e940-47ea-8e1b-e2b6da708fb2",
  "save_approved_pp": "bc9ec5a6-7bf6-4625-a0d4-6ec14dcd100b",
  "reassign_approved_pp": "f4300ce7-b62f-4bf7-8f90-fce944c01453",
  "save_reassigned_approved_pp_hedera": "101fbcb2-7410-4eb6-ac0b-aad62dfa61ad",
  "save_reassigned_approved_pp_db": "d8bd023e-26ef-4e5f-bc29-327a099dfc2d",
  "Project Participant_header": "b7c48ef6-9eff-4696-8967-41cb25efe008",
  "pp_document": "3e907e60-c851-4803-963d-193b85f2de15",
  "pp_profile_grid": "0852f759-da33-4a64-950f-bde731c87112",
  "pp_documents": "7d591df9-2869-418c-ba72-29a43daf2177",
  "pp_documents_rejected": "02b132cc-f987-4ed2-a050-1f6070aa4754",
  "pp_documents_history": "2738651e-be9f-4e7d-a51d-89a842238d89",
  "pp_revoke_profile": "d4bd6553-3ff4-474b-9cd2-b020ad87ab00",
  "pp_revoke_profile_documents": "999824d8-0a96-426e-8853-597d6406a377",
  "pp_save_revoked_profile_documents": "177d6b7b-eb34-4420-a852-3e5f015902ff",
  "Projects_pp": "84fb55a8-1107-427a-8c82-a77016698d6e",
  "project_grid_pp_2": "d4482a69-7390-48c1-8e76-d06ef487c85b",
  "project_grid_pp_2_waiting_to_validate_projects": "da8f13f6-afdf-444a-bd91-98dfd7924c41",
  "project_grid_pp_2_validated_projects": "166a3df0-b133-4b2b-80dc-20e45c7fb031",
  "project_grid_pp_2_validated_revoked_projects_own": "00e46aee-09ff-423a-8a1b-3dacc4a88226",
  "project_grid_pp_2_rejected_projects_own": "e178f60e-ef66-4ba0-81fb-3afbc49cfcc7",
  "history_addon_4f31ccda-2486-4cc8-8c7b-647283e8f093": "745524f9-ee8d-4200-b767-cabb36a2d0e8",
  "new_project": "ee6dea12-94ce-4e88-ab39-a0b5183a761d",
  "add_project_bnt": "0110af34-bfd0-4ff5-b7f8-b821462f37ff",
  "pp_set_profile_to_project": "865c907e-61de-49b7-bc18-48a98fa47d8a",
  "pp_profile_project": "5d26570a-8b95-4f6b-9ade-b2f66d60d0fc",
  "save_project_form_pp_hedera": "ff8d0501-e896-4865-a58c-f89a77486ac8",
  "save_project_form_pp": "56f64879-69e6-45aa-8d7e-d6d99ade8ddc",
  "tool_19_project": "84a5d3b0-223d-4ee6-8e26-9dab6f3aa31c",
  "tool_19_project:get_tool_19": "4ccdf064-9966-46d9-84b3-56d97d68dac8",
  "tool_19_project:calc_tool_19": "4a91f065-e631-4c9a-bcdc-49d3170b0862",
  "tool_19_project:set_tool_19": "472bedb8-bfa9-4e97-9ad0-b253b30ad043",
  "tool_21_project": "12e30f68-e7b7-4427-aa9a-7d7f75c22900",
  "tool_21_project:get_tool_21": "b7984eab-893a-497f-ba73-3e6d4c0b7ce0",
  "tool_21_project:set_tool_21": "16f57f36-48db-4989-adb1-ddb276fc23f1",
  "tool_33_project": "dac9b2e4-cccd-4125-8e13-6bdb4c7d83f8",
  "tool_33_project:get_tool_33": "805c54af-bea3-4351-b07c-cf30af8b8ecb",
  "tool_33_project:calc_tool_33": "52974f49-497d-403b-9616-829da32590fe",
  "tool_33_project:set_tool_33": "caabfe37-e697-45d0-a4d8-506b5917560e",
  "tool_07_project": "a740d560-f27f-49b4-8484-c3c41acfc7a6",
  "tool_07_project:get_tool_07": "5c961ffe-a69a-40b7-bdbc-6d860b963dbd",
  "tool_07_project:calc_tool_07": "a1cc5525-6c22-4fda-8c95-1de20864ae40",
  "tool_07_project:set_tool_07": "88db65b4-38e1-4395-8f7a-f1f9b2c9cb0b",
  "calculate_project_fields": "48e0c5b9-2037-486f-9e62-a4a72a737174",
  "save_project_hedera": "913db0c4-9a5f-4880-89e7-199f0b9f4893",
  "save_project": "579b91a8-5843-475a-9df4-0cd62a193bd5",
  "new_report": "9a3f8b47-d5f2-4a30-ae30-8591325cec5e",
  "add_report_bnt": "3fce7522-70a5-4941-8885-70f889d76744",
  "save_report_form_pp_hedera": "5c3542f5-10c9-45e4-9e4f-f19337311450",
  "save_report_form_pp": "df353891-48aa-4e1d-a7f2-254b4eed845d",
  "tool_19_report": "a6142f4e-2833-4682-b90a-13e470fac3e5",
  "tool_19_report:get_tool_19": "f79682a5-ec6f-4880-bd16-5cf79a47646f",
  "tool_19_report:calc_tool_19": "199a7094-d437-4cd2-a868-28d89c5e4003",
  "tool_19_report:set_tool_19": "d34c7e63-362b-44c4-b09c-7e22ca0204b1",
  "tool_21_report": "682bceb0-aca3-459e-868b-5071769e0010",
  "tool_21_report:get_tool_21": "6adbef57-40b4-4605-a14a-396cff579f9b",
  "tool_21_report:set_tool_21": "e98d3b99-0336-493a-9437-d8c987a055af",
  "tool_33_report": "3015c9e1-0fd1-49dd-9e99-5e4360b03843",
  "tool_33_report:get_tool_33": "c0efbc98-7bd2-4ab2-99ea-156d38cb8582",
  "tool_33_report:calc_tool_33": "e7a04257-8aa2-46f0-a2de-356d7d4c0a23",
  "tool_33_report:set_tool_33": "855895bd-3cc4-4f2a-b56f-24d7c2903341",
  "tool_07_report": "ca9c2f91-0137-4bff-b4ae-122c779ebc8a",
  "tool_07_report:get_tool_07": "a85a2235-f39e-4661-9149-ce960a1232c1",
  "tool_07_report:calc_tool_07": "68e09c24-dda7-44dd-8cc5-cd99e97dc9bf",
  "tool_07_report:set_tool_07": "a4ebe74e-170f-4a95-a9c1-181382a8aeb4",
  "calculate_report_fields": "84efaf85-e863-4227-8398-36d502112803",
  "save_report_form_hedera": "a49433cd-9d55-4f89-9ec5-657389be864c",
  "save_report": "ee19553c-3125-4beb-b46f-4ff625c3bf61",
  "revoke_project_pp_btn": "85579c1a-da55-48ad-a158-9aea06cdf875",
  "revoke_project_pp": "a09c849a-09f6-45fb-90dc-38c8ae376cf4",
  "send_revoke_project_pp": "5549e44e-abd3-452a-8b94-199decf5d90e",
  "Monitoring_Reports_pp": "ad0195d8-f851-44ac-a6e0-a516e54aa0a8",
  "report_grid_pp": "b6b93966-5db4-4cf5-bf6c-04caa79efa56",
  "report_grid_pp_reports_verified": "ca93cd28-c825-42e4-8235-8b051b15fb50",
  "report_grid_pp_reports_waiting_for_verification": "7e58d3ff-2b5b-4dbc-82ab-0803b9b6a69e",
  "report_grid_pp_reports_rejected": "2f91b842-d120-47c0-8988-7d10898e0b9f",
  "report_by_project": "5eb3bd9f-508a-4f34-878a-caeec03f5cc6",
  "report_grid_pp_projects": "cc29afb5-44cc-4743-ab06-61ff78f2e367",
  "history_addon_1797768b-5cff-4271-a075-b47d47414f42": "a9fdaf82-c435-4624-9667-fcf7b8aeba77",
  "assign_vvb": "3764ff77-1d04-4685-83ff-4e40e943b02b",
  "assign_vvb_documents": "8060701d-0503-4322-8566-155156f657f3",
  "save_assign": "caa9d743-4e7c-4849-b180-6ded8ae547de",
  "revoke_report_pp_btn": "c1bfcfd6-ef0f-431a-a647-132fd8896aee",
  "revoke_report_pp": "b8e58e5c-168e-4dfa-ab57-22cc81709276",
  "send_revoke_report_pp": "c395bd76-2e9d-4201-9d8f-d8ee2b02eed3",
  "tokens": "9c69a673-99de-43ae-a3cb-1180e47a7419",
  "tokens_grid": "96b059a2-fd03-4af6-92bd-b8cf7cfc8cab",
  "tokens_grid_tokens": "36e9f937-a265-4133-9449-dbac4502a339",
  "save_rejected_pp": "1087c34d-4a52-4ddf-b608-02c6b1af23e6",
  "reassign_rejected_pp": "053512e1-ead8-423c-b643-ed2b823fb0e5",
  "save_reassigned_rejected_pp_hedera": "6970ea93-234d-46f6-86fb-b10841bdfeef",
  "save_reassigned_rejected_pp_db": "da466bdf-2cff-4732-a730-35af6a8681fc",
  "rewrite_pp": "fa15cdb3-13a9-40e8-b1b5-9fb40f4d3d61",
  "pp_rejected": "8e7ae449-f7a6-444d-9a4f-73bfeb63facc",
  "return_pp_btn": "17ced663-b5fb-4f05-bf6d-57617215adbd",
  "VVB": "65e4019a-cf24-4399-a036-b0736c46d147",
  "new_VVB": "7dccf230-bae6-4e28-a330-670b974e2c0e",
  "create_new_vvb": "4c06fc97-f3a8-429d-a1a2-e0c406f69ff0",
  "rejected_vvb_docs": "3aaeea11-d9f6-4bd6-b3ef-8ea34fb7c6c6",
  "save_new_approve_document_hedera": "54dc2457-6fbc-4c4f-b6ff-43c88f632795",
  "save_new_approve_document": "4e7c4631-3720-4e65-b8ca-a93b1814eb32",
  "wait_for_approve": "a46dd8eb-cba4-427e-bec7-529b5e6741ce",
  "update_approve_document_status": "f08795df-218f-44f1-8067-fec69e3439ca",
  "reassign_vc_vvb": "52a85cef-d272-4412-b178-fd70f164a789",
  "save_vc_vvb_hedera": "cfed0069-5303-422a-889b-e64728193bbf",
  "save_vc_vvb": "c97eb5df-9bc9-4f7a-8e9c-202aea60f3a8",
  "VVB_Header": "3e94224b-1271-4daf-a4c6-8dc83466fac3",
  "VVB Documents": "fe7f6083-df0d-4484-82c7-b2667a493ba3",
  "vvb_grid": "aef5a12f-2104-4363-a0b8-1de0d9cf2dfd",
  "vvb_grid_documents": "3a766cbe-64c4-4981-9ebf-00c0b91a2bf9",
  "vvb_grid_documents_rejected": "5e19229a-d4af-4d86-ad80-2a8d8f2f5337",
  "history_addon_eb2f56e0-f2d6-4288-bffe-ee08f89d60ab": "b59d9cda-644e-45b3-b2f8-ae35b1ac787b",
  "revoke_vvb_own_document_btn": "4f1c84fd-86ed-42c3-87b7-c76e054b63b8",
  "revoke_vvb_own_document": "16080f49-a76a-42c4-b914-426d5d0fe9e7",
  "save_revoked_vvb_own_document": "d27b561b-e5a2-4bf8-944e-8e977eea82ee",
  "return_vvb_to_request": "96a50c03-a562-41e6-801e-50b56a0f3bb5",
  "Monitoring_Reports_vvp": "bfa2879f-37a5-43f3-8046-8aae903628a1",
  "report_grid_vvb": "d29b2e1f-2176-4978-b189-c6dd30530f80",
  "report_grid_vvb_reports": "c446e056-3631-4092-ae6d-b7a432aacdc8",
  "report_grid_vvb_reports(approved)": "4c2e2765-cfc1-4fdc-b1b3-37ab0e7cd6e8",
  "report_grid_vvb_reports(rejected)": "a7aa15ce-f271-4e28-9812-82bfd7ef5aa7",
  "history_addon_a40f0da4-e982-481c-a23e-b86f7e76e770": "85b1cab4-ba3c-4e5f-a1da-7270082013c5",
  "approve_report_btn": "710427a1-85ce-4745-8e25-d87d6e0998f7",
  "mint_events": "9980537e-f8d8-4dc4-8d80-17b07891f0e7",
  "approve_report_status": "21e27f70-b4ab-4a65-8b60-0f351671bc2e",
  "reassign_report": "c3a99ced-d1bf-4282-ac9e-eda9764f4d3d",
  "set_relationships_to_report_vvb": "6b47557b-df51-44c5-be4e-5ad311944c77",
  "vvb_own_documents_relationships": "305c7fb4-50bb-4b1a-afa2-8beb0c9a7bec",
  "save_reassign_report_hedera": "c93e6a61-65f8-4d3d-9f67-bb1d2f48b8d2",
  "save_reassign_report": "df3240b6-112a-4138-8e00-801931583a28",
  "reject_report_status": "f4f1db2e-cd0f-4662-aa0f-a320a3296747",
  "reassign_rejected_report": "69dd0278-04c0-41bd-a950-fcd5dd1a23ee",
  "set_relationships_to_rejected_vvb": "54e168f0-3ebc-4af1-ac8e-ee89c3221542",
  "vvb_own_documents_relationships_rejected": "69e5d217-7c34-47f7-8dd1-26ad2dfafbf3",
  "save_reassign_rejected_report_hedera": "ccb1148f-7496-4739-b921-d0ddbc31d6a2",
  "save_reassign_rejected_report": "49e0ff43-aa52-44af-9bf2-5b3861c4144a",
  "revoke_reassign_report_btn": "783618ca-1efa-4d31-b42b-5dc09826cb38",
  "revoke_reassign_report": "66173aee-a100-43fd-b6df-71c9b4b97d6d",
  "save_revoke_reassign_report": "d8cdb61b-1ea6-4658-bf39-3f4db876247a",
  "update_approve_document_status_2": "fbe5b897-990e-4108-862b-e65356301617",
  "reassign_rejected_vvb": "69247fb9-8146-4c3f-89bb-56c562419a5e",
  "reassign_rejected_vvb_hedera": "b7c10574-8462-48ed-a099-3444e3af95a7",
  "save_reassign_rejected_vvb": "b1a12acd-9d41-4174-8f10-58bbe8aaeaa4",
  "rewrite_vvb": "5e1cdd40-8687-4279-bb27-479fa7ba1356",
  "vvb_rejected": "65d9c1f5-94af-45fd-b483-6fa33d92c4e8",
  "return_vvb_btn": "b81d06d9-35f8-476a-91d5-e86bd570ab68"
}

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 /api/v1/policies/{policyId}/blocks HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "f3b2a9c1e4d5678901234567",
  "blockType": "string",
  "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}
GET /api/v1/policies/{policyId}/blocks/{uuid} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "3e907e60-c851-4803-963d-193b85f2de15",
  "blockType": "interfaceContainerBlock",
  "actionType": "local",
  "readonly": false,
  "uiMetaData": {
    "type": "blank",
    "title": "Documents"
  },
  "blocks": [
    {
      "uiMetaData": {
        "fields": [
          {
            "title": "Owner",
            "name": "document.issuer",
            "tooltip": "",
            "type": "text"
          },
          {
            "title": "Text",
            "name": "document.credentialSubject.0.field0",
            "tooltip": "",
            "type": "text"
          },
          {
            "title": "Operation",
            "name": "",
            "tooltip": "",
            "type": "block",
            "action": "",
            "url": "",
            "dialogContent": "",
            "dialogClass": "",
            "dialogType": "",
            "bindBlock": "pp_revoke_profile",
            "bindGroup": "pp_documents"
          },
          {
            "title": "Operation",
            "name": "option.status",
            "tooltip": "",
            "type": "text",
            "action": "",
            "url": "",
            "dialogContent": "",
            "dialogClass": "",
            "dialogType": "",
            "bindBlock": "",
            "width": "250px"
          },
          {
            "title": "Document",
            "name": "document",
            "tooltip": "",
            "type": "button",
            "action": "dialog",
            "url": "",
            "dialogContent": "VC",
            "dialogClass": "",
            "dialogType": "json",
            "bindBlock": "",
            "content": "View Document",
            "uiClass": "link"
          }
        ]
      },
      "content": "interfaceDocumentsSourceBlock",
      "blockType": "interfaceDocumentsSourceBlock",
      "id": "0852f759-da33-4a64-950f-bde731c87112"
    },
    null,
    null,
    null
  ]
}

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}
POST /api/v1/policies/{policyId}/blocks/{uuid} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "id": "f3b2a9c1e4d5678901234567",
  "blockType": "string",
  "blocks": [
    {}
  ]
}

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
GET /api/v1/policies/{policyId}/mint-requests HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "amount": 100,
    "tokenId": "0.0.6046500",
    "tokenType": "FUNGIBLE",
    "target": "0.0.6046379",
    "vpMessageId": "1774449622.177353801",
    "isMintNeeded": false,
    "isTransferNeeded": false,
    "wasTransferNeeded": false,
    "memo": "f3b2a9c1e4d5678901234567",
    "metadata": null,
    "error": null,
    "processDate": "2026-03-25T14:40:28.853Z",
    "policyId": "69b83f18cd6b7c4adf4139bc",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "id": "69c3ff9de85d8b6ef99ef870"
  },
  {
    "amount": 50,
    "tokenId": "0.0.6046500",
    "tokenType": "NON_FUNGIBLE",
    "target": "0.0.6046379",
    "vpMessageId": "1774449700.283746192",
    "isMintNeeded": true,
    "isTransferNeeded": false,
    "wasTransferNeeded": false,
    "memo": "a1b2c3d4e5f6789012345678",
    "metadata": null,
    "error": "INSUFFICIENT_PAYER_BALANCE",
    "processDate": "2026-03-25T15:30:37.191Z",
    "policyId": "69b83f18cd6b7c4adf4139bc",
    "owner": "did:hedera:testnet:EthnLQfQnh8x6vKyegyekhy72oSAok6cH59pfVssKLDw_0.0.8200599",
    "id": "69c3ff9de85d8b6ef99ef871"
  }
]

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
POST /api/v1/policies/{policyId}/mint/{vpMessageId}/retry HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "warnings": []
}

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
POST /api/v1/policies/{policyId}/blocks/{uuid}/sync-events HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "result": "ok"
}

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
GET /api/v1/policies/{policyId}/tag/{tagName}/blocks HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "f3b2a9c1e4d5678901234567",
  "blockType": "string",
  "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
POST /api/v1/policies/{policyId}/tag/{tagName}/blocks HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "id": "f3b2a9c1e4d5678901234567",
  "blockType": "string",
  "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
POST /api/v1/policies/{policyId}/tag/{tagName}/blocks/sync-events HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "result": "ok"
}

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 /api/v1/policies/{policyId}/tag/{tagName} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "9db028d2-03ad-4d49-a178-cf4b67f8c147"
}

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
GET /api/v1/policies/{policyId}/blocks/{uuid}/parents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  "9ea132db-8394-4f3d-b622-5468458ccb94",
  "4e31d57a-4c68-49a3-bd32-3971df87bc4e",
  "ca3f48e7-46e0-4a9a-b808-0a8635950fc3",
  "eba62c72-d50d-4deb-92e1-efb320b999d8",
  "4b80c383-2354-47f6-b07d-c5e3b07b8533"
]

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
GET /api/v1/policies/blocks/about HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "result": "ok"
}

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
GET /api/v1/policies/{policyId}/export/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary

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
GET /api/v1/policies/{policyId}/export/message HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "69c38f81462c9c1141de2df2",
  "name": "CDM AMS-III.AR Policy",
  "description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
  "version": "1",
  "messageId": "1774427068.001165000",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161"
}

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
GET /api/v1/policies/{policyId}/export/xlsx HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary

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
201

Created policy.

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
post/policies/import/message
POST /api/v1/policies/import/message HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70

{
  "messageId": "text",
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "uuid": "f3b2a9c1e4d5678901234567",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "string",
    "creator": "string",
    "owner": "string",
    "topicId": "f3b2a9c1e4d5678901234567",
    "messageId": "f3b2a9c1e4d5678901234567",
    "codeVersion": "1.0.0",
    "createDate": "string",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "string",
    "tests": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "uuid": "f3b2a9c1e4d5678901234567",
        "name": "Test Name",
        "policyId": "f3b2a9c1e4d5678901234567",
        "owner": "string",
        "status": "string",
        "date": "string",
        "duration": 0,
        "progress": 0,
        "resultId": "f3b2a9c1e4d5678901234567",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  }
]

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/import/message
POST /api/v1/policies/push/import/message HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70

{
  "messageId": "text",
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
  "expectation": 17,
  "action": "Import policy message",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
POST /api/v1/policies/import/message/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70

{
  "messageId": "text",
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "policy": {
    "id": "69aeb71ef8c5b278e3bab4e5",
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "DRAFT",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "topicId": "0.0.6046379",
    "messageId": "1773670900.819264517",
    "codeVersion": "1.0.0",
    "createDate": "2026-03-03T17:25:53.312Z",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "tests": [
      {
        "id": "69aeb71ef8c5b278e3bab4e5",
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "name": "Test Name",
        "policyId": "69aeb71ef8c5b278e3bab4e5",
        "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
        "status": "NEW",
        "date": "2026-03-03T17:25:53.312Z",
        "duration": 0,
        "progress": 0,
        "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  },
  "messageId": "1773670900.819264517",
  "schemas": [
    {}
  ],
  "tags": [
    {}
  ],
  "moduleTopicId": "0.0.6046379"
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/import/message/preview
POST /api/v1/policies/push/import/message/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70

{
  "messageId": "text",
  "metadata": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}
{
  "taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
  "expectation": 4,
  "action": "Preview policy message",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
201

Created policy.

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
post/policies/import/file
POST /api/v1/policies/import/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "uuid": "f3b2a9c1e4d5678901234567",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "string",
    "creator": "string",
    "owner": "string",
    "topicId": "f3b2a9c1e4d5678901234567",
    "messageId": "f3b2a9c1e4d5678901234567",
    "codeVersion": "1.0.0",
    "createDate": "string",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "string",
    "tests": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "uuid": "f3b2a9c1e4d5678901234567",
        "name": "Test Name",
        "policyId": "f3b2a9c1e4d5678901234567",
        "owner": "string",
        "status": "string",
        "date": "string",
        "duration": 0,
        "progress": 0,
        "resultId": "f3b2a9c1e4d5678901234567",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  }
]

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
201

Created policy.

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
post/policies/import/file-metadata
POST /api/v1/policies/import/file-metadata HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 43

{
  "policyFile": "binary",
  "metadata": "binary"
}
[
  {
    "createDate": "2026-03-28T18:27:11.922Z",
    "uuid": "e6f6664e-1c89-4fa1-82c6-a8ba8e1b13c9",
    "name": "CDM AMS-III.AR Policy",
    "description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
    "status": "DRAFT",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417238",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417238",
    "policyRoles": [
      "Project Participant",
      "VVB"
    ],
    "policyGroups": [],
    "topicId": "0.0.8417334",
    "instanceTopicId": null,
    "policyTag": "Tag_1774722384863",
    "codeVersion": "1.5.1",
    "tools": [
      {
        "name": "Tool 33_modified",
        "version": "1.8.8",
        "topicId": "0.0.8417180",
        "messageId": "1774721982.046674000"
      },
      {
        "name": "Tool 19_modified",
        "version": "1.7.7",
        "topicId": "0.0.8417160",
        "messageId": "1774721939.774362000"
      },
      {
        "name": "Tool 21_modified",
        "version": "3",
        "topicId": "0.0.8417140",
        "messageId": "1774721890.353019000"
      },
      {
        "name": "Tool 07_modified",
        "version": "7",
        "topicId": "0.0.8360425",
        "messageId": "1774367941.594676930"
      }
    ],
    "userRoles": [
      "Administrator"
    ],
    "userGroups": [],
    "userRole": "Administrator",
    "userGroup": null,
    "tests": [],
    "id": "69c81d7fc778760bac62cf66"
  }
]

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/import/file
POST /api/v1/policies/push/import/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
{
  "taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
  "expectation": 15,
  "action": "Import policy file",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/import/file-metadata
POST /api/v1/policies/push/import/file-metadata HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 43

{
  "policyFile": "binary",
  "metadata": "binary"
}
{
  "taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
  "expectation": 15,
  "action": "Import policy file",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
POST /api/v1/policies/import/file/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
{
  "policy": {
    "id": "69aeb71ef8c5b278e3bab4e5",
    "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "DRAFT",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
    "topicId": "0.0.6046379",
    "messageId": "1773670900.819264517",
    "codeVersion": "1.0.0",
    "createDate": "2026-03-03T17:25:53.312Z",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
    "tests": [
      {
        "id": "69aeb71ef8c5b278e3bab4e5",
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "name": "Test Name",
        "policyId": "69aeb71ef8c5b278e3bab4e5",
        "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
        "status": "NEW",
        "date": "2026-03-03T17:25:53.312Z",
        "duration": 0,
        "progress": 0,
        "resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  },
  "messageId": "1773670900.819264517",
  "schemas": [
    {}
  ],
  "tags": [
    {}
  ],
  "moduleTopicId": "0.0.6046379"
}

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
201

Import result for the updated policy.

application/json
policyIdstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
post/policies/import/xlsx
POST /api/v1/policies/import/xlsx?policyId=69aeb71ef8c5b278e3bab4e5 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
{
  "policyId": "69c38f81462c9c1141de2df2",
  "errors": []
}

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
202

Successful operation.

application/json
taskIdstringRequired

Task Id

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

Expected count of task phases

Example: 8
actionstringRequired

Task action

Example: Create tool
userIdstringRequired

User Id

Example: 69bcfd90c98df6ceb05e8a78
post/policies/push/import/xlsx
POST /api/v1/policies/push/import/xlsx?policyId=69aeb71ef8c5b278e3bab4e5 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
{
  "taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
  "expectation": 15,
  "action": "Import policy file",
  "userId": "69c2cfc021d39e7b6d15e236"
}

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
POST /api/v1/policies/import/xlsx/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8

"binary"
{
  "schemas": [
    {
      "iri": "#60283eee-79a8-46ef-adf3-79775ea1192c",
      "name": "Monitoring Report",
      "description": "Monitoring Report",
      "version": "",
      "status": "DRAFT"
    }
  ],
  "tools": [
    {
      "uuid": "1706867530.884259218",
      "name": "1706867530.884259218",
      "messageId": "1706867530.884259218",
      "worksheet": "Combined Margin. Is gri (tool)"
    }
  ],
  "errors": [
    {
      "type": "error",
      "text": "Failed to parse variables.",
      "message": "Error: G5: Type not found.",
      "worksheet": "Monitoring Report"
    }
  ]
}

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 /api/v1/policies/{policyId}/dry-run/users HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "active": true,
    "did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "username": "Administrator",
    "hederaAccountId": "0.0.6046379",
    "id": "69c83b92cebecbe1c023104d"
  },
  {
    "active": false,
    "did": "did:hedera:testnet:DoabcYQtNM3kqxAv6DiWadYRF6LYNqGX85ZtZFZibjTA_0.0.8417999",
    "username": "Virtual User 2",
    "hederaAccountId": "0.0.1774730673941",
    "id": "69c83db1cebecbe1c0231117"
  }
]

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}
GET /api/v1/policies/{policyId}/dry-run/user/{did} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "createDate": "2026-03-28T20:47:45.739Z",
  "updateDate": "2026-03-28T20:47:45.739Z",
  "dryRunId": "69c83b44cebecbe1c0231007",
  "dryRunClass": "VirtualUsers",
  "systemMode": false,
  "status": "NEW",
  "signature": 0,
  "option": {
    "status": "NEW"
  },
  "hederaStatus": "NEW",
  "uuid": "0ff5fb0d-98dd-4289-8369-6db2b84517f1",
  "entity": "NONE",
  "iri": "0ff5fb0d-98dd-4289-8369-6db2b84517f1",
  "readonly": false,
  "system": false,
  "active": false,
  "codeVersion": "1.0.0",
  "did": "did:hedera:testnet:6K6LvvNnSQ1RboTi23rsXuH3guur1qUKxWt2zPhPdiNp_0.0.8417999",
  "username": "Virtual User 3",
  "hederaAccountId": "0.0.1774730865730",
  "isMintNeeded": true,
  "isTransferNeeded": false,
  "wasTransferNeeded": false,
  "id": "69c83e71cebecbe1c0231182"
}

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
201

Created virtual user.

application/json
usernamestringRequiredExample: Virtual User 3
didstringRequiredExample: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599
hederaAccountIdstringRequiredExample: 0.0.1774730865730
activebooleanRequiredExample: false
post/policies/{policyId}/dry-run/user
POST /api/v1/policies/{policyId}/dry-run/user HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Api-Version: 2
Content-Type: application/json
Accept: */*
Content-Length: 72

{
  "savepointIds": [
    "67c85d2fcebecbe1c0231522",
    "67c85d35cebecbe1c0231523"
  ]
}
{
  "username": "Virtual User 3",
  "did": "did:hedera:testnet:6K6LvvNnSQ1RboTi23rsXuH3guur1qUKxWt2zPhPdiNp_0.0.8417999",
  "hederaAccountId": "0.0.1774730865730",
  "active": false
}

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
POST /api/v1/policies/{policyId}/dry-run/login HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 85

{
  "did": "did:hedera:testnet:9VywBBXBtcV2RW7Whak6aJ9GR7PsKsiJaymAeWnBVvUB_0.0.8417999"
}
[
  {
    "active": false,
    "did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "username": "Administrator",
    "hederaAccountId": "0.0.6046379",
    "id": "69c83b92cebecbe1c023104d"
  },
  {
    "active": true,
    "did": "did:hedera:testnet:9VywBBXBtcV2RW7Whak6aJ9GR7PsKsiJaymAeWnBVvUB_0.0.8417999",
    "username": "Virtual User 1",
    "hederaAccountId": "0.0.1774731899661",
    "id": "69c8427bcebecbe1c02311eb"
  }
]

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
201

Dry-run execution result for the requested block.

application/json
logsstring[]Required

Logs

errorsstring[]Required

Errors

inputobject[]Required

Input documents

outputobject[]Required

Output documents

post/policies/{policyId}/dry-run/block
POST /api/v1/policies/{policyId}/dry-run/block HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 411

{
  "block": {
    "id": "f6c7c294-24a2-4f60-a131-03d023bda7c7",
    "blockType": "policyRolesBlock",
    "defaultActive": true,
    "permissions": [
      "NO_ROLE"
    ],
    "onErrorAction": "no-action",
    "uiMetaData": {
      "title": "Registration",
      "description": "Choose a role"
    },
    "roles": [
      "Registrant"
    ],
    "tag": "choose_role",
    "children": [],
    "events": [],
    "artifacts": []
  },
  "data": {
    "type": "json",
    "input": "RunEvent",
    "output": "CreateGroup",
    "document": {
      "role": "Registrant"
    }
  }
}
{
  "input": {
    "documents": [
      {
        "policyId": "69aeb71ef8c5b278e3bab4e5",
        "tag": "test",
        "hash": "",
        "document": {
          "id": "urn:uuid:00000000-0000-0000-0000-000000000000",
          "type": [
            "VerifiableCredential"
          ],
          "issuer": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
          "issuanceDate": "2026-03-03T17:25:53.312Z",
          "@context": [
            "https://www.w3.org/2018/credentials/v1"
          ],
          "credentialSubject": [
            {
              "role": "Registrant"
            }
          ],
          "proof": {
            "type": "Ed25519Signature2018",
            "created": "2026-03-03T17:25:53.312Z",
            "verificationMethod": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key",
            "proofPurpose": "assertionMethod",
            "jws": "..."
          }
        },
        "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
        "group": null,
        "hederaStatus": "NEW",
        "signature": 0
      }
    ]
  },
  "output": [],
  "errors": [],
  "logs": [
    "Building...",
    "Done",
    "Running..."
  ]
}

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 /api/v1/policies/{policyId}/dry-run/block/{tagName}/history HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "createDate": "2026-03-29T06:49:28.919Z",
    "updateDate": "2026-03-29T06:49:28.929Z",
    "dryRunId": "69c83b44cebecbe1c0231007",
    "dryRunClass": "VcDocumentCollection",
    "systemMode": false,
    "owner": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
    "hash": "FJDt4cKy7t8MdGg9b7U2RB29N4Rk3kUUBFSTT6RuQMR4",
    "document": {
      "id": "urn:uuid:d7c5e170-a1fe-4e85-b280-ff2c697104ad",
      "type": [
        "VerifiableCredential"
      ],
      "issuer": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
      "issuanceDate": "2026-03-29T06:49:28.123Z",
      "@context": [
        "https://www.w3.org/2018/credentials/v1",
        "ipfs://bafkreib2ey4mdnzp7gkgj5ecldu2a46ulkwzvnwzec3xjpsubcwua6rwce"
      ],
      "credentialSubject": [
        {
          "role": "Registrant",
          "userId": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
          "policyId": "69c83b44cebecbe1c0231007",
          "groupOwner": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
          "groupName": "Registrant",
          "@context": [
            "ipfs://bafkreib2ey4mdnzp7gkgj5ecldu2a46ulkwzvnwzec3xjpsubcwua6rwce"
          ],
          "id": "urn:uuid:d7c5e170-a1fe-4e85-b280-ff2c697104ad",
          "type": "UserRole&1.0.0"
        }
      ],
      "proof": {
        "type": "Ed25519Signature2018",
        "created": "2026-03-29T06:49:28Z",
        "verificationMethod": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999#did-root-key",
        "proofPurpose": "assertionMethod",
        "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..0AG-g08EnArujEU_Q5D0dJH19rlprc0fKGiIoG3FKGNuBzlT8Ro-Oj9G10njLdHnnHGxsyrm4sR_GrxvtS78Cw"
      }
    },
    "documentFileId": "69c8cb78bc0d9cc64682b7d4",
    "status": "NEW",
    "signature": 0,
    "type": "user-role",
    "policyId": "69c83b44cebecbe1c0231007",
    "tag": "choose_role",
    "messageId": "1774.766968878",
    "topicId": "0.0.1774730127150",
    "relationships": null,
    "option": {
      "status": "NEW"
    },
    "hederaStatus": "NEW",
    "schema": "#UserRole&1.0.0",
    "uuid": "4fa46122-c52a-45b4-983c-84c7d0be64d9",
    "entity": "NONE",
    "iri": "4fa46122-c52a-45b4-983c-84c7d0be64d9",
    "readonly": false,
    "system": false,
    "active": false,
    "codeVersion": "1.0.0",
    "group": null,
    "isMintNeeded": true,
    "isTransferNeeded": false,
    "wasTransferNeeded": false,
    "relayerAccount": null,
    "tableFileIds": [],
    "id": "69c8cb78bc0d9cc64682b7d1"
  }
]

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
GET /api/v1/policies/{policyId}/savepoints HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "createDate": "2026-03-29T06:57:06.670Z",
      "updateDate": "2026-03-29T06:57:06.670Z",
      "policyId": "69c83b44cebecbe1c0231007",
      "name": "Third (last) savepoint",
      "parentSavepointId": "69c8cd3a81910b160912c315",
      "savepointPath": [
        "69c8cd3481910b160912c300",
        "69c8cd3a81910b160912c315",
        "69c8cd4281910b160912c328"
      ],
      "isDeleted": false,
      "isCurrent": true,
      "id": "69c8cd4281910b160912c328"
    },
    {
      "createDate": "2026-03-29T06:56:58.465Z",
      "updateDate": "2026-03-29T06:56:58.465Z",
      "policyId": "69c83b44cebecbe1c0231007",
      "name": "Second savepoint",
      "parentSavepointId": "69c8cd3481910b160912c300",
      "savepointPath": [
        "69c8cd3481910b160912c300",
        "69c8cd3a81910b160912c315"
      ],
      "isDeleted": false,
      "isCurrent": false,
      "id": "69c8cd3a81910b160912c315"
    },
    {
      "createDate": "2026-03-29T06:56:52.583Z",
      "updateDate": "2026-03-29T06:56:52.583Z",
      "policyId": "69c83b44cebecbe1c0231007",
      "name": "First savepoint",
      "parentSavepointId": null,
      "savepointPath": [
        "69c8cd3481910b160912c300"
      ],
      "isDeleted": false,
      "isCurrent": false,
      "id": "69c8cd3481910b160912c300"
    }
  ]
}

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
POST /api/v1/policies/{policyId}/savepoints HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 79

{
  "name": "Before publishing changes",
  "savepointPath": [
    "root-block",
    "sub-block"
  ]
}
{
  "savepoint": {
    "createDate": "2026-03-29T06:59:01.000Z",
    "updateDate": "2026-03-29T06:59:01.000Z",
    "policyId": "69c83b44cebecbe1c0231007",
    "name": "Third (last) savepoint",
    "parentSavepointId": "69c8cd3a81910b160912c315",
    "savepointPath": [
      "69c8cd3481910b160912c300",
      "69c8cd3a81910b160912c315",
      "69c8cd4281910b160912c328"
    ],
    "isDeleted": false,
    "isCurrent": true,
    "id": "69c8cd5081910b160912c33a"
  }
}

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
GET /api/v1/policies/{policyId}/savepoints/count HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "count": 5
}

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}
PUT /api/v1/policies/{policyId}/savepoints/{savepointId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "savepoint": {
    "createDate": "2026-03-29T06:59:01.000Z",
    "updateDate": "2026-03-29T06:59:01.000Z",
    "policyId": "69c83b44cebecbe1c0231007",
    "name": "Third (last) savepoint",
    "parentSavepointId": "69c8cd3a81910b160912c315",
    "savepointPath": [
      "69c8cd3481910b160912c300",
      "69c8cd3a81910b160912c315",
      "69c8cd4281910b160912c328"
    ],
    "isDeleted": false,
    "isCurrent": true,
    "id": "69c8cd5081910b160912c33a"
  }
}

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}
PATCH /api/v1/policies/{policyId}/savepoints/{savepointId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34

{
  "name": "Updated checkpoint name"
}
{
  "savepoint": {
    "createDate": "2026-03-29T06:59:01.000Z",
    "updateDate": "2026-03-29T06:59:01.000Z",
    "policyId": "69c83b44cebecbe1c0231007",
    "name": "Third (last) savepoint",
    "parentSavepointId": "69c8cd3a81910b160912c315",
    "savepointPath": [
      "69c8cd3481910b160912c300",
      "69c8cd3a81910b160912c315",
      "69c8cd4281910b160912c328"
    ],
    "isDeleted": false,
    "isCurrent": true,
    "id": "69c8cd5081910b160912c33a"
  }
}

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
POST /api/v1/policies/{policyId}/savepoints/delete HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 79

{
  "savepointIds": [
    "69aeb71ef8c5b278e3bab4e5"
  ],
  "skipCurrentSavepointGuard": false
}
{
  "hardDeletedIds": []
}

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
POST /api/v1/policies/{policyId}/dry-run/restart HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "createDate": "2026-03-29T08:22:18.508Z",
    "uuid": "eaee9611-4f1a-44e4-93f0-7fc7c81d9b9f",
    "name": "CDM AMS-III.AR Policy",
    "version": "Dry Run",
    "description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
    "status": "DRY-RUN",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "topicId": "0.0.8425763",
    "policyTag": "Tag_1774772501756",
    "codeVersion": "1.5.1",
    "id": "69c8e13a81910b160912c709"
  },
  {
    "createDate": "2026-03-29T08:22:19.897Z",
    "uuid": "de1b156b-26fd-48d2-b7f3-b237bde9e2d3",
    "name": "CDM AMS-II.J Policy",
    "version": "Dry Run",
    "description": "Demand-Side Activities for Efficient Lighting Technologies",
    "status": "DRY-RUN",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "topicId": "0.0.8425767",
    "policyTag": "Tag_1774772516671",
    "codeVersion": "1.5.1",
    "id": "69c8e13b81910b160912c74a"
  },
  {
    "createDate": "2026-03-29T08:24:59.784Z",
    "uuid": "f934eef5-59c7-4cab-b997-1be01d478084",
    "name": "CDM AMS-III.BB",
    "description": "CDM AMS-III.BB. policy",
    "status": "DRAFT",
    "creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "topicId": "0.0.8425809",
    "policyTag": "Tag_1774772670088",
    "codeVersion": "1.5.1",
    "id": "69c8e1db81910b160912c8ca"
  }
]

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 /api/v1/policies/{policyId}/dry-run/transactions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "createDate": "2026-03-29T08:37:56.615Z",
    "type": "TopicMessageSubmitTransaction",
    "hederaAccountId": "0.0.1774773370443",
    "id": "69c8e4e481910b160912c8f1"
  },
  {
    "createDate": "2026-03-29T08:37:53.627Z",
    "type": "TopicMessageSubmitTransaction",
    "hederaAccountId": "0.0.1774773370443",
    "id": "69c8e4e181910b160912c8f0"
  }
]

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 /api/v1/policies/{policyId}/dry-run/artifacts HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "createDate": "2026-03-29T08:37:56.683Z",
    "updateDate": "2026-03-29T08:37:56.694Z",
    "dryRunId": "69c8e13b81910b160912c74a",
    "dryRunClass": "VcDocumentCollection",
    "systemMode": false,
    "owner": "did:hedera:testnet:CeNjDpdEQUizTejk8FhX9uzyTg3zUjp2GCk23NsETJPG_0.0.8417999",
    "hash": "J1jAp7nAXQvV1qsZ4dAg64w6rYFt3AXBnRb6c94WgnxL",
    "document": {},
    "documentFileId": "69c8e4e43dcb07295bf82382",
    "documentFields": [],
    "status": "NEW",
    "signature": 0,
    "type": "project",
    "policyId": "69c8e13b81910b160912c74a",
    "tag": "save_project",
    "messageId": "1774.773476613",
    "startMessageId": "1774.773476613",
    "topicId": "0.0.1774773413061",
    "relationships": [],
    "option": {},
    "hederaStatus": "ISSUE",
    "schema": "#f69fb091-6a2c-4883-87fb-b571f32d0459",
    "accounts": {},
    "tokens": null,
    "uuid": "01372cfa-5e92-44c2-8c26-a87f832f5255",
    "entity": "NONE",
    "iri": "01372cfa-5e92-44c2-8c26-a87f832f5255",
    "readonly": false,
    "system": false,
    "active": false,
    "codeVersion": "1.0.0",
    "group": "00546354-dc9b-4d68-9d02-e58e62a9c7be",
    "messageHash": "CRxH77p9bmY9rxmKG38ja8KHDnpw9Vzb9ti163uZjW3U",
    "messageIds": [],
    "isMintNeeded": true,
    "isTransferNeeded": false,
    "wasTransferNeeded": false,
    "edited": false,
    "relayerAccount": "0.0.1774773370443",
    "tableFileIds": [],
    "id": "69c8e4e43dcb07295bf8237f"
  }
]

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 /api/v1/policies/{policyId}/dry-run/ipfs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "createDate": "2026-03-29T08:22:32.046Z",
    "documentURL": "66a64d1c-6c20-4465-bf00-0f28d1379acc",
    "id": "69c8e14881910b160912c786"
  }
]

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
GET /api/v1/policies/{policyId}/dry-run/mock/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "enabled": true,
  "blocks": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "enabled": true
    }
  ]
}

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
POST /api/v1/policies/{policyId}/dry-run/mock/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 90

{
  "enabled": true,
  "blocks": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "enabled": true
    }
  ]
}
{
  "enabled": true,
  "blocks": [
    {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "enabled": true
    }
  ]
}

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
GET /api/v1/policies/{policyId}/dry-run/mock/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ipfs": [
    {
      "cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "content": "text"
    }
  ],
  "topics": [
    {
      "topicId": "0.0.6046379",
      "topic": {
        "id": "0.0.6046379",
        "memo": "memo",
        "payer_account_id": "0.0.6046379",
        "topic_id": "0.0.6046379"
      },
      "messages": [
        {
          "consensus_timestamp": "1773670900.819264517",
          "id": "1773670900.819264517",
          "message": "base64",
          "payer_account_id": "0.0.6046379",
          "sequence_number": "0.0.6046379",
          "topicId": "0.0.6046379",
          "topic_id": "0.0.6046379"
        }
      ]
    }
  ],
  "tokens": [
    {
      "id": "0.0.6046379",
      "token_id": "0.0.6046379",
      "treasury_account_id": "0.0.6046379",
      "name": "Name",
      "symbol": "Symbol",
      "decimals": 1,
      "type": "FUNGIBLE_COMMON",
      "admin_key": true,
      "freeze_key": true,
      "kyc_key": true,
      "supply_key": true,
      "wipe_key": true
    }
  ],
  "api": [
    {
      "request": {
        "method": "GET",
        "responseType": "JSON",
        "url": "http://localhost:4200/"
      },
      "response": "JSON"
    }
  ],
  "users": [
    {
      "username": "username",
      "did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "hederaAccountId": "0.0.6046379",
      "hederaAccountKey": "text",
      "document": {
        "id": "text",
        "@context": [
          "text"
        ],
        "alsoKnownAs": [
          "text"
        ],
        "controller": [
          "text"
        ],
        "verificationMethod": [
          {}
        ],
        "authentication": [
          {}
        ],
        "assertionMethod": [
          {}
        ],
        "keyAgreement": [
          {}
        ],
        "capabilityInvocation": [
          {}
        ],
        "capabilityDelegation": [
          {}
        ],
        "service": [
          {}
        ]
      }
    }
  ]
}

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
POST /api/v1/policies/{policyId}/dry-run/mock/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1216

{
  "ipfs": [
    {
      "cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "content": "text"
    }
  ],
  "topics": [
    {
      "topicId": "0.0.6046379",
      "topic": {
        "id": "0.0.6046379",
        "memo": "memo",
        "payer_account_id": "0.0.6046379",
        "topic_id": "0.0.6046379"
      },
      "messages": [
        {
          "consensus_timestamp": "1773670900.819264517",
          "id": "1773670900.819264517",
          "message": "base64",
          "payer_account_id": "0.0.6046379",
          "sequence_number": "0.0.6046379",
          "topicId": "0.0.6046379",
          "topic_id": "0.0.6046379"
        }
      ]
    }
  ],
  "tokens": [
    {
      "id": "0.0.6046379",
      "token_id": "0.0.6046379",
      "treasury_account_id": "0.0.6046379",
      "name": "Name",
      "symbol": "Symbol",
      "decimals": 1,
      "type": "FUNGIBLE_COMMON",
      "admin_key": true,
      "freeze_key": true,
      "kyc_key": true,
      "supply_key": true,
      "wipe_key": true
    }
  ],
  "api": [
    {
      "request": {
        "method": "GET",
        "responseType": "JSON",
        "url": "http://localhost:4200/"
      },
      "response": "JSON"
    }
  ],
  "users": [
    {
      "username": "username",
      "did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "hederaAccountId": "0.0.6046379",
      "hederaAccountKey": "text",
      "document": {
        "id": "text",
        "@context": [
          "text"
        ],
        "alsoKnownAs": [
          "text"
        ],
        "controller": [
          "text"
        ],
        "verificationMethod": [
          {}
        ],
        "authentication": [
          {}
        ],
        "assertionMethod": [
          {}
        ],
        "keyAgreement": [
          {}
        ],
        "capabilityInvocation": [
          {}
        ],
        "capabilityDelegation": [
          {}
        ],
        "service": [
          {}
        ]
      }
    }
  ]
}
{
  "ipfs": [
    {
      "cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "content": "text"
    }
  ],
  "topics": [
    {
      "topicId": "0.0.6046379",
      "topic": {
        "id": "0.0.6046379",
        "memo": "memo",
        "payer_account_id": "0.0.6046379",
        "topic_id": "0.0.6046379"
      },
      "messages": [
        {
          "consensus_timestamp": "1773670900.819264517",
          "id": "1773670900.819264517",
          "message": "base64",
          "payer_account_id": "0.0.6046379",
          "sequence_number": "0.0.6046379",
          "topicId": "0.0.6046379",
          "topic_id": "0.0.6046379"
        }
      ]
    }
  ],
  "tokens": [
    {
      "id": "0.0.6046379",
      "token_id": "0.0.6046379",
      "treasury_account_id": "0.0.6046379",
      "name": "Name",
      "symbol": "Symbol",
      "decimals": 1,
      "type": "FUNGIBLE_COMMON",
      "admin_key": true,
      "freeze_key": true,
      "kyc_key": true,
      "supply_key": true,
      "wipe_key": true
    }
  ],
  "api": [
    {
      "request": {
        "method": "GET",
        "responseType": "JSON",
        "url": "http://localhost:4200/"
      },
      "response": "JSON"
    }
  ],
  "users": [
    {
      "username": "username",
      "did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "hederaAccountId": "0.0.6046379",
      "hederaAccountKey": "text",
      "document": {
        "id": "text",
        "@context": [
          "text"
        ],
        "alsoKnownAs": [
          "text"
        ],
        "controller": [
          "text"
        ],
        "verificationMethod": [
          {}
        ],
        "authentication": [
          {}
        ],
        "assertionMethod": [
          {}
        ],
        "keyAgreement": [
          {}
        ],
        "capabilityInvocation": [
          {}
        ],
        "capabilityDelegation": [
          {}
        ],
        "service": [
          {}
        ]
      }
    }
  ]
}

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
POST /api/v1/policies/{policyId}/dry-run/mock/import HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"
{}

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
GET /api/v1/policies/{policyId}/dry-run/mock/export HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

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
POST /api/v1/policies/{policyId}/dry-run/mock/request/api HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 63

{
  "type": "GET",
  "url": "http://localhost/",
  "body": {},
  "headers": {}
}
{}

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
POST /api/v1/policies/{policyId}/dry-run/mock/request/ipfs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147"
}
binary

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
GET /api/v1/policies/{policyId}/multiple HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "uuid": null,
  "instanceTopicId": "0.0.8425949",
  "mainPolicyTopicId": "0.0.8425949",
  "synchronizationTopicId": "0.0.8425951",
  "owner": "did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999",
  "type": null
}

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
POST /api/v1/policies/{policyId}/multiple HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 74

{
  "mainPolicyTopicId": "0.0.8425949",
  "synchronizationTopicId": "0.0.8425951"
}
{
  "createDate": "2026-03-29T09:02:23.828Z",
  "updateDate": "2026-03-29T09:02:23.828Z",
  "uuid": "1f847dbc-c9ef-41e7-a453-558f3b368aca",
  "instanceTopicId": "0.0.8425949",
  "mainPolicyTopicId": "0.0.8425949",
  "synchronizationTopicId": "0.0.8425951",
  "owner": "did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999",
  "type": "Main",
  "user": "0.0.6046457",
  "policyOwner": "0.0.6046379",
  "id": "69c8ea9881910b160912cf0e"
}

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
201

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
POST /api/v1/policies/{policyId}/test HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 20

{
  "tests": [
    "binary"
  ]
}
[
  {
    "createDate": "2026-03-29T09:24:23.762Z",
    "updateDate": "2026-03-29T09:24:23.762Z",
    "uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
    "name": "CDM_AMS_III",
    "policyId": "69c8efa181910b160912d0f4",
    "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
    "status": "New",
    "date": null,
    "result": null,
    "resultId": null,
    "progress": 0,
    "error": null,
    "duration": 57359,
    "file": "69c8efc781910b160912d165",
    "id": "69c8efc781910b160912d167"
  }
]

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}
GET /api/v1/policies/{policyId}/test/{testId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "createDate": "2026-03-29T09:24:23.762Z",
  "updateDate": "2026-03-29T09:27:29.815Z",
  "uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
  "name": "CDM_AMS_III",
  "policyId": "69c8efa181910b160912d0f4",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
  "status": "Failure",
  "date": "2026-03-29T09:26:29.897Z",
  "result": {
    "info": {
      "documents": 5,
      "tokens": 0
    },
    "total": 83,
    "details": {
      "documents": [],
      "recorded": []
    },
    "documents": []
  },
  "resultId": null,
  "progress": null,
  "error": null,
  "duration": 57359,
  "file": "69c8efc781910b160912d165",
  "id": "69c8efc781910b160912d167"
}

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}
DELETE /api/v1/policies/{policyId}/test/{testId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
true

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
POST /api/v1/policies/{policyId}/test/{testId}/start HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "createDate": "2026-03-29T09:24:23.762Z",
  "updateDate": "2026-03-29T09:24:23.762Z",
  "uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
  "name": "CDM_AMS_III",
  "policyId": "69c8efa181910b160912d0f4",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
  "status": "Running",
  "date": "2026-03-29T09:26:29.897Z",
  "result": null,
  "resultId": "96374bd4-5ab4-4993-8e66-c192eb79204f",
  "progress": 0,
  "error": null,
  "duration": 57359,
  "file": "69c8efc781910b160912d165",
  "id": "69c8efc781910b160912d167"
}

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
POST /api/v1/policies/{policyId}/test/{testId}/stop HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "createDate": "2026-03-29T09:24:23.762Z",
  "updateDate": "2026-03-29T09:24:23.762Z",
  "uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
  "name": "CDM_AMS_III",
  "policyId": "69c8efa181910b160912d0f4",
  "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
  "status": "Stopped",
  "date": "2026-03-29T09:26:29.897Z",
  "result": null,
  "resultId": null,
  "progress": 0,
  "error": null,
  "duration": 57359,
  "file": "69c8efc781910b160912d165",
  "id": "69c8efc781910b160912d167"
}

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 /api/v1/policies/{policyId}/test/{testId}/details HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "left": {},
  "right": {},
  "total": 83,
  "documents": {
    "columns": [],
    "report": []
  }
}

Get methodology categories.

get

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

Responses
202

Successful operation.

application/json
idstringRequiredExample: 69aeb71ef8c5b278e3bab4e5
namestringRequiredExample: Large-Scale
typestringRequiredExample: PROJECT_SCALE
get/policies/methodologies/categories
GET /api/v1/policies/methodologies/categories HTTP/1.1
Accept: */*
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "name": "Large-Scale",
    "type": "PROJECT_SCALE"
  }
]

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
202

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
post/policies/methodologies/search
POST /api/v1/policies/methodologies/search HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 84

{
  "categoryIds": [
    "69aeb71ef8c5b278e3bab4e5",
    "69b8115f3dc0fa022156fb89"
  ],
  "text": "CDM"
}
[
  {
    "id": "f3b2a9c1e4d5678901234567",
    "uuid": "f3b2a9c1e4d5678901234567",
    "name": "Policy name",
    "description": "Description",
    "topicDescription": "Description",
    "policyTag": "Tag",
    "status": "string",
    "creator": "string",
    "owner": "string",
    "topicId": "f3b2a9c1e4d5678901234567",
    "messageId": "f3b2a9c1e4d5678901234567",
    "codeVersion": "1.0.0",
    "createDate": "string",
    "version": "1.0.0",
    "originalChanged": true,
    "config": {},
    "userRole": "Installer",
    "userRoles": [
      "Installer"
    ],
    "userGroup": {
      "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
      "role": "Installer",
      "groupLabel": "Label",
      "groupName": "Name",
      "active": true
    },
    "userGroups": [
      {
        "uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
        "role": "Installer",
        "groupLabel": "Label",
        "groupName": "Name",
        "active": true
      }
    ],
    "policyRoles": [
      "Registrant"
    ],
    "policyNavigation": [
      {
        "role": "Registrant",
        "steps": [
          {
            "block": "Block tag",
            "level": 1,
            "name": "Step name"
          }
        ]
      }
    ],
    "policyTopics": [
      {
        "name": "Project",
        "description": "Project",
        "memoObj": "topic",
        "static": false,
        "type": "any"
      }
    ],
    "policyTokens": [
      {
        "tokenName": "Token name",
        "tokenSymbol": "Token symbol",
        "tokenType": "non-fungible",
        "decimals": "",
        "changeSupply": true,
        "enableAdmin": true,
        "enableFreeze": true,
        "enableKYC": true,
        "enableWipe": true,
        "templateTokenTag": "token_template_0"
      }
    ],
    "policyGroups": [
      {
        "name": "Group name",
        "creator": "Registrant",
        "groupAccessType": "Private",
        "groupRelationshipType": "Multiple",
        "members": [
          "Registrant"
        ]
      }
    ],
    "categories": [
      "string"
    ],
    "projectSchema": "string",
    "tests": [
      {
        "id": "f3b2a9c1e4d5678901234567",
        "uuid": "f3b2a9c1e4d5678901234567",
        "name": "Test Name",
        "policyId": "f3b2a9c1e4d5678901234567",
        "owner": "string",
        "status": "string",
        "date": "string",
        "duration": 0,
        "progress": 0,
        "resultId": "f3b2a9c1e4d5678901234567",
        "result": {}
      }
    ],
    "ignoreRules": [
      {
        "code": "string",
        "blockType": "string",
        "property": "string",
        "contains": "string",
        "severity": "warning"
      }
    ]
  }
]

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
POST /api/v1/policies/{policyId}/create-new-version-vc-document HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 55

{
  "documentId": "67b8f31d2a26f8be2a9f0be9",
  "document": {}
}
{
  "ok": true
}

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}
GET /api/v1/policies/{policyId}/get-all-version-vc-documents/{documentId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "createDate": "2026-03-29T13:20:00.178Z",
    "updateDate": "2026-03-29T13:20:00.190Z",
    "hash": "aZFSzKANCaBqpZb78BWgi9UW2X5UswnH7j1WeJMaenr",
    "hederaStatus": "ISSUE",
    "signature": 0,
    "type": "approved_project",
    "policyId": "69c9207581910b160912d330",
    "recordActionId": "427a6a9b-fc67-4418-8d87-0eb1a05fd8e3",
    "tag": "sr_save_reassigned_validated_project_db",
    "schema": "#b4bccf9f-2f54-49b6-bfa8-4fa979dcaa7b&1.0.0",
    "option": {},
    "relationships": [],
    "owner": "did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999",
    "group": "3c869012-3832-4256-9f6a-84ef3d0bf4a3",
    "accounts": {},
    "topicId": "0.0.8427267",
    "messageId": "1774790398.768848833",
    "startMessageId": "1774789024.639432984",
    "messageHash": "Gv9gCggtuRR7pMCLwUvYcfPZGoXUsiCfwkJD17WLis4N",
    "messageIds": [],
    "document": {},
    "documentFileId": "69c92700e78ca16d4322acdc",
    "documentFields": [],
    "edited": false,
    "relayerAccount": "0.0.6046457",
    "tableFileIds": [],
    "oldVersion": false,
    "initId": "1774789048.788625000",
    "id": "69c92700e78ca16d4322acd9"
  },
  {
    "createDate": "2026-03-29T12:57:30.831Z",
    "updateDate": "2026-03-29T13:25:28.818Z",
    "hash": "BXjpB77tRLL7gUFZNGedUMWCts97U5x5kcYoGXdTB4sB",
    "hederaStatus": "ISSUE",
    "signature": 0,
    "type": "approved_project",
    "policyId": "69c9207581910b160912d330",
    "recordActionId": "427a6a9b-fc67-4418-8d87-0eb1a05fd8e3",
    "tag": "sr_save_reassigned_validated_project_db",
    "schema": "#b4bccf9f-2f54-49b6-bfa8-4fa979dcaa7b&1.0.0",
    "option": {},
    "relationships": [],
    "owner": "did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999",
    "group": "3c869012-3832-4256-9f6a-84ef3d0bf4a3",
    "accounts": {},
    "topicId": "0.0.8427267",
    "messageId": "1774789048.788625000",
    "startMessageId": "1774789024.639432984",
    "messageHash": "5t8tXB7RDWUepWh3Z28NesPeXKbSWKeQoKPqhrrphz6W",
    "messageIds": [],
    "document": {},
    "documentFileId": "69c92848e78ca16d4322ace5",
    "documentFields": [],
    "edited": false,
    "relayerAccount": "0.0.6046457",
    "tableFileIds": [],
    "oldVersion": true,
    "id": "69c921bae78ca16d4322ac8b"
  }
]

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
POST /api/v1/policies/{policyId}/parameters HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 4

[
  {}
]

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
GET /api/v1/policies/{policyId}/parameters/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 4

[
  {}
]

No content

List grid containers accessible to the caller.

get

Returns every interfaceDocumentsSourceBlock reachable by the caller's role in the given policy.

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

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
Responses
200

Array of grid descriptors visible to the caller.

application/json
gridIdstringOptionalExample: installer_documents_grid
titlestringOptionalExample: Installer Activity Reports
descriptionstringOptional
get/policies/{policyId}/grids
GET /api/v1/policies/{policyId}/grids HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "gridId": "installer_documents_grid",
    "title": "Installer Activity Reports",
    "description": "text",
    "filterSchema": [
      {
        "filterId": "text",
        "title": "text",
        "type": "dropdown",
        "field": "text",
        "operators": [
          "text"
        ]
      }
    ],
    "columnSchema": [
      {
        "name": "text",
        "title": "text",
        "type": "text",
        "bindActions": [
          "text"
        ]
      }
    ]
  }
]

List actions available on a grid for the caller.

get

Returns all 9-level actions (Approve, Reject, etc.) defined on the specified grid that the caller's role is permitted to execute. Actions with requiredRoles the caller does not hold are omitted entirely the response never leaks inaccessible actions.

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

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
gridIdstringRequired

Stable grid identifier (policy block tag or hash fallback)

Example: installer_documents_grid
Responses
200

Array of action descriptors available to the caller.

application/json
actionIdstringOptionalExample: approve_action
labelstringOptionalExample: Approve
requiredRolesstring[]Optional
appliesTostring · enumOptionalPossible values:
inputSchemaobjectOptional
get/policies/{policyId}/grids/{gridId}/actions
GET /api/v1/policies/{policyId}/grids/{gridId}/actions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "actionId": "approve_action",
    "label": "Approve",
    "requiredRoles": [
      "text"
    ],
    "appliesTo": "row",
    "inputSchema": {}
  }
]

Get records for a grid, annotated with executable actions.

get

Returns the grid's filtered, paginated document set. Each document carries an _actions field listing the actionId values the caller's role may invoke on this grid, applied uniformly across all rows. Pagination is always driven by this endpoint's own page/pageSize query params.

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

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
gridIdstringRequired

Stable grid identifier

Example: installer_documents_grid
Query parameters
pageSizenumberOptional

Records per page (default: 20, max: 200). Always applied, regardless of whether the grid has a pagination control configured.

Example: 20
pagenumberOptional

1-based page number (default: 1)

Example: 1
Responses
200

Paginated grid records annotated with _actions.

application/json
pagenumberOptionalExample: 1
pageSizenumberOptionalExample: 20
totalCountnumberOptionalExample: 42
hasNextPagebooleanOptionalExample: true
hasPreviousPagebooleanOptionalExample: false
get/policies/{policyId}/grids/{gridId}/records
GET /api/v1/policies/{policyId}/grids/{gridId}/records HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "id": "69aeb71ef8c5b278e3bab4e5",
      "owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
      "option": {},
      "document": {},
      "createDate": "2026-01-01T00:00:00.000Z",
      "_actions": [
        "approve_action",
        "reject_action"
      ]
    }
  ],
  "page": 1,
  "pageSize": 20,
  "totalCount": 42,
  "hasNextPage": true,
  "hasPreviousPage": false
}

Execute an action on a grid record.

post

Executes the named action on the specified record. The server resolves gridId and actionId to the appropriate internal block and option value without exposing any internal block UUID.

Typical flow:

  1. GET /grids — discover gridId values

  2. GET /grids/{gridId}/actions — discover actionId values and required body shape

  3. GET /grids/{gridId}/records — get _id of the target record

  4. POST /grids/{gridId}/records/{_id}/actions/{actionId} — execute

Request body depends on the action's inputSchema (from step 2):

  • Selector/button actions (e.g. Approve/Reject): body is {}.

  • Dropdown actions (e.g. assigning an entity to a record): body is { "value": "<one of inputSchema.properties.value.enum>" }.

  • Request-VC-document actions (e.g. submitting a form that mints a new VC): body is { "document": { ...fields matching the action's schema... } }.

Response body: {} — the action triggers an internal workflow event; the 200 status code is the success signal.

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

Policy Id

Example: 69aeb71ef8c5b278e3bab4e5
gridIdstringRequired

Stable grid identifier

Example: installer_documents_grid
recordIdstringRequired

Document id from GET /records (MongoDB ObjectId)

Example: 69aeb71ef8c5b278e3bab4e5
actionIdstringRequired

Stable action identifier (from GET /actions)

Example: approve_action
Body
objectOptional
Responses
200

Action executed successfully. Returns the block execution result.

application/json
objectOptional
post/policies/{policyId}/grids/{gridId}/records/{recordId}/actions/{actionId}
POST /api/v1/policies/{policyId}/grids/{gridId}/records/{recordId}/actions/{actionId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{}

Last updated