Comments
Threaded comments and review notes on policies.
Returns the list of user names which are present in the target policy and have access to the target document.
Returns the list of user names which are present in the target policy and have access to the target document.
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Successful operation. Returns mix of broadcast target ("all"), role targets, and individual user targets with their roles.
Display name (username for users, role name for roles, "All" for broadcast)
AdministratorValue to use when targeting (DID for users, role name for roles, "all" for broadcast)
AdministratorEntry type: "all" = broadcast to everyone, "role" = target by role, "user" = target specific user
rolePossible values: List of roles assigned to this user (only present when type = "user")
["Administrator"]Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
GET /api/v1/policy-comments/{policyId}/{documentId}/users HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"label": "All",
"value": "all",
"type": "all"
},
{
"label": "Administrator",
"value": "Administrator",
"type": "role"
},
{
"label": "Project_Proponent",
"value": "Project_Proponent",
"type": "role"
},
{
"label": "ExampleUser",
"value": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"roles": [
"Document Owner",
"Administrator"
],
"type": "user"
}
]Returns the list of documents linked with the target document
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Successful operation.
Description1773670900.819264517Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
GET /api/v1/policy-comments/{policyId}/{documentId}/relationships HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"label": "Parent VC Document",
"value": "1773670900.819264517"
}
]Returns the list of schemas for the target document
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Successful operation.
2026-03-25T12:40:32.586Z2026-03-25T12:40:59.908Z69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Schema nameDescriptionPOLICYPossible values: 9db028d2-03ad-4d49-a178-cf4b67f8c147DRAFTPossible values: 0.0.60463791.0.0did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005991773670900.819264517POLICYPossible values: 69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAinnerSchemaConfigurationInTextjsonLdContextInTextfalsefalsefalse1.2.01Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
GET /api/v1/policy-comments/{policyId}/{documentId}/schemas HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Schema name",
"description": "Description",
"entity": "POLICY",
"iri": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"status": "DRAFT",
"topicId": "0.0.6046379",
"version": "1.0.0",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"messageId": "1773670900.819264517",
"category": "POLICY",
"documentURL": "ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"contextURL": "ipfs://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"document": {},
"context": {}
}
]Returns the list of discussions for the target document
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Text
TextField path
Field pathWhen true and user has POLICIES_POLICY_AUDIT permission, enables audit mode — bypasses privacy filters and shows all discussions.
falseSuccessful operation. Returns discussions linked to the document, filtered by privacy settings unless in audit mode.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.820059969aeb71ef8c5b278e3bab4e51773670900.81926451769aeb71ef8c5b278e3bab4e51773670900.8192645171773670900.819264517Common#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1Field name["1773670900.819264517"]["69aeb71ef8c5b278e3bab4e5"]publicPossible values: trueNumber of comments in this discussion
0Array of document IDs that form the history chain for this discussion target (added by API for GET /discussions)
["69aeb71ef8c5b278e3bab4e5"]Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
GET /api/v1/policy-comments/{policyId}/{documentId}/discussions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"target": "string",
"targetId": "69aeb71ef8c5b278e3bab4e5",
"messageId": "1773670900.819264517",
"parent": "string",
"hash": "QmExampleHash",
"name": "Common",
"field": "#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1",
"fieldName": "Field name",
"relationships": [
"1773670900.819264517"
],
"relationshipIds": [
"69aeb71ef8c5b278e3bab4e5"
],
"privacy": "public",
"roles": [
"string"
],
"users": [
"string"
],
"system": true,
"count": 0,
"document": {
"id": "69aeb71ef8c5b278e3bab4e5",
"type": [
"string"
],
"credentialSubject": {},
"issuer": {},
"issuanceDate": "2026-03-03T17:25:53.312Z",
"proof": {
"type": "string",
"created": "2026-03-03T17:25:53.312Z",
"verificationMethod": "string",
"proofPurpose": "string",
"jws": "string"
}
}
}
]Creates a new discussion linked to the target document
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Common#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1Field name1773670900.819264517publicPossible values: ["1773670900.819264517"]Successful operation.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.820059969aeb71ef8c5b278e3bab4e51773670900.81926451769aeb71ef8c5b278e3bab4e51773670900.8192645171773670900.819264517Common#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1Field name["1773670900.819264517"]["69aeb71ef8c5b278e3bab4e5"]publicPossible values: trueNumber of comments in this discussion
0Array of document IDs that form the history chain for this discussion target (added by API for GET /discussions)
["69aeb71ef8c5b278e3bab4e5"]Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policy-comments/{policyId}/{documentId}/discussions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 129
{
"name": "Common",
"field": "#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1",
"fieldName": "Field name",
"privacy": "public"
}{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"target": "string",
"targetId": "69aeb71ef8c5b278e3bab4e5",
"messageId": "1773670900.819264517",
"parent": "string",
"hash": "QmExampleHash",
"name": "Common",
"field": "#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1",
"fieldName": "Field name",
"relationships": [
"1773670900.819264517"
],
"relationshipIds": [
"69aeb71ef8c5b278e3bab4e5"
],
"privacy": "public",
"roles": [
"string"
],
"users": [
"string"
],
"system": true,
"count": 0,
"document": {
"id": "69aeb71ef8c5b278e3bab4e5",
"type": [
"string"
],
"credentialSubject": {},
"issuer": {},
"issuanceDate": "2026-03-03T17:25:53.312Z",
"proof": {
"type": "string",
"created": "2026-03-03T17:25:53.312Z",
"verificationMethod": "string",
"proofPurpose": "string",
"jws": "string"
}
}
}Creates a new message in the target discussion
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Discussion Identifier
69aeb71ef8c5b278e3bab4e5did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599["did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599"]["#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1"]text["text"]Successful operation.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.820059969aeb71ef8c5b278e3bab4e50.0.60463790.0.60463790.0.60463791773670900.81926451769aeb71ef8c5b278e3bab4e51773670900.81926451769aeb71ef8c5b278e3bab4e51773670900.8192645171759493933458did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599AdministratorStandardRegistry["did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599"]["#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1"]textWhether the current user is the sender of this comment (added by API, not stored in DB)
trueUnauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
Block Unavailable.
POST /api/v1/policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 106
{
"text": "This field needs review.",
"fields": [
"#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1"
]
}{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"topicId": "0.0.6046379",
"policyTopicId": "0.0.6046379",
"policyInstanceTopicId": "0.0.6046379",
"target": "string",
"targetId": "69aeb71ef8c5b278e3bab4e5",
"discussionMessageId": "1773670900.819264517",
"discussionId": "69aeb71ef8c5b278e3bab4e5",
"messageId": "1773670900.819264517",
"timestamp": 1759493933458,
"hash": "QmExampleHash",
"sender": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"senderRole": "Administrator",
"senderName": "StandardRegistry",
"recipients": [
"did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599"
],
"fields": [
"#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1"
],
"text": "text",
"document": {
"id": "69aeb71ef8c5b278e3bab4e5",
"type": [
"string"
],
"credentialSubject": {},
"issuer": {},
"issuanceDate": "2026-03-03T17:25:53.312Z",
"proof": {
"type": "string",
"created": "2026-03-03T17:25:53.312Z",
"verificationMethod": "string",
"proofPurpose": "string",
"jws": "string"
}
}
}Returns the list of messages for the target discussion
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Discussion Identifier
69aeb71ef8c5b278e3bab4e5When true and user has POLICIES_POLICY_AUDIT permission, enables audit mode — bypasses privacy filters.
falseSearch text — matches against comment text, field name, sender name, or sender role
textFilter by schema field path (e.g. "#schema-uuid&version/fieldName")
#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1Cursor for pagination — return comments with _id less than this value (older comments)
69aeb71ef8c5b278e3bab4e5Cursor for pagination — return comments with _id greater than this value (newer comments)
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments/search HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 87
{
"search": "review",
"field": "#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1"
}[
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"topicId": "0.0.6046379",
"policyTopicId": "0.0.6046379",
"policyInstanceTopicId": "0.0.6046379",
"target": "string",
"targetId": "69aeb71ef8c5b278e3bab4e5",
"discussionMessageId": "1773670900.819264517",
"discussionId": "69aeb71ef8c5b278e3bab4e5",
"messageId": "1773670900.819264517",
"timestamp": 1759493933458,
"hash": "QmExampleHash",
"sender": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"senderRole": "Administrator",
"senderName": "StandardRegistry",
"recipients": [
"did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599"
],
"fields": [
"#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1"
],
"text": "text",
"document": {
"id": "69aeb71ef8c5b278e3bab4e5",
"type": [
"string"
],
"credentialSubject": {},
"issuer": {},
"issuanceDate": "2026-03-03T17:25:53.312Z",
"proof": {
"type": "string",
"created": "2026-03-03T17:25:53.312Z",
"verificationMethod": "string",
"proofPurpose": "string",
"jws": "string"
}
}
}
]Returns the count of the messages in the target discussion
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Successful operation.
Number of comments in this discussion
0Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
Block Unavailable.
GET /api/v1/policy-comments/{policyId}/{documentId}/comments/count HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"fields": {
"#150e3357-f6d2-4cd6-a69e-f9d911f8bbc7&1.0.0/field1.field1": 3,
"#85c18385-e371-44ad-8155-57a834ba185a/projectTitle": 1
},
"count": 4
}Encrypts and loads the file into IPFS linked to the target discussion
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Discussion Identifier
69aeb71ef8c5b278e3bab4e5Successful operation.
Bad request.
Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 8
"binary"bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5iRetrieves and decrypts the file associated with the discussion from IPFS
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Discussion Identifier
69aeb71ef8c5b278e3bab4e5IPFS Content Identifier of the uploaded file
bafkreihj7gclc4qgem27tre5je6a3t7tpdrk4li6oamdl6bnflwnoyfs5iSuccessful operation. Returns the decrypted file as binary stream.
Unauthorized request.
Forbidden
File not found.
Internal server error.
GET /api/v1/policy-comments/{policyId}/{documentId}/discussions/{discussionId}/comments/file/{cid} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryReturns the encryption key as a binary file for decrypting discussion content linked to the target document. Optionally filter by specific discussion ID.
Policy Id
69aeb71ef8c5b278e3bab4e5Document Identifier
69aeb71ef8c5b278e3bab4e5Discussion Identifier
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Key file not found.
Internal server error.
GET /api/v1/policy-comments/{policyId}/{documentId}/keys HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryLast updated