Comp AI · Schema

PolicyResponseDto

ComplianceArtificial IntelligenceSOC 2ISO 27001HIPAAGDPRAudit AutomationSecurity

Properties

Name Type Description
id string The policy ID
name string Name of the policy
description stringnull Description of the policy
status string Status of the policy
content array Content of the policy as TipTap JSON (array of nodes)
frequency stringnull Review frequency of the policy
department stringnull Department this policy applies to. May be one of the built-in values (none, admin, gov, hr, it, itsm, qms) or a custom department name.
isRequiredToSign boolean Whether this policy requires a signature
signedBy array List of user IDs who have signed this policy
reviewDate stringnull Review date for the policy
isArchived boolean Whether this policy is archived
archivedAt stringnull When the policy was archived by framework sync
createdAt string When the policy was created
updatedAt string When the policy was last updated
lastArchivedAt stringnull When the policy was last archived
lastPublishedAt stringnull When the policy was last published
organizationId string Organization ID this policy belongs to
assigneeId stringnull ID of the user assigned to this policy
approverId stringnull ID of the user who approved this policy
policyTemplateId stringnull ID of the policy template this policy is based on
View JSON Schema on GitHub

JSON Schema

comp-ai-policy-response-dto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/comp-ai/main/json-schema/comp-ai-policy-response-dto-schema.json",
  "title": "PolicyResponseDto",
  "x-generated": "2026-10-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/comp-ai-openapi.json#/components/schemas/PolicyResponseDto",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The policy ID"
    },
    "name": {
      "type": "string",
      "description": "Name of the policy"
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "Description of the policy"
    },
    "status": {
      "type": "string",
      "description": "Status of the policy",
      "enum": [
        "draft",
        "published",
        "needs_review"
      ]
    },
    "content": {
      "type": "array",
      "description": "Content of the policy as TipTap JSON (array of nodes)",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "frequency": {
      "type": [
        "string",
        "null"
      ],
      "description": "Review frequency of the policy",
      "enum": [
        "monthly",
        "quarterly",
        "yearly"
      ]
    },
    "department": {
      "type": [
        "string",
        "null"
      ],
      "description": "Department this policy applies to. May be one of the built-in values (none, admin, gov, hr, it, itsm, qms) or a custom department name."
    },
    "isRequiredToSign": {
      "type": "boolean",
      "description": "Whether this policy requires a signature"
    },
    "signedBy": {
      "type": "array",
      "description": "List of user IDs who have signed this policy",
      "items": {
        "type": "string"
      }
    },
    "reviewDate": {
      "format": "date-time",
      "type": [
        "string",
        "null"
      ],
      "description": "Review date for the policy"
    },
    "isArchived": {
      "type": "boolean",
      "description": "Whether this policy is archived"
    },
    "archivedAt": {
      "format": "date-time",
      "type": [
        "string",
        "null"
      ],
      "description": "When the policy was archived by framework sync"
    },
    "createdAt": {
      "format": "date-time",
      "type": "string",
      "description": "When the policy was created"
    },
    "updatedAt": {
      "format": "date-time",
      "type": "string",
      "description": "When the policy was last updated"
    },
    "lastArchivedAt": {
      "format": "date-time",
      "type": [
        "string",
        "null"
      ],
      "description": "When the policy was last archived"
    },
    "lastPublishedAt": {
      "format": "date-time",
      "type": [
        "string",
        "null"
      ],
      "description": "When the policy was last published"
    },
    "organizationId": {
      "type": "string",
      "description": "Organization ID this policy belongs to"
    },
    "assigneeId": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of the user assigned to this policy"
    },
    "approverId": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of the user who approved this policy"
    },
    "policyTemplateId": {
      "type": [
        "string",
        "null"
      ],
      "description": "ID of the policy template this policy is based on"
    }
  },
  "required": [
    "id",
    "name",
    "description",
    "status",
    "content",
    "frequency",
    "department",
    "isRequiredToSign",
    "signedBy",
    "reviewDate",
    "isArchived",
    "archivedAt",
    "createdAt",
    "updatedAt",
    "lastArchivedAt",
    "lastPublishedAt",
    "organizationId",
    "assigneeId",
    "approverId",
    "policyTemplateId"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/comp-ai-policy-response-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.