{ "openapi": "3.0.0", "paths": { "/v1/organization": { "get": { "description": "Retrieve organization profile data used to personalize compliance workflows, Trust Center branding, API automation, and audit readiness reporting.", "operationId": "OrganizationController_getOrganization_v1", "parameters": [ { "name": "includeOwnership", "required": false, "in": "query", "description": "Include ownership data for transfer UI", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Organization information retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The organization ID", "example": "org_abc123def456" }, "name": { "type": "string", "description": "Organization name", "example": "Acme Corporation" }, "slug": { "type": "string", "description": "Organization slug", "example": "acme-corp" }, "logo": { "type": "string", "nullable": true, "description": "Organization logo URL", "example": "https://example.com/logo.png" }, "metadata": { "type": "string", "nullable": true, "description": "Additional metadata in JSON format", "example": "{\"theme\": \"dark\", \"preferences\": {}}" }, "website": { "type": "string", "nullable": true, "description": "Organization website URL", "example": "https://acme-corp.com" }, "onboardingCompleted": { "type": "boolean", "description": "Whether onboarding is completed", "example": true }, "hasAccess": { "type": "boolean", "description": "Whether organization has access to the platform", "example": true }, "fleetDmLabelId": { "type": "integer", "nullable": true, "description": "FleetDM label ID for device management", "example": 123 }, "isFleetSetupCompleted": { "type": "boolean", "description": "Whether FleetDM setup is completed", "example": false }, "primaryColor": { "type": "string", "nullable": true, "description": "Organization primary color in hex format", "example": "#3B82F6" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the organization was created" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get organization profile", "tags": [ "Organization" ], "x-mint": { "metadata": { "title": "Get organization profile | Comp AI API", "sidebarTitle": "Get organization profile", "description": "Retrieve organization profile data used to personalize compliance workflows, Trust Center branding, API automation, and audit readiness reporting.", "og:title": "Get organization profile | Comp AI API", "og:description": "Retrieve organization profile data used to personalize compliance workflows, Trust Center branding, API automation, and audit readiness reporting." } }, "x-codeSamples": [ { "lang": "bash", "label": "Get organization profile", "source": "curl --request GET --url \"https://api.trycomp.ai/v1/organization\" --header \"X-API-Key: $COMP_AI_API_KEY\"" } ], "x-speakeasy-mcp": { "name": "get-organization" } }, "patch": { "description": "Partially updates the authenticated organization. Only provided fields will be updated.", "operationId": "OrganizationController_updateOrganization_v1", "parameters": [], "requestBody": { "required": true, "description": "Organization update data", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Organization name", "example": "New Acme Corporation" }, "slug": { "type": "string", "description": "Organization slug", "example": "new-acme-corp" }, "logo": { "type": "string", "description": "Organization logo URL", "example": "https://example.com/logo.png" }, "metadata": { "type": "string", "description": "Additional metadata in JSON format", "example": "{\"theme\": \"dark\", \"preferences\": {}}" }, "website": { "type": "string", "description": "Organization website URL", "example": "https://acme-corp.com" }, "onboardingCompleted": { "type": "boolean", "description": "Whether onboarding is completed", "example": true }, "fleetDmLabelId": { "type": "integer", "description": "FleetDM label ID for device management", "example": 123 }, "isFleetSetupCompleted": { "type": "boolean", "description": "Whether FleetDM setup is completed", "example": false }, "primaryColor": { "type": "string", "description": "Organization primary color in hex format", "example": "#3B82F6" }, "advancedModeEnabled": { "type": "boolean", "description": "Whether advanced mode is enabled for the organization", "example": false }, "backgroundCheckStepEnabled": { "type": "boolean", "description": "Whether the background-check step is required during member onboarding. Set to false to turn off the \"Require background checks\" setting; true to require it.", "example": true }, "evidenceApprovalEnabled": { "type": "boolean", "description": "Whether evidence requires approval before it is accepted.", "example": false }, "deviceAgentStepEnabled": { "type": "boolean", "description": "Whether the device-agent step is enabled during member onboarding.", "example": true }, "securityTrainingStepEnabled": { "type": "boolean", "description": "Whether the security-training step is enabled during member onboarding.", "example": true }, "whistleblowerReportEnabled": { "type": "boolean", "description": "Whether the whistleblower reporting feature is enabled.", "example": true }, "accessRequestFormEnabled": { "type": "boolean", "description": "Whether the trust-portal access request form is enabled.", "example": true } }, "additionalProperties": false } } } }, "responses": { "200": { "description": "Organization updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The organization ID", "example": "org_abc123def456" }, "name": { "type": "string", "description": "Organization name", "example": "New Acme Corporation" }, "slug": { "type": "string", "description": "Organization slug", "example": "new-acme-corp" }, "logo": { "type": "string", "nullable": true, "description": "Organization logo URL", "example": "https://example.com/logo.png" }, "metadata": { "type": "string", "nullable": true, "description": "Additional metadata in JSON format", "example": "{\"theme\": \"dark\", \"preferences\": {}}" }, "website": { "type": "string", "nullable": true, "description": "Organization website URL", "example": "https://acme-corp.com" }, "onboardingCompleted": { "type": "boolean", "description": "Whether onboarding is completed", "example": true }, "hasAccess": { "type": "boolean", "description": "Whether organization has access to the platform", "example": true }, "fleetDmLabelId": { "type": "integer", "nullable": true, "description": "FleetDM label ID for device management", "example": 123 }, "isFleetSetupCompleted": { "type": "boolean", "description": "Whether FleetDM setup is completed", "example": false }, "primaryColor": { "type": "string", "nullable": true, "description": "Organization primary color in hex format", "example": "#3B82F6" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the organization was created" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "400": { "description": "Bad Request - Invalid update data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid slug format" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update organization", "tags": [ "Organization" ], "x-mint": { "metadata": { "title": "Update organization | Comp AI API", "sidebarTitle": "Update organization", "description": "Partially updates the authenticated organization. Only provided fields will be updated.", "og:title": "Update organization | Comp AI API", "og:description": "Partially updates the authenticated organization. Only provided fields will be updated." } }, "x-speakeasy-mcp": { "name": "update-organization" } }, "delete": { "description": "Permanently deletes the authenticated organization. This action cannot be undone.", "operationId": "OrganizationController_deleteOrganization_v1", "parameters": [], "responses": { "200": { "description": "Organization deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Indicates successful deletion", "example": true }, "deletedOrganization": { "type": "object", "properties": { "id": { "type": "string", "description": "The deleted organization ID", "example": "org_abc123def456" }, "name": { "type": "string", "description": "The deleted organization name", "example": "Acme Corporation" } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete organization", "tags": [ "Organization" ], "x-mint": { "metadata": { "title": "Delete organization | Comp AI API", "sidebarTitle": "Delete organization", "description": "Permanently deletes the authenticated organization. This action cannot be undone.", "og:title": "Delete organization | Comp AI API", "og:description": "Permanently deletes the authenticated organization. This action cannot be undone." } }, "x-speakeasy-mcp": { "name": "delete-organization" } } }, "/v1/organization/onboarding": { "get": { "operationId": "OrganizationController_getOnboarding_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get organization onboarding status", "tags": [ "Organization" ], "description": "Get organization onboarding status in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "x-mint": { "metadata": { "title": "Get organization onboarding status | Comp AI API", "sidebarTitle": "Get organization onboarding status", "description": "Get organization onboarding status in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "og:title": "Get organization onboarding status | Comp AI API", "og:description": "Get organization onboarding status in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings." } }, "x-speakeasy-mcp": { "name": "get-onboarding" } } }, "/v1/organization/transfer-ownership": { "post": { "description": "Transfers organization ownership to another member. The current owner will become an admin and keep all other roles. The new owner will receive the owner role while keeping their existing roles. Only the current organization owner can.", "operationId": "OrganizationController_transferOwnership_v1", "parameters": [], "requestBody": { "required": true, "description": "Transfer organization ownership to another member", "content": { "application/json": { "schema": { "type": "object", "required": [ "newOwnerId" ], "properties": { "newOwnerId": { "type": "string", "description": "Member ID of the new owner", "example": "mem_xyz789" }, "userId": { "type": "string", "description": "User ID of the current owner initiating the transfer (required for API key auth, ignored for JWT auth)", "example": "usr_abc123def456" } }, "additionalProperties": false } } } }, "responses": { "default": { "description": "Not found - Organization or member not found\n\nForbidden - Only organization owner can transfer ownership\n\nUnauthorized - Invalid or missing authentication\n\nBad request - Invalid input\n\nOwnership transferred successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "message": { "type": "string", "example": "Ownership transferred successfully" }, "currentOwner": { "type": "object", "properties": { "memberId": { "type": "string", "example": "mem_abc123" }, "previousRoles": { "type": "array", "items": { "type": "string" }, "example": [ "owner", "employee" ] }, "newRoles": { "type": "array", "items": { "type": "string" }, "example": [ "admin", "employee" ] } } }, "newOwner": { "type": "object", "properties": { "memberId": { "type": "string", "example": "mem_xyz789" }, "previousRoles": { "type": "array", "items": { "type": "string" }, "example": [ "admin" ] }, "newRoles": { "type": "array", "items": { "type": "string" }, "example": [ "admin", "owner" ] } } } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Transfer organization ownership", "tags": [ "Organization" ], "x-mint": { "metadata": { "title": "Transfer organization ownership | Comp AI API", "sidebarTitle": "Transfer organization ownership", "description": "Transfers organization ownership to another member. The current owner will become an admin and keep all other roles. The new owner will receive the owner.", "og:title": "Transfer organization ownership | Comp AI API", "og:description": "Transfers organization ownership to another member. The current owner will become an admin and keep all other roles. The new owner will receive the owner." } }, "x-speakeasy-mcp": { "name": "transfer-ownership" } } }, "/v1/organization/role-notifications": { "put": { "operationId": "OrganizationController_updateRoleNotifications_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "settings" ], "properties": { "settings": { "type": "array", "items": { "type": "object", "required": [ "role", "policyNotifications", "taskReminders", "taskAssignments", "taskMentions", "weeklyTaskDigest", "findingNotifications" ], "properties": { "role": { "type": "string" }, "policyNotifications": { "type": "boolean" }, "taskReminders": { "type": "boolean" }, "taskAssignments": { "type": "boolean" }, "taskMentions": { "type": "boolean" }, "weeklyTaskDigest": { "type": "boolean" }, "findingNotifications": { "type": "boolean" } } } } } } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update role notification settings", "tags": [ "Organization" ], "description": "Update role notification settings in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "x-mint": { "metadata": { "title": "Update role notification settings | Comp AI API", "sidebarTitle": "Update role notification settings", "description": "Update role notification settings in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "og:title": "Update role notification settings | Comp AI API", "og:description": "Update role notification settings in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings." } }, "x-speakeasy-mcp": { "name": "update-role-notifications" } }, "get": { "operationId": "OrganizationController_getRoleNotifications_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get role notification settings", "tags": [ "Organization" ], "description": "Get role notification settings in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "x-mint": { "metadata": { "title": "Get role notification settings | Comp AI API", "sidebarTitle": "Get role notification settings", "description": "Get role notification settings in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "og:title": "Get role notification settings | Comp AI API", "og:description": "Get role notification settings in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings." } }, "x-speakeasy-mcp": { "name": "get-role-notifications" } } }, "/v1/organization/api-keys": { "get": { "operationId": "OrganizationController_listApiKeys_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List API keys", "tags": [ "Organization" ], "description": "List active API keys for an organization so administrators can audit automation access and rotate credentials safely.", "x-mint": { "metadata": { "title": "List API keys | Comp AI API", "sidebarTitle": "List API keys", "description": "List active API keys for an organization so administrators can audit automation access and rotate credentials safely.", "og:title": "List API keys | Comp AI API", "og:description": "List active API keys for an organization so administrators can audit automation access and rotate credentials safely." } }, "x-speakeasy-mcp": { "name": "list-api-keys" } }, "post": { "operationId": "OrganizationController_createApiKey_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Create API key", "tags": [ "Organization" ], "description": "Create a scoped API key for server-side compliance automation such as evidence sync, policy workflows, or security questionnaire tooling.", "x-mint": { "metadata": { "title": "Create API key | Comp AI API", "sidebarTitle": "Create API key", "description": "Create a scoped API key for server-side compliance automation such as evidence sync, policy workflows, or security questionnaire tooling.", "og:title": "Create API key | Comp AI API", "og:description": "Create a scoped API key for server-side compliance automation such as evidence sync, policy workflows, or security questionnaire tooling." } }, "x-speakeasy-mcp": { "name": "create-api-key" } } }, "/v1/organization/api-keys/available-scopes": { "get": { "operationId": "OrganizationController_getAvailableScopes_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List API key scopes", "tags": [ "Organization" ], "description": "Retrieve available API key scopes and permissions before creating credentials for a specific compliance automation workflow.", "x-mint": { "metadata": { "title": "List API key scopes | Comp AI API", "sidebarTitle": "List API key scopes", "description": "Retrieve available API key scopes and permissions before creating credentials for a specific compliance automation workflow.", "og:title": "List API key scopes | Comp AI API", "og:description": "Retrieve available API key scopes and permissions before creating credentials for a specific compliance automation workflow." } }, "x-speakeasy-mcp": { "name": "get-available-scopes" } } }, "/v1/organization/primary-color": { "get": { "description": "Retrieve the organization primary brand color used for Trust Center theming, portals, and API-driven embedded experiences.", "operationId": "OrganizationController_getPrimaryColor_v1", "parameters": [ { "name": "token", "required": false, "in": "query", "description": "Access token for public access (alternative to authentication). When provided, authentication is not required.", "schema": { "example": "tok_abc123def456" } } ], "responses": { "200": { "description": "Organization primary color retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "primaryColor": { "type": "string", "nullable": true, "description": "The primary color in hex format (e.g., #FF5733)", "example": "#3B82F6" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get organization brand color", "tags": [ "Organization" ], "x-mint": { "metadata": { "title": "Get organization brand color | Comp AI API", "sidebarTitle": "Get organization brand color", "description": "Retrieve the organization primary brand color used for Trust Center theming, portals, and API-driven embedded experiences.", "og:title": "Get organization brand color | Comp AI API", "og:description": "Retrieve the organization primary brand color used for Trust Center theming, portals, and API-driven embedded experiences." } }, "x-speakeasy-mcp": { "name": "get-primary-color" } } }, "/v1/organization/logo": { "post": { "operationId": "OrganizationController_uploadLogo_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload organization logo", "tags": [ "Organization" ], "description": "Upload organization logo in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "x-mint": { "metadata": { "title": "Upload organization logo | Comp AI API", "sidebarTitle": "Upload organization logo", "description": "Upload organization logo in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "og:title": "Upload organization logo | Comp AI API", "og:description": "Upload organization logo in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings." } }, "x-speakeasy-mcp": { "name": "upload-logo" } }, "delete": { "operationId": "OrganizationController_removeLogo_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Remove organization logo", "tags": [ "Organization" ], "description": "Remove organization logo in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "x-mint": { "metadata": { "title": "Remove organization logo | Comp AI API", "sidebarTitle": "Remove organization logo", "description": "Remove organization logo in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings.", "og:title": "Remove organization logo | Comp AI API", "og:description": "Remove organization logo in Comp AI. Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings." } }, "x-speakeasy-mcp": { "name": "remove-logo" } } }, "/v1/organization/api-keys/revoke": { "post": { "operationId": "OrganizationController_revokeApiKey_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Revoke API key", "tags": [ "Organization" ], "description": "Revoke an organization API key when an integration is retired, credentials rotate, or access should be removed.", "x-mint": { "metadata": { "title": "Revoke API key | Comp AI API", "sidebarTitle": "Revoke API key", "description": "Revoke an organization API key when an integration is retired, credentials rotate, or access should be removed.", "og:title": "Revoke API key | Comp AI API", "og:description": "Revoke an organization API key when an integration is retired, credentials rotate, or access should be removed." } }, "x-speakeasy-mcp": { "name": "revoke-api-key" } } }, "/v1/organization-access/auto-approve": { "post": { "description": "Grants hasAccess on the active organization if the requesting user is an internal trycomp.ai user, the deployment is self-hosted, or the user email domain matches the organization website domain and is an active Stripe customer.", "operationId": "OrganizationAccessController_autoApprove_v1", "parameters": [], "responses": { "200": { "description": "" } }, "summary": "Auto-approve organization access via domain or self-hosted check", "tags": [ "Organization" ], "x-mint": { "metadata": { "title": "Auto-approve organization access via domain | Comp AI API", "sidebarTitle": "Auto-approve organization access via domain or self-hosted check", "description": "Grants hasAccess on the active organization if the requesting user is an internal trycomp.ai user, the deployment is self-hosted, or the user email domain.", "og:title": "Auto-approve organization access via domain | Comp AI API", "og:description": "Grants hasAccess on the active organization if the requesting user is an internal trycomp.ai user, the deployment is self-hosted, or the user email domain." } }, "x-speakeasy-mcp": { "name": "auto-approve" } } }, "/v1/people/invite": { "post": { "description": "Invite employees or contractors to complete portal tasks, training, device setup, and compliance evidence requirements.", "operationId": "PeopleController_inviteMembers_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitePeopleDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Invite workforce members", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "invite-members" }, "x-mint": { "metadata": { "title": "Invite workforce members | Comp AI API", "sidebarTitle": "Invite workforce members", "description": "Invite employees or contractors to complete portal tasks, training, device setup, and compliance evidence requirements.", "og:title": "Invite workforce members | Comp AI API", "og:description": "Invite employees or contractors to complete portal tasks, training, device setup, and compliance evidence requirements." } } } }, "/v1/people": { "get": { "description": "List employees and contractors with onboarding, training, device, and compliance status used for people-security controls.", "operationId": "PeopleController_getAllPeople_v1", "parameters": [ { "name": "includeDeactivated", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "onboardAfter", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "onboardBefore", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "offboardAfter", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "offboardBefore", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "People retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PeopleResponseDto" } }, "count": { "type": "number", "description": "Total number of people", "example": 25 }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "properties": { "id": { "type": "string", "description": "User ID", "example": "usr_abc123def456" }, "email": { "type": "string", "description": "User email", "example": "user@company.com" } } } } }, "example": { "data": [ { "id": "mem_abc123def456", "organizationId": "org_abc123def456", "userId": "usr_abc123def456", "role": "admin", "createdAt": "2024-01-01T00:00:00Z", "department": "it", "isActive": true, "fleetDmLabelId": 123, "user": { "id": "usr_abc123def456", "name": "John Doe", "email": "john.doe@company.com", "emailVerified": true, "image": "https://example.com/avatar.jpg", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T00:00:00Z", "lastLogin": "2024-01-15T12:00:00Z" } } ], "count": 1, "authType": "api-key", "authenticatedUser": { "id": "usr_abc123def456", "email": "user@company.com" } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Failed to retrieve members" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "List workforce members", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "list-members" }, "x-mint": { "metadata": { "title": "List workforce members | Comp AI API", "sidebarTitle": "List workforce members", "description": "List employees and contractors with onboarding, training, device, and compliance status used for people-security controls.", "og:title": "List workforce members | Comp AI API", "og:description": "List employees and contractors with onboarding, training, device, and compliance status used for people-security controls." } } }, "post": { "description": "Adds a new member to the authenticated organization. The user must already exist in the system.", "operationId": "PeopleController_createMember_v1", "parameters": [], "requestBody": { "required": true, "description": "Member creation data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePeopleDto" } } } }, "responses": { "201": { "description": "Member created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PeopleResponseDto" }, "example": { "id": "mem_abc123def456", "organizationId": "org_abc123def456", "userId": "usr_abc123def456", "role": "admin", "createdAt": "2024-01-01T00:00:00Z", "department": "it", "isActive": true, "fleetDmLabelId": 123, "user": { "id": "usr_abc123def456", "name": "John Doe", "email": "john.doe@company.com", "emailVerified": true, "image": "https://example.com/avatar.jpg", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T00:00:00Z", "lastLogin": "2024-01-15T12:00:00Z" } } } } }, "400": { "description": "Bad Request - Invalid member data or user already exists", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "User user@example.com is already a member of this organization" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization or user not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "User with ID usr_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Failed to create member" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Create a new member", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "create-member" }, "x-mint": { "metadata": { "title": "Create a new member | Comp AI API", "sidebarTitle": "Create a new member", "description": "Adds a new member to the authenticated organization. The user must already exist in the system.", "og:title": "Create a new member | Comp AI API", "og:description": "Adds a new member to the authenticated organization. The user must already exist in the system." } } } }, "/v1/people/devices": { "get": { "operationId": "PeopleController_getDevices_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get all employee devices with fleet compliance data", "tags": [ "People" ], "description": "Get all employee devices with fleet compliance data in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Get all employee devices with fleet | Comp AI API", "sidebarTitle": "Get all employee devices with fleet compliance data", "description": "Get all employee devices with fleet compliance data in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences.", "og:title": "Get all employee devices with fleet | Comp AI API", "og:description": "Get all employee devices with fleet compliance data in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences." } }, "x-speakeasy-mcp": { "name": "get-devices" } } }, "/v1/people/test-stats/by-assignee": { "get": { "operationId": "PeopleController_getTestStatsByAssignee_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get integration test statistics grouped by assignee", "tags": [ "People" ], "description": "Get integration test statistics grouped by assignee in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Get integration test statistics grouped by | Comp AI API", "sidebarTitle": "Get integration test statistics grouped by assignee", "description": "Get integration test statistics grouped by assignee in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences.", "og:title": "Get integration test statistics grouped by | Comp AI API", "og:description": "Get integration test statistics grouped by assignee in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences." } }, "x-speakeasy-mcp": { "name": "get-test-stats-by-assignee" } } }, "/v1/people/bulk": { "post": { "description": "Bulk adds multiple members to the authenticated organization. Each member must have a valid user ID that exists in the system. Members who already exist in the organization or have invalid data will be skipped with error details returned.", "operationId": "PeopleController_bulkCreateMembers_v1", "parameters": [], "requestBody": { "required": true, "description": "Bulk member creation data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkCreatePeopleDto" } } } }, "responses": { "201": { "description": "Bulk member creation completed", "content": { "application/json": { "schema": { "type": "object", "properties": { "created": { "type": "array", "items": { "$ref": "#/components/schemas/PeopleResponseDto" }, "description": "Successfully created members" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "index": { "type": "number", "description": "Index in the original array where the error occurred", "example": 2 }, "userId": { "type": "string", "description": "User ID that failed to be added", "example": "usr_abc123def456" }, "error": { "type": "string", "description": "Error message explaining why the member could not be created", "example": "User user@example.com is already a member of this organization" } } }, "description": "Members that failed to be created with error details" }, "summary": { "type": "object", "properties": { "total": { "type": "number", "description": "Total number of members in the request", "example": 5 }, "successful": { "type": "number", "description": "Number of members successfully created", "example": 3 }, "failed": { "type": "number", "description": "Number of members that failed to be created", "example": 2 } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "properties": { "id": { "type": "string", "description": "User ID", "example": "usr_abc123def456" }, "email": { "type": "string", "description": "User email", "example": "user@company.com" } } } } }, "example": { "created": [ { "id": "mem_abc123def456", "organizationId": "org_abc123def456", "userId": "usr_abc123def456", "role": "member", "createdAt": "2024-01-01T00:00:00Z", "department": "it", "isActive": true, "fleetDmLabelId": 123, "user": { "id": "usr_abc123def456", "name": "John Doe", "email": "john.doe@company.com", "emailVerified": true, "image": "https://example.com/avatar.jpg", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T00:00:00Z", "lastLogin": "2024-01-15T12:00:00Z" } } ], "errors": [ { "index": 2, "userId": "usr_xyz789abc123", "error": "User user2@example.com is already a member of this organization" } ], "summary": { "total": 2, "successful": 1, "failed": 1 }, "authType": "api-key", "authenticatedUser": { "id": "usr_admin123", "email": "admin@company.com" } } } } }, "400": { "description": "Bad Request - Invalid bulk data or validation errors", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Members array cannot be empty" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Bulk creation failed" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Add multiple members to organization", "tags": [ "People" ], "x-mint": { "metadata": { "title": "Add multiple members to organization | Comp AI API", "sidebarTitle": "Add multiple members to organization", "description": "Bulk adds multiple members to the authenticated organization. Each member must have a valid user ID that exists in the system. Members who already exist in.", "og:title": "Add multiple members to organization | Comp AI API", "og:description": "Bulk adds multiple members to the authenticated organization. Each member must have a valid user ID that exists in the system. Members who already exist in." } }, "x-speakeasy-mcp": { "name": "bulk-create-members" } } }, "/v1/people/mentionable": { "get": { "operationId": "PeopleController_getMentionableMembers_v1", "parameters": [ { "name": "resource", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get members who can read a specific resource type", "tags": [ "People" ], "description": "Get members who can read a specific resource type in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Get members who can read a specific resource | Comp AI API", "sidebarTitle": "Get members who can read a specific resource type", "description": "Get members who can read a specific resource type in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences.", "og:title": "Get members who can read a specific resource | Comp AI API", "og:description": "Get members who can read a specific resource type in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences." } }, "x-speakeasy-mcp": { "name": "get-mentionable-members" } } }, "/v1/people/{id}/reactivate": { "patch": { "operationId": "PeopleController_reactivateMember_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Reactivate a deactivated member", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "reactivate-member" }, "description": "Reactivate a deactivated member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Reactivate a deactivated member | Comp AI API", "sidebarTitle": "Reactivate a deactivated member", "description": "Reactivate a deactivated member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee.", "og:title": "Reactivate a deactivated member | Comp AI API", "og:description": "Reactivate a deactivated member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee." } } } }, "/v1/people/{id}": { "get": { "description": "Returns a specific member by ID for the authenticated organization with their user information.", "operationId": "PeopleController_getPersonById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Person retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PeopleResponseDto" }, "example": { "id": "mem_abc123def456", "organizationId": "org_abc123def456", "userId": "usr_abc123def456", "role": "admin", "createdAt": "2024-01-01T00:00:00Z", "department": "it", "isActive": true, "fleetDmLabelId": 123, "user": { "id": "usr_abc123def456", "name": "John Doe", "email": "john.doe@company.com", "emailVerified": true, "image": "https://example.com/avatar.jpg", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T00:00:00Z", "lastLogin": "2024-01-15T12:00:00Z" } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization or member not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Member with ID mem_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get person by ID", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "get-member" }, "x-mint": { "metadata": { "title": "Get person by ID | Comp AI API", "sidebarTitle": "Get person by ID", "description": "Returns a specific member by ID for the authenticated organization with their user information.", "og:title": "Get person by ID | Comp AI API", "og:description": "Returns a specific member by ID for the authenticated organization with their user information." } } }, "patch": { "description": "Update a workforce member profile, role, department, or compliance metadata used for people-security controls.", "operationId": "PeopleController_updateMember_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "description": "Member update data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePeopleDto" } } } }, "responses": { "200": { "description": "Member updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PeopleResponseDto" }, "example": { "id": "mem_abc123def456", "organizationId": "org_abc123def456", "userId": "usr_abc123def456", "role": "member", "createdAt": "2024-01-01T00:00:00Z", "department": "it", "isActive": true, "fleetDmLabelId": 123, "user": { "id": "usr_abc123def456", "name": "John Doe", "email": "john.doe@company.com", "emailVerified": true, "image": "https://example.com/avatar.jpg", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T00:00:00Z", "lastLogin": "2024-01-15T12:00:00Z" } } } } }, "400": { "description": "Bad Request - Invalid update data or user conflict", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "User user@example.com is already a member of this organization" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization, member, or user not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Member with ID mem_abc123def456 not found in organization org_abc123def456" } } } } } }, "409": { "description": "Conflict - Login email already used by another account, or the member belongs to other organizations", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "That email is already used by another account" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update workforce member", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "update-member" }, "x-mint": { "metadata": { "title": "Update workforce member | Comp AI API", "sidebarTitle": "Update workforce member", "description": "Update a workforce member profile, role, department, or compliance metadata used for people-security controls.", "og:title": "Update workforce member | Comp AI API", "og:description": "Update a workforce member profile, role, department, or compliance metadata used for people-security controls." } } }, "delete": { "description": "Permanently removes a member from the organization. This action cannot be undone.", "operationId": "PeopleController_deleteMember_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } }, { "name": "skipOffboarding", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Member deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Indicates successful deletion", "example": true }, "deletedMember": { "type": "object", "properties": { "id": { "type": "string", "description": "The deleted member ID", "example": "mem_abc123def456" }, "name": { "type": "string", "description": "The deleted member name", "example": "John Doe" }, "email": { "type": "string", "description": "The deleted member email", "example": "john.doe@company.com" } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization or member not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Member with ID mem_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Failed to delete member" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete member", "tags": [ "People" ], "x-speakeasy-mcp": { "name": "delete-member" }, "x-mint": { "metadata": { "title": "Delete member | Comp AI API", "sidebarTitle": "Delete member", "description": "Permanently removes a member from the organization. This action cannot be undone.", "og:title": "Delete member | Comp AI API", "og:description": "Permanently removes a member from the organization. This action cannot be undone." } } } }, "/v1/people/{id}/access": { "get": { "description": "Aggregates the latest Employee Access check results from every connected integration bound to the Employee Access task, matched to the member by email.", "operationId": "PeopleController_getMemberAccess_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Member's access across connected integrations", "tags": [ "People" ], "x-mint": { "metadata": { "title": "Member's access across connected integrations | Comp AI API", "sidebarTitle": "Member's access across connected integrations", "description": "Aggregates the latest Employee Access check results from every connected integration bound to the Employee Access task, matched to the member by email.", "og:title": "Member's access across connected integrations | Comp AI API", "og:description": "Aggregates the latest Employee Access check results from every connected integration bound to the Employee Access task, matched to the member by email." } }, "x-speakeasy-mcp": { "name": "get-member-access" } } }, "/v1/people/{id}/training-videos": { "get": { "operationId": "PeopleController_getTrainingVideos_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get training video completions for a member", "tags": [ "People" ], "description": "Get training video completions for a member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Get training video completions for a member | Comp AI API", "sidebarTitle": "Get training video completions for a member", "description": "Get training video completions for a member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences.", "og:title": "Get training video completions for a member | Comp AI API", "og:description": "Get training video completions for a member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences." } }, "x-speakeasy-mcp": { "name": "get-training-videos" } } }, "/v1/people/{id}/fleet-compliance": { "get": { "operationId": "PeopleController_getFleetCompliance_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get fleet compliance", "tags": [ "People" ], "description": "Retrieve Fleet device compliance status so endpoint security findings can support people-security controls and audit evidence.", "x-mint": { "metadata": { "title": "Get fleet compliance | Comp AI API", "sidebarTitle": "Get fleet compliance", "description": "Retrieve Fleet device compliance status so endpoint security findings can support people-security controls and audit evidence.", "og:title": "Get fleet compliance | Comp AI API", "og:description": "Retrieve Fleet device compliance status so endpoint security findings can support people-security controls and audit evidence." } }, "x-speakeasy-mcp": { "name": "get-fleet-compliance" } } }, "/v1/people/{id}/host/{hostId}": { "delete": { "description": "Removes a single host (device) from FleetDM by host ID. Only organization owners can perform this action. Validates that the organization exists and the member exists within the organization.", "operationId": "PeopleController_removeHost_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } }, { "name": "hostId", "required": true, "in": "path", "description": "FleetDM host ID", "schema": { "example": 1, "type": "number" } } ], "responses": { "200": { "description": "Host removed from Fleet successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Indicates successful removal", "example": true }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication, insufficient permissions, or not organization owner", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization or member not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Member with ID mem_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Failed to remove host" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Remove host (device) from Fleet", "tags": [ "People" ], "x-mint": { "metadata": { "title": "Remove host (device) from Fleet | Comp AI API", "sidebarTitle": "Remove host (device) from Fleet", "description": "Removes a single host (device) from FleetDM by host ID. Only organization owners can perform this action. Validates that the organization exists and the.", "og:title": "Remove host (device) from Fleet | Comp AI API", "og:description": "Removes a single host (device) from FleetDM by host ID. Only organization owners can perform this action. Validates that the organization exists and the." } }, "x-speakeasy-mcp": { "name": "remove-host" } } }, "/v1/people/{id}/resend-portal-invite": { "post": { "operationId": "PeopleController_resendPortalInvite_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Resend portal invite email to a member", "tags": [ "People" ], "description": "Resend portal invite email to a member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Resend portal invite email to a member | Comp AI API", "sidebarTitle": "Resend portal invite email to a member", "description": "Resend portal invite email to a member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee.", "og:title": "Resend portal invite email to a member | Comp AI API", "og:description": "Resend portal invite email to a member in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee." } }, "x-speakeasy-mcp": { "name": "resend-portal-invite" } } }, "/v1/people/{id}/unlink-device": { "patch": { "description": "Resets the fleetDmLabelId for a member, effectively unlinking their device from FleetDM. This will disconnect the device from the organization.", "operationId": "PeopleController_unlinkDevice_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Member updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PeopleResponseDto" }, "example": { "id": "mem_abc123def456", "organizationId": "org_abc123def456", "userId": "usr_abc123def456", "role": "member", "createdAt": "2024-01-01T00:00:00Z", "department": "it", "isActive": true, "fleetDmLabelId": 123, "user": { "id": "usr_abc123def456", "name": "John Doe", "email": "john.doe@company.com", "emailVerified": true, "image": "https://example.com/avatar.jpg", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T00:00:00Z", "lastLogin": "2024-01-15T12:00:00Z" } } } } }, "400": { "description": "Bad Request - Invalid update data or user conflict", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "User user@example.com is already a member of this organization" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization, member, or user not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Member with ID mem_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Unlink device from member", "tags": [ "People" ], "x-mint": { "metadata": { "title": "Unlink device from member | Comp AI API", "sidebarTitle": "Unlink device from member", "description": "Resets the fleetDmLabelId for a member, effectively unlinking their device from FleetDM. This will disconnect the device from the organization.", "og:title": "Unlink device from member | Comp AI API", "og:description": "Resets the fleetDmLabelId for a member, effectively unlinking their device from FleetDM. This will disconnect the device from the organization." } }, "x-speakeasy-mcp": { "name": "unlink-device" } } }, "/v1/people/{id}/employment-evidence/{eventType}": { "get": { "operationId": "PeopleController_getEmploymentEvidence_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } }, { "name": "eventType", "required": true, "in": "path", "schema": { "enum": [ "onboard", "offboard" ], "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get employment evidence attachments", "tags": [ "People" ], "description": "Get employment evidence attachments in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Get employment evidence attachments | Comp AI API", "sidebarTitle": "Get employment evidence attachments", "description": "Get employment evidence attachments in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee.", "og:title": "Get employment evidence attachments | Comp AI API", "og:description": "Get employment evidence attachments in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee." } }, "x-speakeasy-mcp": { "name": "get-employment-evidence" } }, "post": { "operationId": "PeopleController_uploadEmploymentEvidence_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } }, { "name": "eventType", "required": true, "in": "path", "schema": { "enum": [ "onboard", "offboard" ], "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadAttachmentDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload employment evidence", "tags": [ "People" ], "description": "Upload employment evidence in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Upload employment evidence | Comp AI API", "sidebarTitle": "Upload employment evidence", "description": "Upload employment evidence in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence.", "og:title": "Upload employment evidence | Comp AI API", "og:description": "Upload employment evidence in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence." } }, "x-speakeasy-mcp": { "name": "upload-employment-evidence" } } }, "/v1/people/{id}/employment-evidence/{eventType}/{attachmentId}": { "delete": { "operationId": "PeopleController_deleteEmploymentEvidence_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Member ID", "schema": { "example": "mem_abc123def456", "type": "string" } }, { "name": "eventType", "required": true, "in": "path", "schema": { "enum": [ "onboard", "offboard" ], "type": "string" } }, { "name": "attachmentId", "required": true, "in": "path", "description": "Attachment ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Delete employment evidence", "tags": [ "People" ], "description": "Delete employment evidence in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Delete employment evidence | Comp AI API", "sidebarTitle": "Delete employment evidence", "description": "Delete employment evidence in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence.", "og:title": "Delete employment evidence | Comp AI API", "og:description": "Delete employment evidence in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence." } }, "x-speakeasy-mcp": { "name": "delete-employment-evidence" } } }, "/v1/people/me/email-preferences": { "get": { "operationId": "PeopleController_getEmailPreferences_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get current user email notification preferences", "tags": [ "People" ], "description": "Get current user email notification preferences in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Get current user email notification | Comp AI API", "sidebarTitle": "Get current user email notification preferences", "description": "Get current user email notification preferences in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences.", "og:title": "Get current user email notification | Comp AI API", "og:description": "Get current user email notification preferences in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences." } }, "x-speakeasy-mcp": { "name": "get-email-preferences" } }, "put": { "operationId": "PeopleController_updateEmailPreferences_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateEmailPreferencesDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update current user email notification preferences", "tags": [ "People" ], "description": "Update current user email notification preferences in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records.", "x-mint": { "metadata": { "title": "Update current user email notification | Comp AI API", "sidebarTitle": "Update current user email notification preferences", "description": "Update current user email notification preferences in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences.", "og:title": "Update current user email notification | Comp AI API", "og:description": "Update current user email notification preferences in Comp AI. Invite and manage workforce members, training status, device compliance, email preferences." } }, "x-speakeasy-mcp": { "name": "update-email-preferences" } } }, "/v1/attachments": { "post": { "description": "Upload a base64-encoded file and attach it to a task, vendor, risk, comment, or other supported entity type. The file is uploaded to S3 and a database record is created.", "operationId": "AttachmentsController_createAttachment_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAttachmentDto" } } } }, "responses": { "201": { "description": "Attachment uploaded successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachmentResponseDto" } } } }, "400": { "description": "Invalid file data, unsupported file type, or file too large", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "File size exceeds maximum allowed size of 100MB" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Upload an attachment to any supported entity", "tags": [ "Attachments" ], "x-mint": { "metadata": { "title": "Upload an attachment to any supported entity | Comp AI API", "sidebarTitle": "Upload an attachment to any supported entity", "description": "Upload a base64-encoded file and attach it to a task, vendor, risk, comment, or other supported entity type. The file is uploaded to S3 and a database.", "og:title": "Upload an attachment to any supported entity | Comp AI API", "og:description": "Upload a base64-encoded file and attach it to a task, vendor, risk, comment, or other supported entity type. The file is uploaded to S3 and a database." } }, "x-speakeasy-mcp": { "name": "create-attachment" } } }, "/v1/attachments/{attachmentId}/download": { "get": { "description": "Generate a signed download URL for a shared attachment linked to comments, evidence records, or compliance workflow reviews.", "operationId": "AttachmentsController_getAttachmentDownloadUrl_v1", "parameters": [ { "name": "attachmentId", "required": true, "in": "path", "description": "Unique attachment identifier", "schema": { "example": "att_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Download URL generated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "downloadUrl": { "type": "string", "description": "Signed URL for downloading the file", "example": "https://bucket.s3.amazonaws.com/path/to/file.pdf?signature=..." }, "expiresIn": { "type": "number", "description": "URL expiration time in seconds", "example": 900 } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get shared attachment download URL", "tags": [ "Attachments" ], "x-mint": { "metadata": { "title": "Get shared attachment download URL | Comp AI API", "sidebarTitle": "Get shared attachment download URL", "description": "Generate a signed download URL for a shared attachment linked to comments, evidence records, or compliance workflow reviews.", "og:title": "Get shared attachment download URL | Comp AI API", "og:description": "Generate a signed download URL for a shared attachment linked to comments, evidence records, or compliance workflow reviews." } }, "x-speakeasy-mcp": { "name": "get-attachment-download-url" } } }, "/v1/uploads/presign": { "post": { "description": "Returns a presigned S3 URL plus the s3Key the file lands at. PUT the raw file bytes to that URL, then call the feature tool (e.g. upload-and-parse) with the s3Key instead of sending file data. Bytes never pass through the LLM.", "operationId": "UploadsController_createUploadUrl_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUploadUrlDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadUrlResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Get a presigned URL to upload a file", "tags": [ "Uploads" ], "x-mint": { "metadata": { "title": "Get a presigned URL to upload a file | Comp AI API", "sidebarTitle": "Get a presigned URL to upload a file", "description": "Returns a presigned S3 URL plus the s3Key the file lands at. PUT the raw file bytes to that URL, then call the feature tool (e.g. upload-and-parse) with the.", "og:title": "Get a presigned URL to upload a file | Comp AI API", "og:description": "Returns a presigned S3 URL plus the s3Key the file lands at. PUT the raw file bytes to that URL, then call the feature tool (e.g. upload-and-parse) with the." } }, "x-speakeasy-mcp": { "name": "create-upload-url" } } }, "/v1/timelines": { "get": { "operationId": "TimelinesController_findAll_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "List timelines for the organization", "tags": [ "Timelines" ], "description": "List timelines for the organization in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization.", "x-mint": { "metadata": { "title": "List timelines for the organization | Comp AI API", "sidebarTitle": "List timelines for the organization", "description": "List timelines for the organization in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization.", "og:title": "List timelines for the organization | Comp AI API", "og:description": "List timelines for the organization in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization." } }, "x-speakeasy-mcp": { "name": "find-all" } } }, "/v1/timelines/{id}": { "get": { "operationId": "TimelinesController_findOne_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get a single timeline instance with phases", "tags": [ "Timelines" ], "description": "Get a single timeline instance with phases in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization.", "x-mint": { "metadata": { "title": "Get a single timeline instance with phases | Comp AI API", "sidebarTitle": "Get a single timeline instance with phases", "description": "Get a single timeline instance with phases in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization.", "og:title": "Get a single timeline instance with phases | Comp AI API", "og:description": "Get a single timeline instance with phases in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization." } }, "x-speakeasy-mcp": { "name": "find-one" } } }, "/v1/timelines/{id}/phases/{phaseId}/ready": { "post": { "operationId": "TimelinesController_markReadyForReview_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "phaseId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Mark a phase as ready for review", "tags": [ "Timelines" ], "description": "Mark a phase as ready for review in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization.", "x-mint": { "metadata": { "title": "Mark a phase as ready for review | Comp AI API", "sidebarTitle": "Mark a phase as ready for review", "description": "Mark a phase as ready for review in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization.", "og:title": "Mark a phase as ready for review | Comp AI API", "og:description": "Mark a phase as ready for review in Comp AI. Track audit and compliance readiness timelines, phases, and review milestones for an organization." } }, "x-speakeasy-mcp": { "name": "mark-ready-for-review" } } }, "/v1/integrations/connections/providers": { "get": { "operationId": "ConnectionsController_listProviders_v1", "parameters": [ { "name": "activeOnly", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List integration providers", "tags": [ "Integrations" ], "description": "List available integration providers that can connect to the organization for automated evidence collection and compliance checks.", "x-mint": { "metadata": { "title": "List integration providers | Comp AI API", "sidebarTitle": "List integration providers", "description": "List available integration providers that can connect to the organization for automated evidence collection and compliance checks.", "og:title": "List integration providers | Comp AI API", "og:description": "List available integration providers that can connect to the organization for automated evidence collection and compliance checks." } }, "x-speakeasy-mcp": { "name": "list-providers" } } }, "/v1/integrations/connections/providers/{slug}": { "get": { "operationId": "ConnectionsController_getProvider_v1", "parameters": [ { "name": "slug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get an integration provider by slug", "tags": [ "Integrations" ], "description": "Get an integration provider by slug in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get an integration provider by slug | Comp AI API", "sidebarTitle": "Get an integration provider by slug", "description": "Get an integration provider by slug in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Get an integration provider by slug | Comp AI API", "og:description": "Get an integration provider by slug in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-provider" } } }, "/v1/integrations/connections": { "get": { "operationId": "ConnectionsController_listConnections_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List integration connections", "tags": [ "Integrations" ], "description": "List integration connections in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List integration connections | Comp AI API", "sidebarTitle": "List integration connections", "description": "List integration connections in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "List integration connections | Comp AI API", "og:description": "List integration connections in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "list-connections" } }, "post": { "operationId": "ConnectionsController_createConnection_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConnectionDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Create integration connection", "tags": [ "Integrations" ], "description": "Create an integration connection so Comp AI can collect evidence, run checks, or sync data from a connected provider.", "x-mint": { "metadata": { "title": "Create integration connection | Comp AI API", "sidebarTitle": "Create integration connection", "description": "Create an integration connection so Comp AI can collect evidence, run checks, or sync data from a connected provider.", "og:title": "Create integration connection | Comp AI API", "og:description": "Create an integration connection so Comp AI can collect evidence, run checks, or sync data from a connected provider." } }, "x-speakeasy-mcp": { "name": "create-connection" } } }, "/v1/integrations/connections/{id}": { "get": { "operationId": "ConnectionsController_getConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get an integration connection by ID", "tags": [ "Integrations" ], "description": "Get an integration connection by ID in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get an integration connection by ID | Comp AI API", "sidebarTitle": "Get an integration connection by ID", "description": "Get an integration connection by ID in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Get an integration connection by ID | Comp AI API", "og:description": "Get an integration connection by ID in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-connection" } }, "delete": { "operationId": "ConnectionsController_deleteConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Delete an integration connection", "tags": [ "Integrations" ], "description": "Delete an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Delete an integration connection | Comp AI API", "sidebarTitle": "Delete an integration connection", "description": "Delete an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Delete an integration connection | Comp AI API", "og:description": "Delete an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "delete-connection" } }, "patch": { "operationId": "ConnectionsController_updateConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConnectionDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update an integration connection", "tags": [ "Integrations" ], "description": "Update an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Update an integration connection | Comp AI API", "sidebarTitle": "Update an integration connection", "description": "Update an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Update an integration connection | Comp AI API", "og:description": "Update an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "update-connection" } } }, "/v1/integrations/connections/{id}/test": { "post": { "operationId": "ConnectionsController_testConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Test an integration connection", "tags": [ "Integrations" ], "description": "Test an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Test an integration connection | Comp AI API", "sidebarTitle": "Test an integration connection", "description": "Test an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Test an integration connection | Comp AI API", "og:description": "Test an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "test-connection" } } }, "/v1/integrations/connections/{id}/pause": { "post": { "operationId": "ConnectionsController_pauseConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Pause an integration connection", "tags": [ "Integrations" ], "description": "Pause an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Pause an integration connection | Comp AI API", "sidebarTitle": "Pause an integration connection", "description": "Pause an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Pause an integration connection | Comp AI API", "og:description": "Pause an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "pause-connection" } } }, "/v1/integrations/connections/{id}/resume": { "post": { "operationId": "ConnectionsController_resumeConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Resume an integration connection", "tags": [ "Integrations" ], "description": "Resume an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Resume an integration connection | Comp AI API", "sidebarTitle": "Resume an integration connection", "description": "Resume an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Resume an integration connection | Comp AI API", "og:description": "Resume an integration connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "resume-connection" } } }, "/v1/integrations/connections/{id}/disconnect": { "post": { "operationId": "ConnectionsController_disconnectConnection_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Disconnect an integration", "tags": [ "Integrations" ], "description": "Disconnect an integration in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Disconnect an integration | Comp AI API", "sidebarTitle": "Disconnect an integration", "description": "Disconnect an integration in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Disconnect an integration | Comp AI API", "og:description": "Disconnect an integration in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "disconnect-connection" } } }, "/v1/integrations/connections/{id}/services": { "put": { "operationId": "ConnectionsController_updateConnectionServices_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConnectionServicesDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Set services enabled on a connection", "tags": [ "Integrations" ], "description": "Set services enabled on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Set services enabled on a connection | Comp AI API", "sidebarTitle": "Set services enabled on a connection", "description": "Set services enabled on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Set services enabled on a connection | Comp AI API", "og:description": "Set services enabled on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "update-connection-services" } }, "get": { "operationId": "ServicesController_getConnectionServices_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List services enabled on a connection", "tags": [ "Integrations" ], "description": "List services enabled on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List services enabled on a connection | Comp AI API", "sidebarTitle": "List services enabled on a connection", "description": "List services enabled on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "List services enabled on a connection | Comp AI API", "og:description": "List services enabled on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-connection-services" } } }, "/v1/integrations/checks/providers/{providerSlug}": { "get": { "operationId": "ChecksController_listProviderChecks_v1", "parameters": [ { "name": "providerSlug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List check definitions for a provider", "tags": [ "Integrations" ], "description": "List check definitions for a provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List check definitions for a provider | Comp AI API", "sidebarTitle": "List check definitions for a provider", "description": "List check definitions for a provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "List check definitions for a provider | Comp AI API", "og:description": "List check definitions for a provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "list-provider-checks" } } }, "/v1/integrations/checks/connections/{connectionId}": { "get": { "operationId": "ChecksController_listConnectionChecks_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List checks for a connection", "tags": [ "Integrations" ], "description": "List checks for a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List checks for a connection | Comp AI API", "sidebarTitle": "List checks for a connection", "description": "List checks for a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "List checks for a connection | Comp AI API", "og:description": "List checks for a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "list-connection-checks" } } }, "/v1/integrations/checks/connections/{connectionId}/run": { "post": { "operationId": "ChecksController_runConnectionChecks_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunChecksDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Run integration checks", "tags": [ "Integrations" ], "description": "Run all compliance checks for an integration connection and capture results as automated evidence.", "x-mint": { "metadata": { "title": "Run integration checks | Comp AI API", "sidebarTitle": "Run integration checks", "description": "Run all compliance checks for an integration connection and capture results as automated evidence.", "og:title": "Run integration checks | Comp AI API", "og:description": "Run all compliance checks for an integration connection and capture results as automated evidence." } }, "x-speakeasy-mcp": { "name": "run-connection-checks" } } }, "/v1/integrations/checks/connections/{connectionId}/run/{checkId}": { "post": { "operationId": "ChecksController_runSingleCheck_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "checkId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Run a single check on a connection", "tags": [ "Integrations" ], "description": "Run a single check on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Run a single check on a connection | Comp AI API", "sidebarTitle": "Run a single check on a connection", "description": "Run a single check on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Run a single check on a connection | Comp AI API", "og:description": "Run a single check on a connection in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "run-single-check" } } }, "/v1/integrations/variables/providers/{providerSlug}": { "get": { "operationId": "VariablesController_getProviderVariables_v1", "parameters": [ { "name": "providerSlug", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List variable definitions for a provider", "tags": [ "Integrations" ], "description": "List variable definitions for a provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List variable definitions for a provider | Comp AI API", "sidebarTitle": "List variable definitions for a provider", "description": "List variable definitions for a provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "List variable definitions for a provider | Comp AI API", "og:description": "List variable definitions for a provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-provider-variables" } } }, "/v1/integrations/variables/connections/{connectionId}": { "get": { "operationId": "VariablesController_getConnectionVariables_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List connection variables", "tags": [ "Integrations" ], "description": "List connection variables in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List connection variables | Comp AI API", "sidebarTitle": "List connection variables", "description": "List connection variables in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "List connection variables | Comp AI API", "og:description": "List connection variables in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "get-connection-variables" } }, "post": { "operationId": "VariablesController_saveConnectionVariables_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveVariablesDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update connection variables", "tags": [ "Integrations" ], "description": "Update connection variables in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Update connection variables | Comp AI API", "sidebarTitle": "Update connection variables", "description": "Update connection variables in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Update connection variables | Comp AI API", "og:description": "Update connection variables in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "save-connection-variables" } } }, "/v1/integrations/variables/connections/{connectionId}/options/{variableId}": { "get": { "operationId": "VariablesController_fetchVariableOptions_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "variableId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get options for a connection variable", "tags": [ "Integrations" ], "description": "Get options for a connection variable in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get options for a connection variable | Comp AI API", "sidebarTitle": "Get options for a connection variable", "description": "Get options for a connection variable in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Get options for a connection variable | Comp AI API", "og:description": "Get options for a connection variable in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "fetch-variable-options" } } }, "/v1/integrations/tasks/template/{templateId}/checks": { "get": { "operationId": "TaskIntegrationsController_getChecksForTaskTemplate_v1", "parameters": [ { "name": "templateId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List checks for a task template", "tags": [ "Integrations" ], "description": "List checks for a task template in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List checks for a task template | Comp AI API", "sidebarTitle": "List checks for a task template", "description": "List checks for a task template in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "List checks for a task template | Comp AI API", "og:description": "List checks for a task template in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-checks-for-task-template" } } }, "/v1/integrations/tasks/{taskId}/checks": { "get": { "operationId": "TaskIntegrationsController_getChecksForTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List checks attached to a task", "tags": [ "Integrations" ], "description": "List checks attached to a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List checks attached to a task | Comp AI API", "sidebarTitle": "List checks attached to a task", "description": "List checks attached to a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "List checks attached to a task | Comp AI API", "og:description": "List checks attached to a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-checks-for-task" } } }, "/v1/integrations/tasks/{taskId}/run-check": { "post": { "operationId": "TaskIntegrationsController_runCheckForTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunCheckForTaskDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Run a check for a task", "tags": [ "Integrations" ], "description": "Run a check for a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Run a check for a task | Comp AI API", "sidebarTitle": "Run a check for a task", "description": "Run a check for a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Run a check for a task | Comp AI API", "og:description": "Run a check for a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "run-check-for-task" } } }, "/v1/integrations/tasks/{taskId}/checks/disconnect": { "post": { "operationId": "TaskIntegrationsController_disconnectCheckFromTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToggleCheckForTaskDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Disconnect checks from a task", "tags": [ "Integrations" ], "description": "Disconnect checks from a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Disconnect checks from a task | Comp AI API", "sidebarTitle": "Disconnect checks from a task", "description": "Disconnect checks from a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Disconnect checks from a task | Comp AI API", "og:description": "Disconnect checks from a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "disconnect-check-from-task" } } }, "/v1/integrations/tasks/{taskId}/checks/reconnect": { "post": { "operationId": "TaskIntegrationsController_reconnectCheckToTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToggleCheckForTaskDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Reconnect checks to a task", "tags": [ "Integrations" ], "description": "Reconnect checks to a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Reconnect checks to a task | Comp AI API", "sidebarTitle": "Reconnect checks to a task", "description": "Reconnect checks to a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Reconnect checks to a task | Comp AI API", "og:description": "Reconnect checks to a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "reconnect-check-to-task" } } }, "/v1/integrations/tasks/{taskId}/runs": { "get": { "operationId": "TaskIntegrationsController_getTaskCheckRuns_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "limit", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List check runs for a task", "tags": [ "Integrations" ], "description": "List check runs for a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List check runs for a task | Comp AI API", "sidebarTitle": "List check runs for a task", "description": "List check runs for a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "List check runs for a task | Comp AI API", "og:description": "List check runs for a task in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "get-task-check-runs" } } }, "/v1/integrations/sync/google-workspace/employees": { "post": { "operationId": "SyncController_syncGoogleWorkspaceEmployees_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Sync Google Workspace employees", "tags": [ "Integrations" ], "description": "Sync Google Workspace employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Sync Google Workspace employees | Comp AI API", "sidebarTitle": "Sync Google Workspace employees", "description": "Sync Google Workspace employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Sync Google Workspace employees | Comp AI API", "og:description": "Sync Google Workspace employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "sync-google-workspace-employees" } } }, "/v1/integrations/sync/google-workspace/status": { "post": { "operationId": "SyncController_getGoogleWorkspaceStatus_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get Google Workspace sync status", "tags": [ "Integrations" ], "description": "Get Google Workspace sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get Google Workspace sync status | Comp AI API", "sidebarTitle": "Get Google Workspace sync status", "description": "Get Google Workspace sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Get Google Workspace sync status | Comp AI API", "og:description": "Get Google Workspace sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-google-workspace-status" } } }, "/v1/integrations/sync/rippling/employees": { "post": { "operationId": "SyncController_syncRipplingEmployees_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Sync Rippling employees", "tags": [ "Integrations" ], "description": "Sync Rippling employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Sync Rippling employees | Comp AI API", "sidebarTitle": "Sync Rippling employees", "description": "Sync Rippling employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Sync Rippling employees | Comp AI API", "og:description": "Sync Rippling employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "sync-rippling-employees" } } }, "/v1/integrations/sync/rippling/status": { "post": { "operationId": "SyncController_getRipplingStatus_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get Rippling sync status", "tags": [ "Integrations" ], "description": "Get Rippling sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get Rippling sync status | Comp AI API", "sidebarTitle": "Get Rippling sync status", "description": "Get Rippling sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Get Rippling sync status | Comp AI API", "og:description": "Get Rippling sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "get-rippling-status" } } }, "/v1/integrations/sync/jumpcloud/employees": { "post": { "operationId": "SyncController_syncJumpCloudEmployees_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Sync JumpCloud employees", "tags": [ "Integrations" ], "description": "Sync JumpCloud employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Sync JumpCloud employees | Comp AI API", "sidebarTitle": "Sync JumpCloud employees", "description": "Sync JumpCloud employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Sync JumpCloud employees | Comp AI API", "og:description": "Sync JumpCloud employees in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "sync-jump-cloud-employees" } } }, "/v1/integrations/sync/jumpcloud/status": { "post": { "operationId": "SyncController_getJumpCloudStatus_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get JumpCloud sync status", "tags": [ "Integrations" ], "description": "Get JumpCloud sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get JumpCloud sync status | Comp AI API", "sidebarTitle": "Get JumpCloud sync status", "description": "Get JumpCloud sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Get JumpCloud sync status | Comp AI API", "og:description": "Get JumpCloud sync status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "get-jump-cloud-status" } } }, "/v1/integrations/sync/employee-sync-provider": { "get": { "operationId": "SyncController_getEmployeeSyncProvider_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get the currently configured employee sync provider", "tags": [ "Integrations" ], "description": "Get the currently configured employee sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get the currently configured employee sync | Comp AI API", "sidebarTitle": "Get the currently configured employee sync provider", "description": "Get the currently configured employee sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage.", "og:title": "Get the currently configured employee sync | Comp AI API", "og:description": "Get the currently configured employee sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage." } }, "x-speakeasy-mcp": { "name": "get-employee-sync-provider" } }, "post": { "operationId": "SyncController_setEmployeeSyncProvider_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetEmployeeSyncProviderDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Set the employee sync provider", "tags": [ "Integrations" ], "description": "Set the employee sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Set the employee sync provider | Comp AI API", "sidebarTitle": "Set the employee sync provider", "description": "Set the employee sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Set the employee sync provider | Comp AI API", "og:description": "Set the employee sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "set-employee-sync-provider" } } }, "/v1/integrations/sync/device-sync-provider": { "get": { "operationId": "SyncController_getDeviceSyncProvider_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get the currently configured device sync provider", "tags": [ "Integrations" ], "description": "Get the currently configured device sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get the currently configured device sync | Comp AI API", "sidebarTitle": "Get the currently configured device sync provider", "description": "Get the currently configured device sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage.", "og:title": "Get the currently configured device sync | Comp AI API", "og:description": "Get the currently configured device sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage." } }, "x-speakeasy-mcp": { "name": "get-device-sync-provider" } }, "post": { "operationId": "SyncController_setDeviceSyncProvider_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Set the device sync provider", "tags": [ "Integrations" ], "description": "Set the device sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Set the device sync provider | Comp AI API", "sidebarTitle": "Set the device sync provider", "description": "Set the device sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Set the device sync provider | Comp AI API", "og:description": "Set the device sync provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "set-device-sync-provider" } } }, "/v1/integrations/sync/available-providers": { "get": { "operationId": "SyncController_getAvailableSyncProviders_v1", "parameters": [ { "name": "syncType", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List sync providers available to the org", "tags": [ "Integrations" ], "description": "List sync providers available to the org in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List sync providers available to the org | Comp AI API", "sidebarTitle": "List sync providers available to the org", "description": "List sync providers available to the org in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "List sync providers available to the org | Comp AI API", "og:description": "List sync providers available to the org in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-available-sync-providers" } } }, "/v1/integrations/sync/dynamic/{providerSlug}/employees": { "post": { "operationId": "SyncController_syncDynamicProviderEmployees_v1", "parameters": [ { "name": "providerSlug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Sync employees for a dynamic provider", "tags": [ "Integrations" ], "description": "Sync employees for a dynamic provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Sync employees for a dynamic provider | Comp AI API", "sidebarTitle": "Sync employees for a dynamic provider", "description": "Sync employees for a dynamic provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Sync employees for a dynamic provider | Comp AI API", "og:description": "Sync employees for a dynamic provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "sync-dynamic-provider-employees" } } }, "/v1/integrations/sync/dynamic/{providerSlug}/devices": { "post": { "operationId": "SyncController_syncDynamicProviderDevices_v1", "parameters": [ { "name": "providerSlug", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Sync devices for a dynamic provider", "tags": [ "Integrations" ], "description": "Sync devices for a dynamic provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Sync devices for a dynamic provider | Comp AI API", "sidebarTitle": "Sync devices for a dynamic provider", "description": "Sync devices for a dynamic provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Sync devices for a dynamic provider | Comp AI API", "og:description": "Sync devices for a dynamic provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "sync-dynamic-provider-devices" } } }, "/v1/integrations/sync/two-factor-source": { "get": { "operationId": "TwoFactorSourceController_getTwoFactorSource_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get the configured 2FA source provider", "tags": [ "Integrations" ], "description": "Get the configured 2FA source provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Get the configured 2FA source provider | Comp AI API", "sidebarTitle": "Get the configured 2FA source provider", "description": "Get the configured 2FA source provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables.", "og:title": "Get the configured 2FA source provider | Comp AI API", "og:description": "Get the configured 2FA source provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables." } }, "x-speakeasy-mcp": { "name": "get-two-factor-source" } }, "post": { "operationId": "TwoFactorSourceController_setTwoFactorSource_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetTwoFactorSourceDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Set the 2FA source provider", "tags": [ "Integrations" ], "description": "Set the 2FA source provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Set the 2FA source provider | Comp AI API", "sidebarTitle": "Set the 2FA source provider", "description": "Set the 2FA source provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect.", "og:title": "Set the 2FA source provider | Comp AI API", "og:description": "Set the 2FA source provider in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect." } }, "x-speakeasy-mcp": { "name": "set-two-factor-source" } } }, "/v1/integrations/sync/available-2fa-sources": { "get": { "operationId": "TwoFactorSourceController_getAvailableTwoFactorSources_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List integrations that can supply per-user 2FA status", "tags": [ "Integrations" ], "description": "List integrations that can supply per-user 2FA status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "List integrations that can supply per-user | Comp AI API", "sidebarTitle": "List integrations that can supply per-user 2FA status", "description": "List integrations that can supply per-user 2FA status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees.", "og:title": "List integrations that can supply per-user | Comp AI API", "og:description": "List integrations that can supply per-user 2FA status in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees." } }, "x-speakeasy-mcp": { "name": "get-available-two-factor-sources" } } }, "/v1/integrations/sync/two-factor-statuses": { "get": { "operationId": "TwoFactorSourceController_getTwoFactorStatuses_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Per-user 2FA status from the configured source", "tags": [ "Integrations" ], "description": "Per-user 2FA status from the configured source in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence.", "x-mint": { "metadata": { "title": "Per-user 2FA status from the configured source | Comp AI API", "sidebarTitle": "Per-user 2FA status from the configured source", "description": "Per-user 2FA status from the configured source in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage.", "og:title": "Per-user 2FA status from the configured source | Comp AI API", "og:description": "Per-user 2FA status from the configured source in Comp AI. Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage." } }, "x-speakeasy-mcp": { "name": "get-two-factor-statuses" } } }, "/v1/cloud-security/activity": { "get": { "operationId": "CloudSecurityController_getActivity_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "List recent cloud security activity", "tags": [ "CloudSecurity" ], "description": "List recent cloud security activity in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "List recent cloud security activity | Comp AI API", "sidebarTitle": "List recent cloud security activity", "description": "List recent cloud security activity in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud.", "og:title": "List recent cloud security activity | Comp AI API", "og:description": "List recent cloud security activity in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud." } }, "x-speakeasy-mcp": { "name": "get-activity" } } }, "/v1/cloud-security/providers": { "get": { "operationId": "CloudSecurityController_getProviders_v1", "parameters": [], "responses": { "200": { "description": "" } }, "summary": "List supported cloud providers", "tags": [ "CloudSecurity" ], "description": "List supported cloud providers in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "List supported cloud providers | Comp AI API", "sidebarTitle": "List supported cloud providers", "description": "List supported cloud providers in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture.", "og:title": "List supported cloud providers | Comp AI API", "og:description": "List supported cloud providers in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture." } }, "x-speakeasy-mcp": { "name": "get-providers" } } }, "/v1/cloud-security/findings": { "get": { "operationId": "CloudSecurityController_getFindings_v1", "parameters": [], "responses": { "200": { "description": "" } }, "summary": "List cloud security findings", "tags": [ "CloudSecurity" ], "description": "List cloud security findings discovered by scans so teams can prioritize remediation before issues become audit findings.", "x-mint": { "metadata": { "title": "List cloud security findings | Comp AI API", "sidebarTitle": "List cloud security findings", "description": "List cloud security findings discovered by scans so teams can prioritize remediation before issues become audit findings.", "og:title": "List cloud security findings | Comp AI API", "og:description": "List cloud security findings discovered by scans so teams can prioritize remediation before issues become audit findings." } }, "x-speakeasy-mcp": { "name": "get-findings" } } }, "/v1/cloud-security/findings/{findingId}/exception": { "post": { "description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the org's owner and the audit log description records the calling key/service name.", "operationId": "CloudSecurityController_markFindingAsException_v1", "parameters": [ { "name": "findingId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarkExceptionDto" } } } }, "responses": { "201": { "description": "" } }, "summary": "Mark a finding as an exception so it no longer appears in the active Scan Results list", "tags": [ "CloudSecurity" ], "x-mint": { "metadata": { "title": "Mark a finding as an exception so it no | Comp AI API", "sidebarTitle": "Mark a finding as an exception so it no longer appears in the active Scan Results list", "description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the.", "og:title": "Mark a finding as an exception so it no | Comp AI API", "og:description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the." } }, "x-speakeasy-mcp": { "name": "mark-finding-as-exception" } } }, "/v1/cloud-security/connections/{connectionId}/scan-mode": { "patch": { "description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the org's owner.", "operationId": "CloudSecurityController_updateAwsScanMode_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAwsScanModeDto" } } } }, "responses": { "200": { "description": "" } }, "summary": "Switch the AWS scan engine for a connection (Comp AI scanners ↔ Security Hub)", "tags": [ "CloudSecurity" ], "x-mint": { "metadata": { "title": "Switch the AWS scan engine for a connection | Comp AI API", "sidebarTitle": "Switch the AWS scan engine for a connection (Comp AI scanners ↔ Security Hub)", "description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the.", "og:title": "Switch the AWS scan engine for a connection | Comp AI API", "og:description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the." } }, "x-speakeasy-mcp": { "name": "update-aws-scan-mode" } } }, "/v1/cloud-security/exceptions/{exceptionId}": { "delete": { "description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the org's owner.", "operationId": "CloudSecurityController_revokeException_v1", "parameters": [ { "name": "exceptionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Revoke an exception, reopening the finding", "tags": [ "CloudSecurity" ], "x-mint": { "metadata": { "title": "Revoke an exception, reopening the finding | Comp AI API", "sidebarTitle": "Revoke an exception, reopening the finding", "description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the.", "og:title": "Revoke an exception, reopening the finding | Comp AI API", "og:description": "Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the action is attributed to the." } }, "x-speakeasy-mcp": { "name": "revoke-exception" } } }, "/v1/cloud-security/history": { "get": { "operationId": "CloudSecurityController_getHistory_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "List resolution, exception, and regression history for a connection", "tags": [ "CloudSecurity" ], "description": "List resolution, exception, and regression history for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "List resolution, exception, and regression | Comp AI API", "sidebarTitle": "List resolution, exception, and regression history for a connection", "description": "List resolution, exception, and regression history for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services.", "og:title": "List resolution, exception, and regression | Comp AI API", "og:description": "List resolution, exception, and regression history for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services." } }, "x-speakeasy-mcp": { "name": "get-history" } } }, "/v1/cloud-security/findings/{findingId}/check-definition": { "get": { "operationId": "CloudSecurityController_getCheckDefinition_v1", "parameters": [ { "name": "findingId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Resolve the \"About this check\" description for a finding (AI-cached for AWS; provider-derived for GCP/Azure)", "tags": [ "CloudSecurity" ], "description": "Resolve the \"About this check\" description for a finding (AI-cached for AWS; provider-derived for GCP/Azure) in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture.", "x-mint": { "metadata": { "title": "Resolve the \"About this check\" description | Comp AI API", "sidebarTitle": "Resolve the \"About this check\" description for a finding (AI-cached for AWS; provider-derived for GCP/Azure)", "description": "Resolve the \"About this check\" description for a finding (AI-cached for AWS; provider-derived for GCP/Azure) in Comp AI. Run AWS, Azure, and GCP cloud.", "og:title": "Resolve the \"About this check\" description | Comp AI API", "og:description": "Resolve the \"About this check\" description for a finding (AI-cached for AWS; provider-derived for GCP/Azure) in Comp AI. Run AWS, Azure, and GCP cloud." } }, "x-speakeasy-mcp": { "name": "get-check-definition" } } }, "/v1/cloud-security/resolve-session/{connectionId}": { "post": { "operationId": "CloudSecurityController_resolveSession_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Resolve short-lived AWS credentials for a connection (internal only)", "tags": [ "CloudSecurity" ], "description": "Resolve short-lived AWS credentials for a connection (internal only) in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Resolve short-lived AWS credentials for a | Comp AI API", "sidebarTitle": "Resolve short-lived AWS credentials for a connection (internal only)", "description": "Resolve short-lived AWS credentials for a connection (internal only) in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services.", "og:title": "Resolve short-lived AWS credentials for a | Comp AI API", "og:description": "Resolve short-lived AWS credentials for a connection (internal only) in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services." } }, "x-speakeasy-mcp": { "name": "resolve-session" } } }, "/v1/cloud-security/scan/{connectionId}": { "post": { "operationId": "CloudSecurityController_scan_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Run cloud security scan", "tags": [ "CloudSecurity" ], "description": "Trigger a cloud security scan for a connected AWS, Azure, or GCP account and collect findings for compliance remediation.", "x-mint": { "metadata": { "title": "Run cloud security scan | Comp AI API", "sidebarTitle": "Run cloud security scan", "description": "Trigger a cloud security scan for a connected AWS, Azure, or GCP account and collect findings for compliance remediation.", "og:title": "Run cloud security scan | Comp AI API", "og:description": "Trigger a cloud security scan for a connected AWS, Azure, or GCP account and collect findings for compliance remediation." } }, "x-speakeasy-mcp": { "name": "scan" } } }, "/v1/cloud-security/detect-services/{connectionId}": { "post": { "operationId": "CloudSecurityController_detectServices_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Detect available cloud services for a connection", "tags": [ "CloudSecurity" ], "description": "Detect available cloud services for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Detect available cloud services for a | Comp AI API", "sidebarTitle": "Detect available cloud services for a connection", "description": "Detect available cloud services for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings.", "og:title": "Detect available cloud services for a | Comp AI API", "og:description": "Detect available cloud services for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings." } }, "x-speakeasy-mcp": { "name": "detect-services" } } }, "/v1/cloud-security/detect-gcp-org/{connectionId}": { "post": { "operationId": "CloudSecurityController_detectGcpOrg_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Detect the GCP organization for a connection", "tags": [ "CloudSecurity" ], "description": "Detect the GCP organization for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Detect the GCP organization for a connection | Comp AI API", "sidebarTitle": "Detect the GCP organization for a connection", "description": "Detect the GCP organization for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect.", "og:title": "Detect the GCP organization for a connection | Comp AI API", "og:description": "Detect the GCP organization for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect." } }, "x-speakeasy-mcp": { "name": "detect-gcp-org" } } }, "/v1/cloud-security/select-gcp-projects/{connectionId}": { "post": { "operationId": "CloudSecurityController_selectGcpProjects_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Select GCP projects for a connection", "tags": [ "CloudSecurity" ], "description": "Select GCP projects for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Select GCP projects for a connection | Comp AI API", "sidebarTitle": "Select GCP projects for a connection", "description": "Select GCP projects for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud.", "og:title": "Select GCP projects for a connection | Comp AI API", "og:description": "Select GCP projects for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud." } }, "x-speakeasy-mcp": { "name": "select-gcp-projects" } } }, "/v1/cloud-security/setup-gcp/{connectionId}": { "post": { "operationId": "CloudSecurityController_setupGcp_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Set up GCP for a connection", "tags": [ "CloudSecurity" ], "description": "Set up GCP for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Set up GCP for a connection | Comp AI API", "sidebarTitle": "Set up GCP for a connection", "description": "Set up GCP for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture.", "og:title": "Set up GCP for a connection | Comp AI API", "og:description": "Set up GCP for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture." } }, "x-speakeasy-mcp": { "name": "setup-gcp" } } }, "/v1/cloud-security/setup-gcp/{connectionId}/resolve-step": { "post": { "operationId": "CloudSecurityController_resolveGcpSetupStep_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Resolve a GCP setup step", "tags": [ "CloudSecurity" ], "description": "Resolve a GCP setup step in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Resolve a GCP setup step | Comp AI API", "sidebarTitle": "Resolve a GCP setup step", "description": "Resolve a GCP setup step in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture.", "og:title": "Resolve a GCP setup step | Comp AI API", "og:description": "Resolve a GCP setup step in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture." } }, "x-speakeasy-mcp": { "name": "resolve-gcp-setup-step" } } }, "/v1/cloud-security/setup-azure/{connectionId}": { "post": { "operationId": "CloudSecurityController_setupAzure_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Set up Azure for a connection", "tags": [ "CloudSecurity" ], "description": "Set up Azure for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Set up Azure for a connection | Comp AI API", "sidebarTitle": "Set up Azure for a connection", "description": "Set up Azure for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture.", "og:title": "Set up Azure for a connection | Comp AI API", "og:description": "Set up Azure for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture." } }, "x-speakeasy-mcp": { "name": "setup-azure" } } }, "/v1/cloud-security/validate-azure/{connectionId}": { "post": { "operationId": "CloudSecurityController_validateAzure_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Validate Azure credentials for a connection", "tags": [ "CloudSecurity" ], "description": "Validate Azure credentials for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Validate Azure credentials for a connection | Comp AI API", "sidebarTitle": "Validate Azure credentials for a connection", "description": "Validate Azure credentials for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect.", "og:title": "Validate Azure credentials for a connection | Comp AI API", "og:description": "Validate Azure credentials for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect." } }, "x-speakeasy-mcp": { "name": "validate-azure" } } }, "/v1/cloud-security/trigger/{connectionId}": { "post": { "operationId": "CloudSecurityController_triggerScan_v1", "parameters": [ { "name": "connectionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "summary": "Trigger a cloud security run for a connection", "tags": [ "CloudSecurity" ], "description": "Trigger a cloud security run for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Trigger a cloud security run for a connection | Comp AI API", "sidebarTitle": "Trigger a cloud security run for a connection", "description": "Trigger a cloud security run for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings.", "og:title": "Trigger a cloud security run for a connection | Comp AI API", "og:description": "Trigger a cloud security run for a connection in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings." } }, "x-speakeasy-mcp": { "name": "trigger-scan" } } }, "/v1/cloud-security/runs/{runId}": { "get": { "operationId": "CloudSecurityController_getRunStatus_v1", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "connectionId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Get a cloud security scan run by ID", "tags": [ "CloudSecurity" ], "description": "Get a cloud security scan run by ID in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-mint": { "metadata": { "title": "Get a cloud security scan run by ID | Comp AI API", "sidebarTitle": "Get a cloud security scan run by ID", "description": "Get a cloud security scan run by ID in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud.", "og:title": "Get a cloud security scan run by ID | Comp AI API", "og:description": "Get a cloud security scan run by ID in Comp AI. Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud." } }, "x-speakeasy-mcp": { "name": "get-run-status" } } }, "/v1/risks": { "get": { "description": "List organization risks with owners, departments, severity, mitigation status, and evidence for risk management reporting.", "operationId": "RisksController_getAllRisks_v1", "parameters": [ { "name": "title", "required": false, "in": "query", "description": "Search by title (case-insensitive contains)", "schema": { "example": "data breach", "type": "string" } }, { "name": "page", "required": false, "in": "query", "description": "Page number (1-indexed)", "schema": { "minimum": 1, "default": 1, "example": 1, "type": "number" } }, { "name": "perPage", "required": false, "in": "query", "description": "Number of items per page", "schema": { "minimum": 1, "maximum": 250, "default": 50, "example": 50, "type": "number" } }, { "name": "sort", "required": false, "in": "query", "description": "Sort by field", "schema": { "default": "createdAt", "type": "string", "enum": [ "createdAt", "updatedAt", "title", "status" ] } }, { "name": "sortDirection", "required": false, "in": "query", "description": "Sort direction", "schema": { "default": "desc", "type": "string", "enum": [ "asc", "desc" ] } }, { "name": "status", "required": false, "in": "query", "description": "Filter by status", "schema": { "type": "string", "enum": [ "open", "pending", "closed", "archived" ] } }, { "name": "category", "required": false, "in": "query", "description": "Filter by category", "schema": { "type": "string", "enum": [ "customer", "fraud", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ] } }, { "name": "department", "required": false, "in": "query", "description": "Filter by department. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "schema": { "maxLength": 64, "example": "it", "type": "string" } }, { "name": "assigneeId", "required": false, "in": "query", "description": "Filter by assignee member ID", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Risks retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Risk ID", "example": "rsk_abc123def456" }, "title": { "type": "string", "description": "Risk title", "example": "Data breach vulnerability in user authentication system" }, "description": { "type": "string", "description": "Risk description", "example": "Weak password requirements could lead to unauthorized access to user accounts" }, "category": { "type": "string", "enum": [ "customer", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ], "example": "technology" }, "status": { "type": "string", "enum": [ "open", "pending", "closed", "archived" ], "example": "open" }, "likelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "impact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "major" }, "treatmentStrategy": { "type": "string", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "example": "mitigate" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to this risk", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the risk was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the risk was last updated" } } } }, "count": { "type": "number", "description": "Total number of risks", "example": 15 }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "List organization risks", "tags": [ "Risks" ], "x-mint": { "metadata": { "title": "List organization risks | Comp AI API", "sidebarTitle": "List organization risks", "description": "List organization risks with owners, departments, severity, mitigation status, and evidence for risk management reporting.", "og:title": "List organization risks | Comp AI API", "og:description": "List organization risks with owners, departments, severity, mitigation status, and evidence for risk management reporting." } }, "x-speakeasy-mcp": { "name": "get-all-risks" } }, "post": { "description": "Create a risk record with ownership and context so compliance teams can track mitigation and remediation work.", "operationId": "RisksController_createRisk_v1", "parameters": [], "requestBody": { "required": true, "description": "Risk creation data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRiskDto" } } } }, "responses": { "201": { "description": "Risk created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Risk ID", "example": "rsk_abc123def456" }, "title": { "type": "string", "description": "Risk title", "example": "Data breach vulnerability in user authentication system" }, "description": { "type": "string", "description": "Risk description", "example": "Weak password requirements could lead to unauthorized access to user accounts" }, "category": { "type": "string", "enum": [ "customer", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ], "example": "technology" }, "department": { "type": "string", "enum": [ "none", "admin", "gov", "hr", "it", "itsm", "qms" ], "nullable": true, "example": "it" }, "status": { "type": "string", "enum": [ "open", "pending", "closed", "archived" ], "example": "open" }, "likelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "impact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "major" }, "residualLikelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "treatmentStrategyDescription": { "type": "string", "nullable": true, "example": "Implement multi-factor authentication and strengthen password requirements" }, "treatmentStrategy": { "type": "string", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "example": "mitigate" }, "organizationId": { "type": "string", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to this risk", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the risk was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the risk was last updated" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "400": { "description": "Bad request - Invalid input data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "array", "items": { "type": "string" }, "example": [ "title should not be empty", "description should not be empty", "category must be a valid enum value" ] }, "error": { "type": "string", "example": "Bad Request" }, "statusCode": { "type": "number", "example": 400 } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Create organization risk", "tags": [ "Risks" ], "x-mint": { "metadata": { "title": "Create organization risk | Comp AI API", "sidebarTitle": "Create organization risk", "description": "Create a risk record with ownership and context so compliance teams can track mitigation and remediation work.", "og:title": "Create organization risk | Comp AI API", "og:description": "Create a risk record with ownership and context so compliance teams can track mitigation and remediation work." } }, "x-speakeasy-mcp": { "name": "create-risk" } } }, "/v1/risks/stats/by-assignee": { "get": { "operationId": "RisksController_getStatsByAssignee_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get risk statistics grouped by assignee", "tags": [ "Risks" ], "description": "Get risk statistics grouped by assignee in Comp AI. Create, update, and report on organizational risks with ownership, departments, and compliance remediation status.", "x-mint": { "metadata": { "title": "Get risk statistics grouped by assignee | Comp AI API", "sidebarTitle": "Get risk statistics grouped by assignee", "description": "Get risk statistics grouped by assignee in Comp AI. Create, update, and report on organizational risks with ownership, departments, and compliance.", "og:title": "Get risk statistics grouped by assignee | Comp AI API", "og:description": "Get risk statistics grouped by assignee in Comp AI. Create, update, and report on organizational risks with ownership, departments, and compliance." } }, "x-speakeasy-mcp": { "name": "get-stats-by-assignee" } } }, "/v1/risks/stats/by-department": { "get": { "operationId": "RisksController_getStatsByDepartment_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get risk counts grouped by department", "tags": [ "Risks" ], "description": "Get risk counts grouped by department in Comp AI. Create, update, and report on organizational risks with ownership, departments, and compliance remediation status.", "x-mint": { "metadata": { "title": "Get risk counts grouped by department | Comp AI API", "sidebarTitle": "Get risk counts grouped by department", "description": "Get risk counts grouped by department in Comp AI. Create, update, and report on organizational risks with ownership, departments, and compliance remediation.", "og:title": "Get risk counts grouped by department | Comp AI API", "og:description": "Get risk counts grouped by department in Comp AI. Create, update, and report on organizational risks with ownership, departments, and compliance remediation." } }, "x-speakeasy-mcp": { "name": "get-stats-by-department" } } }, "/v1/risks/{id}": { "get": { "description": "Retrieve one organization risk with owner, department, likelihood, impact, mitigation, and remediation context.", "operationId": "RisksController_getRiskById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Risk ID", "schema": { "example": "rsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Risk retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Risk ID", "example": "rsk_abc123def456" }, "title": { "type": "string", "description": "Risk title", "example": "Data breach vulnerability in user authentication system" }, "description": { "type": "string", "description": "Risk description", "example": "Weak password requirements could lead to unauthorized access to user accounts" }, "category": { "type": "string", "enum": [ "customer", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ], "example": "technology" }, "department": { "type": "string", "enum": [ "none", "admin", "gov", "hr", "it", "itsm", "qms" ], "nullable": true, "example": "it" }, "status": { "type": "string", "enum": [ "open", "pending", "closed", "archived" ], "example": "open" }, "likelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "impact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "major" }, "residualLikelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "treatmentStrategyDescription": { "type": "string", "nullable": true, "example": "Implement multi-factor authentication and strengthen password requirements" }, "treatmentStrategy": { "type": "string", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "example": "mitigate" }, "organizationId": { "type": "string", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to this risk", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the risk was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the risk was last updated" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "403": { "description": "Forbidden - User does not have permission to access this risk", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "You do not have access to view this risk" } } } } } }, "404": { "description": "Risk not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Risk with ID rsk_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get organization risk", "tags": [ "Risks" ], "x-mint": { "metadata": { "title": "Get organization risk | Comp AI API", "sidebarTitle": "Get organization risk", "description": "Retrieve one organization risk with owner, department, likelihood, impact, mitigation, and remediation context.", "og:title": "Get organization risk | Comp AI API", "og:description": "Retrieve one organization risk with owner, department, likelihood, impact, mitigation, and remediation context." } }, "x-speakeasy-mcp": { "name": "get-risk-by-id" } }, "patch": { "description": "Update a risk record as mitigation work progresses so compliance reports reflect the current risk posture.", "operationId": "RisksController_updateRisk_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Risk ID", "schema": { "example": "rsk_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "description": "Risk update data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRiskDto" } } } }, "responses": { "200": { "description": "Risk updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Risk ID", "example": "rsk_abc123def456" }, "title": { "type": "string", "description": "Risk title", "example": "Data breach vulnerability in user authentication system" }, "description": { "type": "string", "description": "Risk description", "example": "Weak password requirements could lead to unauthorized access to user accounts" }, "category": { "type": "string", "enum": [ "customer", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ], "example": "technology" }, "department": { "type": "string", "enum": [ "none", "admin", "gov", "hr", "it", "itsm", "qms" ], "nullable": true, "example": "it" }, "status": { "type": "string", "enum": [ "open", "pending", "closed", "archived" ], "example": "open" }, "likelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "impact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "major" }, "residualLikelihood": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "treatmentStrategyDescription": { "type": "string", "nullable": true, "example": "Implement multi-factor authentication and strengthen password requirements" }, "treatmentStrategy": { "type": "string", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "example": "mitigate" }, "organizationId": { "type": "string", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to this risk", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the risk was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the risk was last updated" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "400": { "description": "Bad request - Invalid input data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "array", "items": { "type": "string" }, "example": [ "title should not be empty", "category must be a valid enum value", "status must be a valid enum value" ] }, "error": { "type": "string", "example": "Bad Request" }, "statusCode": { "type": "number", "example": 400 } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Risk not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Risk with ID rsk_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update organization risk", "tags": [ "Risks" ], "x-mint": { "metadata": { "title": "Update organization risk | Comp AI API", "sidebarTitle": "Update organization risk", "description": "Update a risk record as mitigation work progresses so compliance reports reflect the current risk posture.", "og:title": "Update organization risk | Comp AI API", "og:description": "Update a risk record as mitigation work progresses so compliance reports reflect the current risk posture." } }, "x-speakeasy-mcp": { "name": "update-risk" } }, "delete": { "description": "Delete an organization risk that no longer needs active tracking in the risk register or compliance program.", "operationId": "RisksController_deleteRisk_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Risk ID", "schema": { "example": "rsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Risk deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Risk deleted successfully" }, "deletedRisk": { "type": "object", "properties": { "id": { "type": "string", "description": "Deleted risk ID", "example": "rsk_abc123def456" }, "title": { "type": "string", "description": "Deleted risk title", "example": "Data breach vulnerability in user authentication system" } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Risk not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Risk with ID rsk_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete organization risk", "tags": [ "Risks" ], "x-mint": { "metadata": { "title": "Delete organization risk | Comp AI API", "sidebarTitle": "Delete organization risk", "description": "Delete an organization risk that no longer needs active tracking in the risk register or compliance program.", "og:title": "Delete organization risk | Comp AI API", "og:description": "Delete an organization risk that no longer needs active tracking in the risk register or compliance program." } }, "x-speakeasy-mcp": { "name": "delete-risk" } } }, "/v1/vendors/global/search": { "get": { "operationId": "VendorsController_searchGlobalVendors_v1", "parameters": [ { "name": "name", "required": false, "in": "query", "description": "Vendor name to search for", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Search global vendors", "tags": [ "Vendors" ], "description": "Search global vendor records to prefill vendor profiles and speed up third-party risk assessment workflows.", "x-mint": { "metadata": { "title": "Search global vendors | Comp AI API", "sidebarTitle": "Search global vendors", "description": "Search global vendor records to prefill vendor profiles and speed up third-party risk assessment workflows.", "og:title": "Search global vendors | Comp AI API", "og:description": "Search global vendor records to prefill vendor profiles and speed up third-party risk assessment workflows." } }, "x-speakeasy-mcp": { "name": "search-global-vendors" } } }, "/v1/vendors": { "get": { "description": "List third-party vendors with risk level, owner, assessment status, and Trust Center visibility for vendor risk management.", "operationId": "VendorsController_getAllVendors_v1", "parameters": [], "responses": { "200": { "description": "Vendors retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Vendor ID", "example": "vnd_abc123def456" }, "name": { "type": "string", "description": "Vendor name", "example": "CloudTech Solutions Inc." }, "description": { "type": "string", "description": "Vendor description", "example": "Cloud infrastructure provider offering AWS-like services" }, "category": { "type": "string", "enum": [ "cloud", "infrastructure", "software_as_a_service", "finance", "marketing", "sales", "hr", "other" ], "example": "cloud" }, "status": { "type": "string", "enum": [ "not_assessed", "in_progress", "assessed" ], "example": "not_assessed" }, "inherentProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "inherentImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "moderate" }, "residualProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "website": { "type": "string", "nullable": true, "example": "https://www.cloudtechsolutions.com" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to manage this vendor", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the vendor was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the vendor was last updated" } } } }, "count": { "type": "number", "description": "Total number of vendors", "example": 12 }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "List vendors", "tags": [ "Vendors" ], "x-mint": { "metadata": { "title": "List vendors | Comp AI API", "sidebarTitle": "List vendors", "description": "List third-party vendors with risk level, owner, assessment status, and Trust Center visibility for vendor risk management.", "og:title": "List vendors | Comp AI API", "og:description": "List third-party vendors with risk level, owner, assessment status, and Trust Center visibility for vendor risk management." } }, "x-speakeasy-mcp": { "name": "get-all-vendors" } }, "post": { "description": "Create a vendor record so teams can track third-party risk, assessment evidence, owner, category, and compliance status.", "operationId": "VendorsController_createVendor_v1", "parameters": [], "requestBody": { "required": true, "description": "Vendor creation data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateVendorDto" } } } }, "responses": { "201": { "description": "Vendor created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Vendor ID", "example": "vnd_abc123def456" }, "name": { "type": "string", "description": "Vendor name", "example": "CloudTech Solutions Inc." }, "description": { "type": "string", "description": "Vendor description", "example": "Cloud infrastructure provider offering AWS-like services including compute, storage, and networking solutions for enterprise customers." }, "category": { "type": "string", "enum": [ "cloud", "infrastructure", "software_as_a_service", "finance", "marketing", "sales", "hr", "other" ], "example": "cloud" }, "status": { "type": "string", "enum": [ "not_assessed", "in_progress", "assessed" ], "example": "not_assessed" }, "inherentProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "inherentImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "moderate" }, "residualProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "website": { "type": "string", "nullable": true, "example": "https://www.cloudtechsolutions.com" }, "organizationId": { "type": "string", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to manage this vendor", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the vendor was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the vendor was last updated" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "400": { "description": "Bad request - Invalid input data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "array", "items": { "type": "string" }, "example": [ "name should not be empty", "description should not be empty", "category must be a valid enum value", "website must be a URL address" ] }, "error": { "type": "string", "example": "Bad Request" }, "statusCode": { "type": "number", "example": 400 } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Create vendor", "tags": [ "Vendors" ], "x-mint": { "metadata": { "title": "Create vendor | Comp AI API", "sidebarTitle": "Create vendor", "description": "Create a vendor record so teams can track third-party risk, assessment evidence, owner, category, and compliance status.", "og:title": "Create vendor | Comp AI API", "og:description": "Create a vendor record so teams can track third-party risk, assessment evidence, owner, category, and compliance status." } }, "x-speakeasy-mcp": { "name": "create-vendor" } } }, "/v1/vendors/{id}": { "get": { "description": "Retrieve one vendor record with ownership, review status, risk context, and third-party compliance metadata.", "operationId": "VendorsController_getVendorById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Vendor ID", "schema": { "example": "vnd_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Vendor retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Vendor ID", "example": "vnd_abc123def456" }, "name": { "type": "string", "description": "Vendor name", "example": "CloudTech Solutions Inc." }, "description": { "type": "string", "description": "Vendor description", "example": "Cloud infrastructure provider offering AWS-like services including compute, storage, and networking solutions for enterprise customers." }, "category": { "type": "string", "enum": [ "cloud", "infrastructure", "software_as_a_service", "finance", "marketing", "sales", "hr", "other" ], "example": "cloud" }, "status": { "type": "string", "enum": [ "not_assessed", "in_progress", "assessed" ], "example": "not_assessed" }, "inherentProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "inherentImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "moderate" }, "residualProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "website": { "type": "string", "nullable": true, "example": "https://www.cloudtechsolutions.com" }, "organizationId": { "type": "string", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to manage this vendor", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the vendor was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the vendor was last updated" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Vendor not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Vendor with ID vnd_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get vendor details", "tags": [ "Vendors" ], "x-mint": { "metadata": { "title": "Get vendor details | Comp AI API", "sidebarTitle": "Get vendor details", "description": "Retrieve one vendor record with ownership, review status, risk context, and third-party compliance metadata.", "og:title": "Get vendor details | Comp AI API", "og:description": "Retrieve one vendor record with ownership, review status, risk context, and third-party compliance metadata." } }, "x-speakeasy-mcp": { "name": "get-vendor-by-id" } }, "patch": { "description": "Update vendor ownership, risk attributes, review metadata, and third-party compliance context for an organization.", "operationId": "VendorsController_updateVendor_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Vendor ID", "schema": { "example": "vnd_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "description": "Vendor update data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateVendorDto" } } } }, "responses": { "200": { "description": "Vendor updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Vendor ID", "example": "vnd_abc123def456" }, "name": { "type": "string", "description": "Vendor name", "example": "CloudTech Solutions Inc." }, "description": { "type": "string", "description": "Vendor description", "example": "Cloud infrastructure provider offering AWS-like services including compute, storage, and networking solutions for enterprise customers." }, "category": { "type": "string", "enum": [ "cloud", "infrastructure", "software_as_a_service", "finance", "marketing", "sales", "hr", "other" ], "example": "cloud" }, "status": { "type": "string", "enum": [ "not_assessed", "in_progress", "assessed" ], "example": "assessed" }, "inherentProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "possible" }, "inherentImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "moderate" }, "residualProbability": { "type": "string", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "example": "unlikely" }, "residualImpact": { "type": "string", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "example": "minor" }, "website": { "type": "string", "nullable": true, "example": "https://www.cloudtechsolutions.com" }, "organizationId": { "type": "string", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "nullable": true, "description": "ID of the user assigned to manage this vendor", "example": "mem_abc123def456" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the vendor was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the vendor was last updated" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "400": { "description": "Bad request - Invalid input data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "array", "items": { "type": "string" }, "example": [ "name should not be empty", "category must be a valid enum value", "status must be a valid enum value", "website must be a URL address" ] }, "error": { "type": "string", "example": "Bad Request" }, "statusCode": { "type": "number", "example": 400 } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Vendor not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Vendor with ID vnd_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update vendor record", "tags": [ "Vendors" ], "x-mint": { "metadata": { "title": "Update vendor record | Comp AI API", "sidebarTitle": "Update vendor record", "description": "Update vendor ownership, risk attributes, review metadata, and third-party compliance context for an organization.", "og:title": "Update vendor record | Comp AI API", "og:description": "Update vendor ownership, risk attributes, review metadata, and third-party compliance context for an organization." } }, "x-speakeasy-mcp": { "name": "update-vendor" } }, "delete": { "description": "Permanently removes a vendor from the organization. This action cannot be undone.", "operationId": "VendorsController_deleteVendor_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Vendor ID", "schema": { "example": "vnd_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Vendor deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Vendor deleted successfully" }, "deletedVendor": { "type": "object", "properties": { "id": { "type": "string", "description": "Deleted vendor ID", "example": "vnd_abc123def456" }, "name": { "type": "string", "description": "Deleted vendor name", "example": "CloudTech Solutions Inc." } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "User information (only for session auth)", "properties": { "id": { "type": "string", "example": "usr_def456ghi789" }, "email": { "type": "string", "example": "user@example.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Vendor not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Vendor with ID vnd_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Internal server error" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete vendor", "tags": [ "Vendors" ], "x-mint": { "metadata": { "title": "Delete vendor | Comp AI API", "sidebarTitle": "Delete vendor", "description": "Permanently removes a vendor from the organization. This action cannot be undone.", "og:title": "Delete vendor | Comp AI API", "og:description": "Permanently removes a vendor from the organization. This action cannot be undone." } }, "x-speakeasy-mcp": { "name": "delete-vendor" } } }, "/v1/vendors/{id}/trigger-assessment": { "post": { "operationId": "VendorsController_triggerAssessment_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Vendor ID", "schema": { "example": "vnd_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Trigger vendor risk assessment", "tags": [ "Vendors" ], "description": "Trigger a vendor risk assessment so Comp AI can update third-party risk evidence and vendor security review status.", "x-mint": { "metadata": { "title": "Trigger vendor risk assessment | Comp AI API", "sidebarTitle": "Trigger vendor risk assessment", "description": "Trigger a vendor risk assessment so Comp AI can update third-party risk evidence and vendor security review status.", "og:title": "Trigger vendor risk assessment | Comp AI API", "og:description": "Trigger a vendor risk assessment so Comp AI can update third-party risk evidence and vendor security review status." } }, "x-speakeasy-mcp": { "name": "trigger-assessment" } } }, "/v1/context": { "get": { "description": "List organization context entries used as approved source material for evidence, questionnaires, policies, and AI workflows.", "operationId": "ContextController_getAllContext_v1", "parameters": [ { "name": "search", "required": false, "in": "query", "description": "Search by question text", "schema": { "type": "string" } }, { "name": "page", "required": false, "in": "query", "description": "Page number (1-based)", "schema": { "type": "string" } }, { "name": "perPage", "required": false, "in": "query", "description": "Items per page", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Context entries retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "organizationId": { "type": "string" }, "question": { "type": "string" }, "answer": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } } }, "count": { "type": "number" }, "authType": { "type": "string", "enum": [ "api-key", "session" ] } } }, "example": { "data": [ { "id": "ctx_abc123def456", "organizationId": "org_xyz789uvw012", "question": "How do we handle user authentication in our application?", "answer": "We use a hybrid authentication system supporting both API keys and session-based authentication.", "tags": [ "authentication", "security", "api", "sessions" ], "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T14:20:00.000Z" }, { "id": "ctx_ghi789jkl012", "organizationId": "org_xyz789uvw012", "question": "What database do we use and why?", "answer": "We use PostgreSQL as our primary database with Prisma as the ORM.", "tags": [ "database", "postgresql", "prisma", "architecture" ], "createdAt": "2024-01-14T09:15:00.000Z", "updatedAt": "2024-01-14T09:15:00.000Z" } ], "count": 2, "authType": "apikey" } } } }, "401": { "description": "Unauthorized - Invalid or missing authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 401 } } }, "example": { "message": "Unauthorized", "statusCode": 401 } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 404 } } }, "example": { "message": "Organization not found", "statusCode": 404 } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 500 } } }, "example": { "message": "Internal server error", "statusCode": 500 } } } } }, "security": [ { "apikey": [] } ], "summary": "List organization context", "tags": [ "Context" ], "x-mint": { "metadata": { "title": "List organization context | Comp AI API", "sidebarTitle": "List organization context", "description": "List organization context entries used as approved source material for evidence, questionnaires, policies, and AI workflows.", "og:title": "List organization context | Comp AI API", "og:description": "List organization context entries used as approved source material for evidence, questionnaires, policies, and AI workflows." } }, "x-speakeasy-mcp": { "name": "get-all-context" } }, "post": { "description": "Creates a new context entry for the authenticated organization. All required fields must be provided.", "operationId": "ContextController_createContext_v1", "parameters": [], "requestBody": { "required": true, "description": "Context entry data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContextDto" }, "examples": { "Authentication Context": { "value": { "question": "How do we handle user authentication in our application?", "answer": "We use a hybrid authentication system supporting both API keys and session-based authentication. API keys are used for programmatic access while sessions are used for web interface interactions.", "tags": [ "authentication", "security", "api", "sessions" ] } }, "Database Context": { "value": { "question": "What database do we use and why?", "answer": "We use PostgreSQL as our primary database with Prisma as the ORM. PostgreSQL provides excellent performance, ACID compliance, and supports advanced features like JSON columns and full-text search.", "tags": [ "database", "postgresql", "prisma", "architecture" ] } } } } } }, "responses": { "201": { "description": "Context entry created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "organizationId": { "type": "string" }, "question": { "type": "string" }, "answer": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "authType": { "type": "string", "enum": [ "api-key", "session" ] } } }, "example": { "id": "ctx_abc123def456", "organizationId": "org_xyz789uvw012", "question": "How do we handle user authentication in our application?", "answer": "We use a hybrid authentication system supporting both API keys and session-based authentication.", "tags": [ "authentication", "security", "api", "sessions" ], "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T10:30:00.000Z", "authType": "apikey" } } } }, "400": { "description": "Bad request - Invalid input data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "array", "items": { "type": "string" } }, "error": { "type": "string" }, "statusCode": { "type": "number" } } }, "example": { "message": [ "question should not be empty", "answer should not be empty" ], "error": "Bad Request", "statusCode": 400 } } } }, "401": { "description": "Unauthorized - Invalid or missing authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 401 } } }, "example": { "message": "Unauthorized", "statusCode": 401 } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 404 } } }, "example": { "message": "Organization not found", "statusCode": 404 } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 500 } } }, "example": { "message": "Internal server error", "statusCode": 500 } } } } }, "security": [ { "apikey": [] } ], "summary": "Create a new context entry", "tags": [ "Context" ], "x-mint": { "metadata": { "title": "Create a new context entry | Comp AI API", "sidebarTitle": "Create a new context entry", "description": "Creates a new context entry for the authenticated organization. All required fields must be provided.", "og:title": "Create a new context entry | Comp AI API", "og:description": "Creates a new context entry for the authenticated organization. All required fields must be provided." } }, "x-speakeasy-mcp": { "name": "create-context" } } }, "/v1/context/{id}": { "get": { "description": "Retrieve one organization context entry with source details and approved content for compliance automation workflows.", "operationId": "ContextController_getContextById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Context entry ID", "schema": { "example": "ctx_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Context entry retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "example": "ctx_abc123def456" }, "organizationId": { "type": "string", "example": "org_xyz789uvw012" }, "question": { "type": "string" }, "answer": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" }, "example": [ "authentication", "security" ] }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "authType": { "type": "string", "enum": [ "api-key", "session" ] } } }, "example": { "id": "ctx_abc123def456", "organizationId": "org_xyz789uvw012", "question": "How do we handle user authentication in our application?", "answer": "We use a hybrid authentication system supporting both API keys and session-based authentication.", "tags": [ "authentication", "security", "api", "sessions" ], "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T14:20:00.000Z", "authType": "apikey" } } } }, "401": { "description": "Unauthorized - Invalid or missing authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" }, "statusCode": { "type": "number", "example": 401 } } }, "example": { "message": "Unauthorized", "statusCode": 401 } } } }, "404": { "description": "Context entry not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 404 } } }, "example": { "message": "Context entry with ID ctx_abc123def456 not found in organization org_xyz789uvw012", "statusCode": 404 } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 500 } } }, "example": { "message": "Internal server error", "statusCode": 500 } } } } }, "security": [ { "apikey": [] } ], "summary": "Get organization context", "tags": [ "Context" ], "x-mint": { "metadata": { "title": "Get organization context | Comp AI API", "sidebarTitle": "Get organization context", "description": "Retrieve one organization context entry with source details and approved content for compliance automation workflows.", "og:title": "Get organization context | Comp AI API", "og:description": "Retrieve one organization context entry with source details and approved content for compliance automation workflows." } }, "x-speakeasy-mcp": { "name": "get-context-by-id" } }, "patch": { "description": "Update an organization context entry so approved business details stay current for evidence and questionnaire automation.", "operationId": "ContextController_updateContext_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Context entry ID", "schema": { "example": "ctx_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "description": "Partial context entry data to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateContextDto" }, "examples": { "Update Tags": { "value": { "tags": [ "authentication", "security", "api", "sessions", "updated" ] } }, "Update Answer": { "value": { "answer": "Updated: We use a hybrid authentication system supporting both API keys and session-based authentication. Recent updates include support for OAuth2 providers." } } } } } }, "responses": { "200": { "description": "Context entry updated successfully", "content": { "application/json": { "example": { "id": "ctx_abc123def456", "organizationId": "org_xyz789uvw012", "question": "How do we handle user authentication in our application?", "answer": "Updated: We use a hybrid authentication system supporting both API keys and session-based authentication with OAuth2 support.", "tags": [ "authentication", "security", "api", "sessions", "oauth2" ], "createdAt": "2024-01-15T10:30:00.000Z", "updatedAt": "2024-01-15T15:45:00.000Z", "authType": "apikey" } } } }, "400": { "description": "Bad request - Invalid input data", "content": { "application/json": { "example": { "message": [ "tags must be an array of strings" ], "error": "Bad Request", "statusCode": 400 } } } }, "401": { "description": "Unauthorized - Invalid or missing authentication", "content": { "application/json": { "example": { "message": "Unauthorized", "statusCode": 401 } } } }, "404": { "description": "Context entry not found", "content": { "application/json": { "example": { "message": "Context entry with ID ctx_abc123def456 not found in organization org_xyz789uvw012", "statusCode": 404 } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "example": { "message": "Internal server error", "statusCode": 500 } } } } }, "security": [ { "apikey": [] } ], "summary": "Update organization context", "tags": [ "Context" ], "x-mint": { "metadata": { "title": "Update organization context | Comp AI API", "sidebarTitle": "Update organization context", "description": "Update an organization context entry so approved business details stay current for evidence and questionnaire automation.", "og:title": "Update organization context | Comp AI API", "og:description": "Update an organization context entry so approved business details stay current for evidence and questionnaire automation." } }, "x-speakeasy-mcp": { "name": "update-context" } }, "delete": { "description": "Permanently removes a context entry from the organization. This action cannot be undone.", "operationId": "ContextController_deleteContext_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Context entry ID", "schema": { "example": "ctx_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Context entry deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "deletedContext": { "type": "object", "properties": { "id": { "type": "string" }, "question": { "type": "string" } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ] } } }, "example": { "message": "Context entry deleted successfully", "deletedContext": { "id": "ctx_abc123def456", "question": "How do we handle user authentication in our application?" }, "authType": "apikey" } } } }, "401": { "description": "Unauthorized - Invalid or missing authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 401 } } }, "example": { "message": "Unauthorized", "statusCode": 401 } } } }, "404": { "description": "Context entry not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 404 } } }, "example": { "message": "Context entry with ID ctx_abc123def456 not found in organization org_xyz789uvw012", "statusCode": 404 } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 500 } } }, "example": { "message": "Internal server error", "statusCode": 500 } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete context entry", "tags": [ "Context" ], "x-mint": { "metadata": { "title": "Delete context entry | Comp AI API", "sidebarTitle": "Delete context entry", "description": "Permanently removes a context entry from the organization. This action cannot be undone.", "og:title": "Delete context entry | Comp AI API", "og:description": "Permanently removes a context entry from the organization. This action cannot be undone." } }, "x-speakeasy-mcp": { "name": "delete-context" } } }, "/v1/devices": { "get": { "description": "List managed employee devices with endpoint compliance status, ownership, and security check results for workforce controls.", "operationId": "DevicesController_getAllDevices_v1", "parameters": [], "responses": { "200": { "description": "Devices retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/DeviceResponseDto" } }, "count": { "type": "number", "description": "Total number of devices", "example": 25 }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "properties": { "id": { "type": "string", "description": "User ID", "example": "usr_abc123def456" }, "email": { "type": "string", "description": "User email", "example": "user@company.com" } } } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid or expired API key" } } } } } }, "404": { "description": "Organization not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization with ID org_abc123def456 not found" } } } } } }, "500": { "description": "Internal server error - FleetDM integration issue", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Organization does not have FleetDM configured" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "List managed devices", "tags": [ "Devices" ], "x-mint": { "metadata": { "title": "List managed devices | Comp AI API", "sidebarTitle": "List managed devices", "description": "List managed employee devices with endpoint compliance status, ownership, and security check results for workforce controls.", "og:title": "List managed devices | Comp AI API", "og:description": "List managed employee devices with endpoint compliance status, ownership, and security check results for workforce controls." } }, "x-speakeasy-mcp": { "name": "get-all-devices" } } }, "/v1/devices/member/{memberId}": { "get": { "description": "Returns all devices assigned to a specific member within the authenticated organization. Devices are fetched from FleetDM using the member's dedicated fleetDmLabelId.", "operationId": "DevicesController_getDevicesByMember_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "description": "Member ID to get devices for", "schema": { "example": "mem_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Member devices retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DevicesByMemberResponseDto" } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Organization or member not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Member with ID mem_abc123def456 not found in organization org_abc123def456" } } } } } }, "500": { "description": "Internal server error - FleetDM integration issue" } }, "security": [ { "apikey": [] } ], "summary": "Get devices by member ID", "tags": [ "Devices" ], "x-mint": { "metadata": { "title": "Get devices by member ID | Comp AI API", "sidebarTitle": "Get devices by member ID", "description": "Returns all devices assigned to a specific member within the authenticated organization. Devices are fetched from FleetDM using the member's dedicated.", "og:title": "Get devices by member ID | Comp AI API", "og:description": "Returns all devices assigned to a specific member within the authenticated organization. Devices are fetched from FleetDM using the member's dedicated." } }, "x-speakeasy-mcp": { "name": "get-devices-by-member" } } }, "/v1/devices/{id}": { "delete": { "description": "Delete device in Comp AI. Read and manage employee device inventory and Fleet compliance data used for endpoint security controls.", "operationId": "DevicesController_deleteDevice_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Device ID to delete", "schema": { "example": "dev_abc123def456", "type": "string" } } ], "responses": { "204": { "description": "Device deleted successfully" }, "403": { "description": "Forbidden - only organization owners can delete devices" }, "404": { "description": "Organization or device not found" } }, "security": [ { "apikey": [] } ], "summary": "Delete device", "tags": [ "Devices" ], "x-mint": { "metadata": { "title": "Delete device | Comp AI API", "sidebarTitle": "Delete device", "description": "Delete device in Comp AI. Read and manage employee device inventory and Fleet compliance data used for endpoint security controls.", "og:title": "Delete device | Comp AI API", "og:description": "Delete device in Comp AI. Read and manage employee device inventory and Fleet compliance data used for endpoint security controls." } }, "x-speakeasy-mcp": { "name": "delete-device" } } }, "/v1/policies": { "get": { "description": "Lists active compliance policies by default. Use includeArchived=true to include archived rows and excludeContent=true when you only need policy metadata.", "operationId": "PoliciesController_getAllPolicies_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "excludeContent", "required": false, "in": "query", "description": "When true, omits `content` and `draftContent` from each policy in the response. Use this when listing policies to find one by name/ID — fetch the full content via GET /v1/policies/{id} after.", "schema": { "type": "boolean" } }, { "name": "includeArchived", "required": false, "in": "query", "description": "When true, includes user-archived and framework-sync-archived policies in the response. Defaults to false.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Policies retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/PolicyResponseDto" }, "description": "Array of policies" }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" }, "authenticatedUser": { "type": "object", "description": "Authenticated user information (only present for session auth)", "properties": { "id": { "type": "string", "description": "User ID", "example": "usr_abc123def456" }, "email": { "type": "string", "description": "User email", "example": "user@company.com" } } } }, "required": [ "data", "authType" ] }, "example": { "data": [ { "id": "pol_abc123def456", "name": "Data Privacy Policy", "description": "This policy outlines how we handle and protect personal data", "status": "draft", "content": [ { "type": "paragraph", "attrs": { "textAlign": null }, "content": [ { "type": "text", "text": "This policy outlines our commitment to protecting personal data." } ] } ], "frequency": "yearly", "department": "IT", "isRequiredToSign": true, "signedBy": [], "reviewDate": "2024-12-31T00:00:00.000Z", "isArchived": false, "archivedAt": null, "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-15T00:00:00.000Z", "lastArchivedAt": null, "lastPublishedAt": "2024-01-10T00:00:00.000Z", "organizationId": "org_abc123def456", "assigneeId": "usr_abc123def456", "approverId": "usr_xyz789abc123", "policyTemplateId": null } ], "authType": "session", "authenticatedUser": { "id": "usr_abc123def456", "email": "user@company.com" } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "List compliance policies", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "list-policies" }, "x-mint": { "metadata": { "title": "List compliance policies | Comp AI API", "sidebarTitle": "List compliance policies", "description": "Lists active compliance policies by default. Use includeArchived=true to include archived rows and excludeContent=true when you only need policy metadata.", "og:title": "List compliance policies | Comp AI API", "og:description": "Lists active compliance policies by default. Use includeArchived=true to include archived rows and excludeContent=true when you only need policy metadata." } }, "x-codeSamples": [ { "lang": "bash", "label": "List policies", "source": "curl --request GET --url \"https://api.trycomp.ai/v1/policies\" --header \"X-API-Key: $COMP_AI_API_KEY\"" }, { "lang": "bash", "label": "List policies (lightweight, no content)", "source": "curl --request GET --url \"https://api.trycomp.ai/v1/policies?excludeContent=true\" --header \"X-API-Key: $COMP_AI_API_KEY\"" }, { "lang": "bash", "label": "List policies including archived", "source": "curl --request GET --url \"https://api.trycomp.ai/v1/policies?includeArchived=true\" --header \"X-API-Key: $COMP_AI_API_KEY\"" } ] }, "post": { "description": "Create a policy record that can be reviewed, versioned, published, linked to controls, and used as source evidence for questionnaires.", "operationId": "PoliciesController_createPolicy_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "description": "Policy creation data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePolicyDto" } } } }, "responses": { "201": { "description": "Policy created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyResponseDto" }, "example": { "id": "pol_abc123def456", "name": "Data Privacy Policy", "description": "This policy outlines how we handle and protect personal data", "status": "draft", "content": [ { "type": "paragraph", "content": [ { "type": "text", "text": "Policy content here" } ] } ], "frequency": "yearly", "department": "it", "isRequiredToSign": true, "signedBy": [], "reviewDate": "2024-12-31T00:00:00.000Z", "isArchived": false, "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-15T00:00:00.000Z", "organizationId": "org_abc123def456", "assigneeId": "usr_abc123def456", "approverId": "usr_xyz789abc123" } } } }, "400": { "description": "Bad Request - Invalid policy data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid policy content format" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Create compliance policy", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Create compliance policy | Comp AI API", "sidebarTitle": "Create compliance policy", "description": "Create a policy record that can be reviewed, versioned, published, linked to controls, and used as source evidence for questionnaires.", "og:title": "Create compliance policy | Comp AI API", "og:description": "Create a policy record that can be reviewed, versioned, published, linked to controls, and used as source evidence for questionnaires." } }, "x-speakeasy-mcp": { "name": "create-policy" } } }, "/v1/policies/publish-all": { "post": { "operationId": "PoliciesController_publishAllPolicies_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Publish all draft policies", "tags": [ "Policies" ], "description": "Publish draft policies in bulk so approved policy content can power Trust Center sharing, questionnaire answers, and audit evidence.", "x-mint": { "metadata": { "title": "Publish all draft policies | Comp AI API", "sidebarTitle": "Publish all draft policies", "description": "Publish draft policies in bulk so approved policy content can power Trust Center sharing, questionnaire answers, and audit evidence.", "og:title": "Publish all draft policies | Comp AI API", "og:description": "Publish draft policies in bulk so approved policy content can power Trust Center sharing, questionnaire answers, and audit evidence." } }, "x-speakeasy-mcp": { "name": "publish-all-policies" } } }, "/v1/policies/download-all": { "get": { "description": "Generate a single PDF bundle of published compliance policies for auditors, customer security reviews, and Trust Center workflows.", "operationId": "PoliciesController_downloadAllPolicies_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Signed URL for PDF bundle returned" }, "404": { "description": "No published policies found" } }, "security": [ { "apikey": [] } ], "summary": "Download all published policies", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Download all published policies | Comp AI API", "sidebarTitle": "Download all published policies", "description": "Generate a single PDF bundle of published compliance policies for auditors, customer security reviews, and Trust Center workflows.", "og:title": "Download all published policies | Comp AI API", "og:description": "Generate a single PDF bundle of published compliance policies for auditors, customer security reviews, and Trust Center workflows." } }, "x-speakeasy-mcp": { "name": "download-all-policies" } } }, "/v1/policies/{id}/controls": { "get": { "operationId": "PoliciesController_getPolicyControls_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get mapped and all controls for a policy", "tags": [ "Policies" ], "description": "Get mapped and all controls for a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Get mapped and all controls for a policy | Comp AI API", "sidebarTitle": "Get mapped and all controls for a policy", "description": "Get mapped and all controls for a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting.", "og:title": "Get mapped and all controls for a policy | Comp AI API", "og:description": "Get mapped and all controls for a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting." } }, "x-speakeasy-mcp": { "name": "get-policy-controls" } }, "post": { "operationId": "PoliciesController_addPolicyControls_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Map controls to a policy", "tags": [ "Policies" ], "description": "Map controls to a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Map controls to a policy | Comp AI API", "sidebarTitle": "Map controls to a policy", "description": "Map controls to a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "og:title": "Map controls to a policy | Comp AI API", "og:description": "Map controls to a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." } }, "x-speakeasy-mcp": { "name": "add-policy-controls" } } }, "/v1/policies/{id}/evidence-tasks": { "get": { "operationId": "PoliciesController_getPolicyEvidenceTasks_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get tasks that serve as evidence for a policy, grouped by control", "tags": [ "Policies" ], "description": "Get tasks that serve as evidence for a policy, grouped by control in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Get tasks that serve as evidence for a | Comp AI API", "sidebarTitle": "Get tasks that serve as evidence for a policy, grouped by control", "description": "Get tasks that serve as evidence for a policy, grouped by control in Comp AI. Create, version, publish, export, map, and improve compliance policies.", "og:title": "Get tasks that serve as evidence for a | Comp AI API", "og:description": "Get tasks that serve as evidence for a policy, grouped by control in Comp AI. Create, version, publish, export, map, and improve compliance policies." } }, "x-speakeasy-mcp": { "name": "get-policy-evidence-tasks" } } }, "/v1/policies/{id}/regenerate": { "post": { "operationId": "PoliciesController_regeneratePolicy_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Regenerate policy with AI", "tags": [ "Policies" ], "description": "Regenerate policy content using Comp AI while keeping the result reviewable before it is published or used as compliance evidence.", "x-mint": { "metadata": { "title": "Regenerate policy with AI | Comp AI API", "sidebarTitle": "Regenerate policy with AI", "description": "Regenerate policy content using Comp AI while keeping the result reviewable before it is published or used as compliance evidence.", "og:title": "Regenerate policy with AI | Comp AI API", "og:description": "Regenerate policy content using Comp AI while keeping the result reviewable before it is published or used as compliance evidence." } }, "x-speakeasy-mcp": { "name": "regenerate-policy" } } }, "/v1/policies/{id}/pdf/signed-url": { "get": { "operationId": "PoliciesController_getPdfSignedUrl_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } }, { "name": "versionId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get a signed URL for the policy PDF", "tags": [ "Policies" ], "description": "Get a signed URL for the policy PDF in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Get a signed URL for the policy PDF | Comp AI API", "sidebarTitle": "Get a signed URL for the policy PDF", "description": "Get a signed URL for the policy PDF in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting.", "og:title": "Get a signed URL for the policy PDF | Comp AI API", "og:description": "Get a signed URL for the policy PDF in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting." } }, "x-speakeasy-mcp": { "name": "get-pdf-signed-url" } } }, "/v1/policies/{id}/pdf": { "post": { "description": "Uploads a PDF via multipart `file` or base64 `fileData` JSON. Defaults to the latest draft if no `versionId`; 400 if no draft is available. UI-only — AI clients should use the presigned `/pdf/upload-url` + `/pdf/confirm` flow.", "operationId": "PoliciesController_uploadPolicyPdf_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "oneOf": [ { "description": "Multipart file upload (recommended)", "type": "object", "properties": { "file": { "type": "string", "format": "binary" }, "versionId": { "type": "string", "description": "Target version ID. If omitted, uploads to the latest draft version." } }, "required": [ "file" ] }, { "description": "JSON with base64-encoded file data", "type": "object", "properties": { "fileName": { "type": "string" }, "fileType": { "type": "string" }, "fileData": { "type": "string", "description": "Base64-encoded file content" }, "versionId": { "type": "string", "description": "Target version ID. If omitted, uploads to the latest draft version." } }, "required": [ "fileName", "fileType", "fileData" ] } ] } }, "application/json": { "schema": { "oneOf": [ { "description": "Multipart file upload (recommended)", "type": "object", "properties": { "file": { "type": "string", "format": "binary" }, "versionId": { "type": "string", "description": "Target version ID. If omitted, uploads to the latest draft version." } }, "required": [ "file" ] }, { "description": "JSON with base64-encoded file data", "type": "object", "properties": { "fileName": { "type": "string" }, "fileType": { "type": "string" }, "fileData": { "type": "string", "description": "Base64-encoded file content" }, "versionId": { "type": "string", "description": "Target version ID. If omitted, uploads to the latest draft version." } }, "required": [ "fileName", "fileType", "fileData" ] } ] } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload a PDF to a policy version (UI-only)", "tags": [ "Policies" ], "x-speakeasy-mcp": { "disabled": true }, "x-mint": { "metadata": { "title": "Upload a PDF to a policy version (UI-only) | Comp AI API", "sidebarTitle": "Upload a PDF to a policy version (UI-only)", "description": "Uploads a PDF via multipart `file` or base64 `fileData` JSON. Defaults to the latest draft if no `versionId`; 400 if no draft is available. UI-only — AI.", "og:title": "Upload a PDF to a policy version (UI-only) | Comp AI API", "og:description": "Uploads a PDF via multipart `file` or base64 `fileData` JSON. Defaults to the latest draft if no `versionId`; 400 if no draft is available. UI-only — AI." } } }, "delete": { "description": "Deletes the PDF from a specific policy version. If no versionId is provided, deletes from the latest draft version. Cannot delete PDFs from published or pending-approval versions.", "operationId": "PoliciesController_deletePolicyPdf_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } }, { "name": "versionId", "required": false, "in": "query", "description": "Target version ID. If omitted, targets the latest draft version.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Delete a policy version PDF", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Delete a policy version PDF | Comp AI API", "sidebarTitle": "Delete a policy version PDF", "description": "Deletes the PDF from a specific policy version. If no versionId is provided, deletes from the latest draft version. Cannot delete PDFs from published.", "og:title": "Delete a policy version PDF | Comp AI API", "og:description": "Deletes the PDF from a specific policy version. If no versionId is provided, deletes from the latest draft version. Cannot delete PDFs from published." } }, "x-speakeasy-mcp": { "name": "delete-policy-pdf" } } }, "/v1/policies/{id}/pdf/upload-url": { "post": { "description": "Generates a presigned S3 URL for uploading a policy PDF directly to storage. Use this when attaching a PDF to a compliance policy — the file bytes are uploaded straight to S3 without passing through the API. Requires the policy ID; if you only know the policy name, look it up first via the list-compliance-policies tool. After uploading the file to the returned URL, finalize the attachment by calling confirm-policy-pdf-uploaded with the same s3Key.", "operationId": "PoliciesController_requestPolicyPdfUploadUrl_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestPolicyPdfUploadUrlDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyPdfUploadUrlResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Request a presigned URL to upload a policy PDF", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "request-policy-pdf-upload-url" }, "x-mint": { "metadata": { "title": "Request a presigned URL to upload a policy PDF | Comp AI API", "sidebarTitle": "Request a presigned URL to upload a policy PDF", "description": "Generates a presigned S3 URL for uploading a policy PDF directly to storage. Use this when attaching a PDF to a compliance policy — the file bytes are.", "og:title": "Request a presigned URL to upload a policy PDF | Comp AI API", "og:description": "Generates a presigned S3 URL for uploading a policy PDF directly to storage. Use this when attaching a PDF to a compliance policy — the file bytes are." } } } }, "/v1/policies/{id}/pdf/confirm": { "post": { "description": "Links an uploaded PDF to a compliance policy after the file has been PUT to a presigned S3 URL. Call this after request-policy-pdf-upload-url returned an s3Key and you successfully uploaded the file bytes to that URL. The endpoint verifies the file exists in S3 before linking it to the policy or version.", "operationId": "PoliciesController_confirmPolicyPdfUploaded_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmPolicyPdfUploadedDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Confirm a policy PDF upload completed", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "confirm-policy-pdf-uploaded" }, "x-mint": { "metadata": { "title": "Confirm a policy PDF upload completed | Comp AI API", "sidebarTitle": "Confirm a policy PDF upload completed", "description": "Links an uploaded PDF to a compliance policy after the file has been PUT to a presigned S3 URL. Call this after request-policy-pdf-upload-url returned an.", "og:title": "Confirm a policy PDF upload completed | Comp AI API", "og:description": "Links an uploaded PDF to a compliance policy after the file has been PUT to a presigned S3 URL. Call this after request-policy-pdf-upload-url returned an." } } } }, "/v1/policies/{id}/pdf-url": { "get": { "operationId": "PoliciesController_getPdfUrl_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } }, { "name": "versionId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get signed URL for policy PDF (alternate path)", "tags": [ "Policies" ], "description": "Get signed URL for policy PDF (alternate path) in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Get signed URL for policy PDF (alternate path) | Comp AI API", "sidebarTitle": "Get signed URL for policy PDF (alternate path)", "description": "Get signed URL for policy PDF (alternate path) in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting.", "og:title": "Get signed URL for policy PDF (alternate path) | Comp AI API", "og:description": "Get signed URL for policy PDF (alternate path) in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting." } }, "x-speakeasy-mcp": { "name": "get-pdf-url" } } }, "/v1/policies/{id}/controls/{controlId}": { "delete": { "operationId": "PoliciesController_removePolicyControl_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } }, { "name": "controlId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Remove a control mapping from a policy", "tags": [ "Policies" ], "description": "Remove a control mapping from a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Remove a control mapping from a policy | Comp AI API", "sidebarTitle": "Remove a control mapping from a policy", "description": "Remove a control mapping from a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting.", "og:title": "Remove a control mapping from a policy | Comp AI API", "og:description": "Remove a control mapping from a policy in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting." } }, "x-speakeasy-mcp": { "name": "remove-policy-control" } } }, "/v1/policies/{id}": { "get": { "description": "Retrieve a single compliance policy by its ID, including current content, draft content, review status, framework links, and audit metadata. Use this to read or inspect one policy in detail. If you only have a policy name, find its ID first by listing compliance policies.", "operationId": "PoliciesController_getPolicy_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Policy retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyResponseDto" }, "example": { "id": "pol_abc123def456", "name": "Data Privacy Policy", "status": "draft", "content": [ { "type": "paragraph", "content": [ { "type": "text", "text": "..." } ] } ], "isRequiredToSign": true, "signedBy": [], "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-15T00:00:00.000Z", "organizationId": "org_abc123def456" } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Policy not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Policy with ID pol_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get compliance policy", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "get-policy" }, "x-mint": { "metadata": { "title": "Get compliance policy | Comp AI API", "sidebarTitle": "Get compliance policy", "description": "Retrieve a single compliance policy by its ID, including current content, draft content, review status, framework links, and audit metadata. Use this.", "og:title": "Get compliance policy | Comp AI API", "og:description": "Retrieve a single compliance policy by its ID, including current content, draft content, review status, framework links, and audit metadata. Use this." } } }, "patch": { "description": "Update compliance policy details or content while keeping policy workflows connected to controls, tasks, and approvals.", "operationId": "PoliciesController_updatePolicy_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "description": "Policy update data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePolicyDto" } } } }, "responses": { "200": { "description": "Policy updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyResponseDto" }, "example": { "id": "pol_abc123def456", "name": "Data Privacy Policy", "description": "This policy outlines how we handle and protect personal data", "status": "published", "content": [ { "type": "heading", "attrs": { "level": 2 }, "content": [ { "type": "text", "text": "Purpose" } ] } ], "frequency": "yearly", "department": "it", "isRequiredToSign": true, "signedBy": [ "usr_123" ], "reviewDate": "2024-12-31T00:00:00.000Z", "isArchived": false, "createdAt": "2024-01-01T00:00:00.000Z", "updatedAt": "2024-01-15T00:00:00.000Z", "organizationId": "org_abc123def456", "assigneeId": "usr_abc123def456", "approverId": "usr_xyz789abc123" } } } }, "400": { "description": "Bad Request - Invalid update data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Validation failed" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Policy not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Policy with ID pol_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update compliance policy", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Update compliance policy | Comp AI API", "sidebarTitle": "Update compliance policy", "description": "Update compliance policy details or content while keeping policy workflows connected to controls, tasks, and approvals.", "og:title": "Update compliance policy | Comp AI API", "og:description": "Update compliance policy details or content while keeping policy workflows connected to controls, tasks, and approvals." } }, "x-speakeasy-mcp": { "name": "update-policy" } }, "delete": { "description": "Delete a compliance policy that is no longer part of the organization evidence library or control program.", "operationId": "PoliciesController_deletePolicy_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Policy deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Indicates successful deletion", "example": true }, "deletedPolicy": { "type": "object", "properties": { "id": { "type": "string", "description": "The deleted policy ID", "example": "pol_abc123def456" }, "name": { "type": "string", "description": "The deleted policy name", "example": "Data Privacy Policy" } } }, "authType": { "type": "string", "enum": [ "api-key", "session" ], "description": "How the request was authenticated" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication or insufficient permissions", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Policy not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Policy with ID pol_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete compliance policy", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Delete compliance policy | Comp AI API", "sidebarTitle": "Delete compliance policy", "description": "Delete a compliance policy that is no longer part of the organization evidence library or control program.", "og:title": "Delete compliance policy | Comp AI API", "og:description": "Delete a compliance policy that is no longer part of the organization evidence library or control program." } }, "x-speakeasy-mcp": { "name": "delete-policy" } } }, "/v1/policies/{id}/versions": { "get": { "description": "Get policy versions in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "operationId": "PoliciesController_getPolicyVersions_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } } ], "responses": { "200": { "description": "Policy versions retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "versions": { "type": "array", "items": { "type": "object" } }, "currentVersionId": { "type": "string", "nullable": true }, "pendingVersionId": { "type": "string", "nullable": true } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get policy versions", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "list-policy-versions" }, "x-mint": { "metadata": { "title": "Get policy versions | Comp AI API", "sidebarTitle": "Get policy versions", "description": "Get policy versions in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "og:title": "Get policy versions | Comp AI API", "og:description": "Get policy versions in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." } } }, "post": { "description": "Creates a new draft version of a policy, cloned from the current published version (or a specified source version). Use this when you need to make any change to a published policy — content edits, PDF attachments, anything. Published.", "operationId": "PoliciesController_createPolicyVersion_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } } ], "requestBody": { "required": true, "description": "Create a new policy version draft", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePolicyVersionDto" } } } }, "responses": { "201": { "description": "Policy version created", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" }, "version": { "type": "number" } } } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid request" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Create policy version", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "create-policy-version" }, "x-mint": { "metadata": { "title": "Create policy version | Comp AI API", "sidebarTitle": "Create policy version", "description": "Creates a new draft version of a policy, cloned from the current published version (or a specified source version). Use this when you need to make any.", "og:title": "Create policy version | Comp AI API", "og:description": "Creates a new draft version of a policy, cloned from the current published version (or a specified source version). Use this when you need to make any." } } } }, "/v1/policies/{id}/versions/{versionId}": { "get": { "description": "Get policy version by ID in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "operationId": "PoliciesController_getPolicyVersionById_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } }, { "name": "versionId", "required": true, "in": "path", "description": "Policy version ID", "schema": { "type": "string", "example": "pv_abc123def456" } } ], "responses": { "200": { "description": "Policy version retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "object" }, "currentVersionId": { "type": "string", "nullable": true }, "pendingVersionId": { "type": "string", "nullable": true } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get policy version by ID", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "get-policy-version" }, "x-mint": { "metadata": { "title": "Get policy version by ID | Comp AI API", "sidebarTitle": "Get policy version by ID", "description": "Get policy version by ID in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "og:title": "Get policy version by ID | Comp AI API", "og:description": "Get policy version by ID in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." } } }, "patch": { "description": "Update version content in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "operationId": "PoliciesController_updateVersionContent_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } }, { "name": "versionId", "required": true, "in": "path", "description": "Policy version ID", "schema": { "type": "string", "example": "pv_abc123def456" } } ], "requestBody": { "required": true, "description": "Update content for a policy version", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateVersionContentDto" } } } }, "responses": { "200": { "description": "Version content updated", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" } } } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid request" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update version content", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "update-policy-version-content" }, "x-mint": { "metadata": { "title": "Update version content | Comp AI API", "sidebarTitle": "Update version content", "description": "Update version content in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "og:title": "Update version content | Comp AI API", "og:description": "Update version content in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." } } }, "delete": { "description": "Delete policy version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "operationId": "PoliciesController_deletePolicyVersion_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } }, { "name": "versionId", "required": true, "in": "path", "description": "Policy version ID", "schema": { "type": "string", "example": "pv_abc123def456" } } ], "responses": { "200": { "description": "Version deleted", "content": { "application/json": { "schema": { "type": "object", "properties": { "deletedVersion": { "type": "number" } } } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid request" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete policy version", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Delete policy version | Comp AI API", "sidebarTitle": "Delete policy version", "description": "Delete policy version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "og:title": "Delete policy version | Comp AI API", "og:description": "Delete policy version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." } }, "x-speakeasy-mcp": { "name": "delete-policy-version" } } }, "/v1/policies/{id}/versions/publish": { "post": { "description": "Publishes a draft policy version, making it the active/current version of the policy. Pass the versionId of the draft you want to publish — for example one created via create-policy-version and then edited.", "operationId": "PoliciesController_publishPolicyVersion_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } } ], "requestBody": { "required": true, "description": "Publish a new policy version", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublishVersionDto" } } } }, "responses": { "200": { "description": "Version published", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" }, "version": { "type": "number" } } } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid request" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Publish policy version", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "publish-policy-version" }, "x-mint": { "metadata": { "title": "Publish policy version | Comp AI API", "sidebarTitle": "Publish policy version", "description": "Publishes a draft policy version, making it the active/current version of the policy. Pass the versionId of the draft you want to publish — for example one.", "og:title": "Publish policy version | Comp AI API", "og:description": "Publishes a draft policy version, making it the active/current version of the policy. Pass the versionId of the draft you want to publish — for example one." } } } }, "/v1/policies/{id}/versions/{versionId}/activate": { "post": { "description": "Set active policy version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "operationId": "PoliciesController_setActivePolicyVersion_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } }, { "name": "versionId", "required": true, "in": "path", "description": "Policy version ID", "schema": { "type": "string", "example": "pv_abc123def456" } } ], "responses": { "200": { "description": "Active version updated", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" }, "version": { "type": "number" } } } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid request" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Set active policy version", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Set active policy version | Comp AI API", "sidebarTitle": "Set active policy version", "description": "Set active policy version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "og:title": "Set active policy version | Comp AI API", "og:description": "Set active policy version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." } }, "x-speakeasy-mcp": { "name": "set-active-policy-version" } } }, "/v1/policies/{id}/versions/{versionId}/submit-for-approval": { "post": { "description": "Submit version for approval in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "operationId": "PoliciesController_submitVersionForApproval_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "type": "string", "example": "pol_abc123def456" } }, { "name": "versionId", "required": true, "in": "path", "description": "Policy version ID", "schema": { "type": "string", "example": "pv_abc123def456" } } ], "requestBody": { "required": true, "description": "Submit a policy version for approval", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubmitForApprovalDto" } } } }, "responses": { "200": { "description": "Version submitted for approval", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" }, "version": { "type": "number" } } } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid request" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Resource not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Resource not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Submit version for approval", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "submit-policy-version-for-approval" }, "x-mint": { "metadata": { "title": "Submit version for approval | Comp AI API", "sidebarTitle": "Submit version for approval", "description": "Submit version for approval in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval.", "og:title": "Submit version for approval | Comp AI API", "og:description": "Submit version for approval in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval." } } } }, "/v1/policies/{id}/accept-changes": { "post": { "operationId": "PoliciesController_acceptPolicyChanges_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Accept pending policy changes and publish the version", "tags": [ "Policies" ], "x-speakeasy-mcp": { "name": "accept-policy-changes" }, "description": "Accept pending policy changes and publish the version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Accept pending policy changes and publish the | Comp AI API", "sidebarTitle": "Accept pending policy changes and publish the version", "description": "Accept pending policy changes and publish the version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted.", "og:title": "Accept pending policy changes and publish the | Comp AI API", "og:description": "Accept pending policy changes and publish the version in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted." } } } }, "/v1/policies/{id}/deny-changes": { "post": { "operationId": "PoliciesController_denyPolicyChanges_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Deny pending policy changes", "tags": [ "Policies" ], "description": "Deny pending policy changes in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows.", "x-mint": { "metadata": { "title": "Deny pending policy changes | Comp AI API", "sidebarTitle": "Deny pending policy changes", "description": "Deny pending policy changes in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval.", "og:title": "Deny pending policy changes | Comp AI API", "og:description": "Deny pending policy changes in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval." } }, "x-speakeasy-mcp": { "name": "deny-policy-changes" } } }, "/v1/policies/{id}/ai-chat": { "post": { "description": "Ask policy-specific questions and request draft improvements while preserving human review before policy changes are applied.", "operationId": "PoliciesController_aiChatPolicy_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Policy ID", "schema": { "example": "pol_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AISuggestPolicyRequestDto" } } } }, "responses": { "200": { "description": "Streaming AI response", "content": { "text/event-stream": { "schema": { "type": "string" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Policy not found" } }, "security": [ { "apikey": [] } ], "summary": "Chat with AI about a policy", "tags": [ "Policies" ], "x-mint": { "metadata": { "title": "Chat with AI about a policy | Comp AI API", "sidebarTitle": "Chat with AI about a policy", "description": "Ask policy-specific questions and request draft improvements while preserving human review before policy changes are applied.", "og:title": "Chat with AI about a policy | Comp AI API", "og:description": "Ask policy-specific questions and request draft improvements while preserving human review before policy changes are applied." } }, "x-speakeasy-mcp": { "name": "ai-chat-policy" } } }, "/v1/device-agent/exchange-code": { "post": { "operationId": "DeviceAgentController_exchangeCode_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExchangeCodeDto" } } } }, "responses": { "201": { "description": "" } }, "summary": "Exchange an auth code for device credentials", "tags": [ "Device Agent" ], "description": "Exchange an auth code for device credentials in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "Exchange an auth code for device credentials | Comp AI API", "sidebarTitle": "Exchange an auth code for device credentials", "description": "Exchange an auth code for device credentials in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage.", "og:title": "Exchange an auth code for device credentials | Comp AI API", "og:description": "Exchange an auth code for device credentials in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage." } }, "x-speakeasy-mcp": { "name": "exchange-code" } } }, "/v1/device-agent/updates/{filename}": { "get": { "operationId": "DeviceAgentController_getUpdateFile_v1", "parameters": [ { "name": "filename", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Download a device-agent update", "tags": [ "Device Agent" ], "description": "Download a device-agent update in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "Download a device-agent update | Comp AI API", "sidebarTitle": "Download a device-agent update", "description": "Download a device-agent update in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint.", "og:title": "Download a device-agent update | Comp AI API", "og:description": "Download a device-agent update in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint." } }, "x-speakeasy-mcp": { "name": "get-update-file" } }, "head": { "operationId": "DeviceAgentController_headUpdateFile_v1", "parameters": [ { "name": "filename", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Check a device-agent update's metadata", "tags": [ "Device Agent" ], "description": "Check a device-agent update's metadata in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "Check a device-agent update's metadata | Comp AI API", "sidebarTitle": "Check a device-agent update's metadata", "description": "Check a device-agent update's metadata in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint.", "og:title": "Check a device-agent update's metadata | Comp AI API", "og:description": "Check a device-agent update's metadata in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint." } }, "x-speakeasy-mcp": { "name": "head-update-file" } } }, "/v1/device-agent/auth-code": { "post": { "operationId": "DeviceAgentController_generateAuthCode_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthCodeDto" } } } }, "responses": { "201": { "description": "" } }, "summary": "Create a device-agent auth code", "tags": [ "Device Agent" ], "description": "Create a device-agent auth code in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "Create a device-agent auth code | Comp AI API", "sidebarTitle": "Create a device-agent auth code", "description": "Create a device-agent auth code in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint.", "og:title": "Create a device-agent auth code | Comp AI API", "og:description": "Create a device-agent auth code in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint." } }, "x-speakeasy-mcp": { "name": "generate-auth-code" } } }, "/v1/device-agent/my-organizations": { "get": { "operationId": "DeviceAgentController_getMyOrganizations_v1", "parameters": [], "responses": { "200": { "description": "" } }, "summary": "List organizations for the current device", "tags": [ "Device Agent" ], "description": "List organizations for the current device in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "List organizations for the current device | Comp AI API", "sidebarTitle": "List organizations for the current device", "description": "List organizations for the current device in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage.", "og:title": "List organizations for the current device | Comp AI API", "og:description": "List organizations for the current device in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage." } }, "x-speakeasy-mcp": { "name": "get-my-organizations" } } }, "/v1/device-agent/register": { "post": { "operationId": "DeviceAgentController_registerDevice_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterDeviceDto" } } } }, "responses": { "201": { "description": "" } }, "summary": "Register device agent", "tags": [ "Device Agent" ], "description": "Register a Comp AI Device Agent installation so employee endpoint checks can report into compliance tasks and device inventory.", "x-mint": { "metadata": { "title": "Register device agent | Comp AI API", "sidebarTitle": "Register device agent", "description": "Register a Comp AI Device Agent installation so employee endpoint checks can report into compliance tasks and device inventory.", "og:title": "Register device agent | Comp AI API", "og:description": "Register a Comp AI Device Agent installation so employee endpoint checks can report into compliance tasks and device inventory." } }, "x-speakeasy-mcp": { "name": "register-device" } } }, "/v1/device-agent/check-in": { "post": { "operationId": "DeviceAgentController_checkIn_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckInDto" } } } }, "responses": { "201": { "description": "" } }, "summary": "Submit device compliance check-in", "tags": [ "Device Agent" ], "description": "Submit device security check results for encryption, antivirus, password policy, screen lock, and other endpoint controls.", "x-mint": { "metadata": { "title": "Submit device compliance check-in | Comp AI API", "sidebarTitle": "Submit device compliance check-in", "description": "Submit device security check results for encryption, antivirus, password policy, screen lock, and other endpoint controls.", "og:title": "Submit device compliance check-in | Comp AI API", "og:description": "Submit device security check results for encryption, antivirus, password policy, screen lock, and other endpoint controls." } }, "x-speakeasy-mcp": { "name": "check-in" } } }, "/v1/device-agent/status": { "get": { "operationId": "DeviceAgentController_getDeviceStatus_v1", "parameters": [ { "name": "deviceId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "organizationId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "summary": "Get device-agent status", "tags": [ "Device Agent" ], "description": "Get device-agent status in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "Get device-agent status | Comp AI API", "sidebarTitle": "Get device-agent status", "description": "Get device-agent status in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "og:title": "Get device-agent status | Comp AI API", "og:description": "Get device-agent status in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status." } }, "x-speakeasy-mcp": { "name": "get-device-status" } } }, "/v1/device-agent/mac": { "get": { "description": "Downloads the Comp AI Device Agent installer for macOS as a DMG file. The agent helps monitor device compliance and security policies.", "operationId": "DeviceAgentController_downloadMacAgent_v1", "parameters": [], "responses": { "default": { "description": "Internal server error\n\nmacOS agent file not found in S3\n\nUnauthorized - Invalid or missing authentication\n\nmacOS agent DMG file download", "content": { "application/x-apple-diskimage": { "schema": { "type": "string", "format": "binary" }, "example": "Binary DMG file content" } }, "headers": { "Content-Disposition": { "description": "Indicates file should be downloaded with specific filename", "schema": { "type": "string", "example": "attachment; filename=\"Comp AI Agent-1.0.0-arm64.dmg\"" } }, "Content-Type": { "description": "MIME type for macOS disk image", "schema": { "type": "string", "example": "application/x-apple-diskimage" } } } } }, "security": [ { "apikey": [] } ], "summary": "Download macOS Device Agent", "tags": [ "Device Agent" ], "x-mint": { "metadata": { "title": "Download macOS Device Agent | Comp AI API", "sidebarTitle": "Download macOS Device Agent", "description": "Downloads the Comp AI Device Agent installer for macOS as a DMG file. The agent helps monitor device compliance and security policies.", "og:title": "Download macOS Device Agent | Comp AI API", "og:description": "Downloads the Comp AI Device Agent installer for macOS as a DMG file. The agent helps monitor device compliance and security policies." } }, "x-speakeasy-mcp": { "name": "download-mac-agent" } } }, "/v1/device-agent/windows": { "get": { "description": "Downloads a ZIP package containing the Comp AI Device Agent installer for Windows, along with setup scripts and instructions. The package includes an MSI installer, setup batch script customized for the organization and user, and a README.", "operationId": "DeviceAgentController_downloadWindowsAgent_v1", "parameters": [], "responses": { "default": { "description": "Internal server error\n\nWindows agent file not found in S3\n\nUnauthorized - Invalid or missing authentication\n\nWindows agent ZIP file download containing MSI installer and setup scripts", "content": { "application/zip": { "schema": { "type": "string", "format": "binary" }, "example": "Binary ZIP file content" } }, "headers": { "Content-Disposition": { "description": "Indicates file should be downloaded with specific filename", "schema": { "type": "string", "example": "attachment; filename=\"compai-device-agent-windows.zip\"" } }, "Content-Type": { "description": "MIME type for ZIP archive", "schema": { "type": "string", "example": "application/zip" } } } } }, "security": [ { "apikey": [] } ], "summary": "Download Windows Device Agent ZIP", "tags": [ "Device Agent" ], "x-mint": { "metadata": { "title": "Download Windows Device Agent ZIP | Comp AI API", "sidebarTitle": "Download Windows Device Agent ZIP", "description": "Downloads a ZIP package containing the Comp AI Device Agent installer for Windows, along with setup scripts and instructions. The package includes an MSI.", "og:title": "Download Windows Device Agent ZIP | Comp AI API", "og:description": "Downloads a ZIP package containing the Comp AI Device Agent installer for Windows, along with setup scripts and instructions. The package includes an MSI." } }, "x-speakeasy-mcp": { "name": "download-windows-agent" } } }, "/v1/device-agent/sessions/{deviceId}": { "delete": { "operationId": "DeviceAgentController_revokeAgentAccess_v1", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "summary": "Revoke a device agent session", "tags": [ "Device Agent" ], "description": "Revoke a device agent session in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status.", "x-mint": { "metadata": { "title": "Revoke a device agent session | Comp AI API", "sidebarTitle": "Revoke a device agent session", "description": "Revoke a device agent session in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security.", "og:title": "Revoke a device agent session | Comp AI API", "og:description": "Revoke a device agent session in Comp AI. Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security." } }, "x-speakeasy-mcp": { "name": "revoke-agent-access" } } }, "/v1/tasks": { "get": { "description": "List compliance tasks with assignments and status so teams can track audit readiness, evidence work, and control implementation.", "operationId": "TasksController_getTasks_v1", "parameters": [ { "name": "includeRelations", "required": false, "in": "query", "description": "Include controls and automations with runs", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tasks retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TaskResponseDto" } }, "example": [ { "id": "tsk_abc123def456", "title": "Implement user authentication", "description": "Add OAuth 2.0 authentication to the platform", "status": "in_progress", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T10:30:00Z" } ] } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "List compliance tasks", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "List compliance tasks | Comp AI API", "sidebarTitle": "List compliance tasks", "description": "List compliance tasks with assignments and status so teams can track audit readiness, evidence work, and control implementation.", "og:title": "List compliance tasks | Comp AI API", "og:description": "List compliance tasks with assignments and status so teams can track audit readiness, evidence work, and control implementation." } }, "x-codeSamples": [ { "lang": "bash", "label": "List tasks", "source": "curl --request GET --url \"https://api.trycomp.ai/v1/tasks\" --header \"X-API-Key: $COMP_AI_API_KEY\"" } ], "x-speakeasy-mcp": { "name": "get-tasks" } }, "post": { "description": "Create a compliance task for evidence collection, remediation, review, or recurring control work inside an organization.", "operationId": "TasksController_createTask_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string", "example": "Implement access controls" }, "description": { "type": "string", "example": "Set up role-based access controls for the platform" }, "assigneeId": { "type": "string", "nullable": true, "example": "mem_abc123" }, "frequency": { "type": "string", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly" ], "nullable": true, "example": "monthly" }, "department": { "type": "string", "nullable": true, "example": "it", "maxLength": 64, "description": "Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted." }, "controlIds": { "type": "array", "items": { "type": "string" }, "example": [ "ctrl_abc123" ] }, "taskTemplateId": { "type": "string", "nullable": true, "example": "tmpl_abc123" }, "vendorId": { "type": "string", "nullable": true, "example": "vnd_abc123", "description": "Vendor ID to connect this task to" } }, "required": [ "title", "description" ] } } } }, "responses": { "201": { "description": "Task created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponseDto" } } } }, "400": { "description": "Invalid request body" } }, "security": [ { "apikey": [] } ], "summary": "Create compliance task", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Create compliance task | Comp AI API", "sidebarTitle": "Create compliance task", "description": "Create a compliance task for evidence collection, remediation, review, or recurring control work inside an organization.", "og:title": "Create compliance task | Comp AI API", "og:description": "Create a compliance task for evidence collection, remediation, review, or recurring control work inside an organization." } }, "x-speakeasy-mcp": { "name": "create-task" } } }, "/v1/tasks/templates": { "get": { "description": "Get task templates in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_getTaskTemplates_v1", "parameters": [ { "name": "frameworkId", "required": false, "in": "query", "description": "Filter templates by framework ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get task templates", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Get task templates | Comp AI API", "sidebarTitle": "Get task templates", "description": "Get task templates in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Get task templates | Comp AI API", "og:description": "Get task templates in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "get-task-templates" } } }, "/v1/tasks/bulk": { "patch": { "description": "Update status for multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_updateTasksStatus_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "taskIds": { "type": "array", "items": { "type": "string" }, "example": [ "tsk_abc123", "tsk_def456" ] }, "status": { "type": "string", "enum": [ "todo", "in_progress", "in_review", "done", "not_relevant", "failed" ], "example": "in_progress" }, "reviewDate": { "type": "string", "format": "date-time", "example": "2025-01-01T00:00:00.000Z", "description": "Optional review date to set on all tasks" }, "notRelevantJustification": { "type": "string", "example": "This control is out of scope for our SOC 2 audit.", "description": "Required justification when marking evidence tasks as not_relevant" } }, "required": [ "taskIds", "status" ] } } } }, "responses": { "200": { "description": "Tasks updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "updatedCount": { "type": "number", "example": 2 } } } } } }, "400": { "description": "Invalid request body" } }, "security": [ { "apikey": [] } ], "summary": "Update status for multiple tasks", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Update status for multiple tasks | Comp AI API", "sidebarTitle": "Update status for multiple tasks", "description": "Update status for multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity.", "og:title": "Update status for multiple tasks | Comp AI API", "og:description": "Update status for multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity." } }, "x-speakeasy-mcp": { "name": "update-tasks-status" } }, "delete": { "description": "Delete multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_deleteTasks_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "taskIds": { "type": "array", "items": { "type": "string" }, "example": [ "tsk_abc123", "tsk_def456" ] } }, "required": [ "taskIds" ] } } } }, "responses": { "200": { "description": "Tasks deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "deletedCount": { "type": "number", "example": 2 } } } } } }, "400": { "description": "Invalid request body" } }, "security": [ { "apikey": [] } ], "summary": "Delete multiple tasks", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Delete multiple tasks | Comp AI API", "sidebarTitle": "Delete multiple tasks", "description": "Delete multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Delete multiple tasks | Comp AI API", "og:description": "Delete multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "delete-tasks" } } }, "/v1/tasks/bulk/assignee": { "patch": { "description": "Update assignee for multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_updateTasksAssignee_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "taskIds": { "type": "array", "items": { "type": "string" }, "example": [ "tsk_abc123", "tsk_def456" ] }, "assigneeId": { "type": "string", "nullable": true, "example": "mem_abc123", "description": "Assignee member ID, or null to unassign" } }, "required": [ "taskIds" ] } } } }, "responses": { "200": { "description": "Tasks updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "updatedCount": { "type": "number", "example": 2 } } } } } }, "400": { "description": "Invalid request body" } }, "security": [ { "apikey": [] } ], "summary": "Update assignee for multiple tasks", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Update assignee for multiple tasks | Comp AI API", "sidebarTitle": "Update assignee for multiple tasks", "description": "Update assignee for multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity.", "og:title": "Update assignee for multiple tasks | Comp AI API", "og:description": "Update assignee for multiple tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity." } }, "x-speakeasy-mcp": { "name": "update-tasks-assignee" } } }, "/v1/tasks/reorder": { "patch": { "description": "Reorder tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_reorderTasks_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "updates": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "order": { "type": "number" }, "status": { "type": "string", "enum": [ "todo", "in_progress", "in_review", "done", "not_relevant", "failed" ] } }, "required": [ "id", "order", "status" ] } } }, "required": [ "updates" ] } } } }, "responses": { "200": { "description": "Tasks reordered successfully" }, "400": { "description": "Invalid request body" } }, "security": [ { "apikey": [] } ], "summary": "Reorder tasks", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Reorder tasks | Comp AI API", "sidebarTitle": "Reorder tasks", "description": "Reorder tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Reorder tasks | Comp AI API", "og:description": "Reorder tasks in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "reorder-tasks" } } }, "/v1/tasks/bulk/submit-for-review": { "post": { "description": "Bulk submit tasks for review in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_bulkSubmitForReview_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "taskIds": { "type": "array", "items": { "type": "string" }, "example": [ "tsk_abc123", "tsk_def456" ] }, "approverId": { "type": "string", "example": "mem_abc123", "description": "Member ID of the approver" } }, "required": [ "taskIds", "approverId" ] } } } }, "responses": { "200": { "description": "Tasks submitted for review" }, "400": { "description": "Invalid request" } }, "security": [ { "apikey": [] } ], "summary": "Bulk submit tasks for review", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Bulk submit tasks for review | Comp AI API", "sidebarTitle": "Bulk submit tasks for review", "description": "Bulk submit tasks for review in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity.", "og:title": "Bulk submit tasks for review | Comp AI API", "og:description": "Bulk submit tasks for review in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity." } }, "x-speakeasy-mcp": { "name": "bulk-submit-for-review" } } }, "/v1/tasks/options": { "get": { "operationId": "TasksController_getTaskOptions_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get page options for tasks overview", "tags": [ "Tasks" ], "description": "Get page options for tasks overview in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "x-mint": { "metadata": { "title": "Get page options for tasks overview | Comp AI API", "sidebarTitle": "Get page options for tasks overview", "description": "Get page options for tasks overview in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links.", "og:title": "Get page options for tasks overview | Comp AI API", "og:description": "Get page options for tasks overview in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links." } }, "x-speakeasy-mcp": { "name": "get-task-options" } } }, "/v1/tasks/{taskId}": { "get": { "description": "Get task by ID in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_getTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Task retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponseDto" }, "example": { "id": "tsk_abc123def456", "title": "Implement user authentication", "description": "Add OAuth 2.0 authentication to the platform", "status": "in_progress", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T10:30:00Z" } } } }, "403": { "description": "Forbidden - Not assigned to this task" }, "404": { "description": "Task not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Task with ID tsk_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get task by ID", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Get task by ID | Comp AI API", "sidebarTitle": "Get task by ID", "description": "Get task by ID in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Get task by ID | Comp AI API", "og:description": "Get task by ID in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "get-task" } }, "patch": { "description": "Update a task in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_updateTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string", "example": "Review access controls", "description": "Task title" }, "description": { "type": "string", "example": "Review and update access control policies", "description": "Task description" }, "status": { "type": "string", "enum": [ "todo", "in_progress", "in_review", "done", "not_relevant", "failed" ], "example": "in_progress" }, "assigneeId": { "type": "string", "nullable": true, "example": "mem_abc123", "description": "Assignee member ID, or null to unassign" }, "approverId": { "type": "string", "nullable": true, "example": "mem_abc123", "description": "Approver member ID, or null to unassign" }, "frequency": { "type": "string", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly" ], "example": "monthly" }, "integrationScheduleFrequency": { "type": "string", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly" ], "example": "daily", "description": "Cadence for running the integration check attached to this task" }, "department": { "type": "string", "example": "it", "maxLength": 64, "description": "Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted." }, "reviewDate": { "type": "string", "format": "date-time", "example": "2025-01-01T00:00:00.000Z" }, "notRelevantJustification": { "type": "string", "example": "This control is out of scope for our SOC 2 audit.", "description": "Required justification when marking evidence tasks as not_relevant" } } } } } }, "responses": { "200": { "description": "Task updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponseDto" } } } }, "400": { "description": "Invalid request body or task not found" }, "404": { "description": "Task not found" } }, "security": [ { "apikey": [] } ], "summary": "Update a task", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Update a task | Comp AI API", "sidebarTitle": "Update a task", "description": "Update a task in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Update a task | Comp AI API", "og:description": "Update a task in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "update-task" } }, "delete": { "description": "Delete a task in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_deleteTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Task deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "message": { "type": "string", "example": "Task deleted successfully" } } } } } }, "404": { "description": "Task not found" } }, "security": [ { "apikey": [] } ], "summary": "Delete a task", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Delete a task | Comp AI API", "sidebarTitle": "Delete a task", "description": "Delete a task in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Delete a task | Comp AI API", "og:description": "Delete a task in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "delete-task" } } }, "/v1/tasks/{taskId}/policies": { "get": { "operationId": "TasksController_getTaskPolicies_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get policies that reference a task via shared controls", "tags": [ "Tasks" ], "description": "Get policies that reference a task via shared controls in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "x-mint": { "metadata": { "title": "Get policies that reference a task via shared | Comp AI API", "sidebarTitle": "Get policies that reference a task via shared controls", "description": "Get policies that reference a task via shared controls in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy.", "og:title": "Get policies that reference a task via shared | Comp AI API", "og:description": "Get policies that reference a task via shared controls in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy." } }, "x-speakeasy-mcp": { "name": "get-task-policies" } } }, "/v1/tasks/{taskId}/activity": { "get": { "description": "Get task activity in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_getTaskActivity_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "skip", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "take", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Activity retrieved successfully" }, "400": { "description": "Task not found" } }, "security": [ { "apikey": [] } ], "summary": "Get task activity", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Get task activity | Comp AI API", "sidebarTitle": "Get task activity", "description": "Get task activity in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Get task activity | Comp AI API", "og:description": "Get task activity in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "get-task-activity" } } }, "/v1/tasks/{taskId}/regenerate": { "post": { "description": "Regenerate task from template in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_regenerateTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Task regenerated successfully" }, "400": { "description": "Task has no associated template" }, "404": { "description": "Task not found" } }, "security": [ { "apikey": [] } ], "summary": "Regenerate task from template", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Regenerate task from template | Comp AI API", "sidebarTitle": "Regenerate task from template", "description": "Regenerate task from template in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity.", "og:title": "Regenerate task from template | Comp AI API", "og:description": "Regenerate task from template in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity." } }, "x-speakeasy-mcp": { "name": "regenerate-task" } } }, "/v1/tasks/{taskId}/submit-for-review": { "post": { "description": "Submit task for review in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_submitForReview_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "approverId": { "type": "string", "example": "mem_abc123", "description": "Member ID of the approver" } }, "required": [ "approverId" ] } } } }, "responses": { "200": { "description": "Task submitted for review" }, "400": { "description": "Invalid request" } }, "security": [ { "apikey": [] } ], "summary": "Submit task for review", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Submit task for review | Comp AI API", "sidebarTitle": "Submit task for review", "description": "Submit task for review in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Submit task for review | Comp AI API", "og:description": "Submit task for review in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "submit-for-review" } } }, "/v1/tasks/{taskId}/approve": { "post": { "description": "Approve a task that is in review. Only the assigned approver can approve. Moves status to done and creates an audit comment.", "operationId": "TasksController_approveTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Task approved successfully" }, "400": { "description": "Task is not in review" }, "403": { "description": "Not the assigned approver" } }, "security": [ { "apikey": [] } ], "summary": "Approve a task", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Approve a task | Comp AI API", "sidebarTitle": "Approve a task", "description": "Approve a task that is in review. Only the assigned approver can approve. Moves status to done and creates an audit comment.", "og:title": "Approve a task | Comp AI API", "og:description": "Approve a task that is in review. Only the assigned approver can approve. Moves status to done and creates an audit comment." } }, "x-speakeasy-mcp": { "name": "approve-task" } } }, "/v1/tasks/{taskId}/reject": { "post": { "description": "Reject a task that is in review. Only the assigned approver can reject. Reverts status to the previous status and creates an audit comment.", "operationId": "TasksController_rejectTask_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Task rejected successfully" }, "400": { "description": "Task is not in review" }, "403": { "description": "Not the assigned approver" } }, "security": [ { "apikey": [] } ], "summary": "Reject a task review", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Reject a task review | Comp AI API", "sidebarTitle": "Reject a task review", "description": "Reject a task that is in review. Only the assigned approver can reject. Reverts status to the previous status and creates an audit comment.", "og:title": "Reject a task review | Comp AI API", "og:description": "Reject a task that is in review. Only the assigned approver can reject. Reverts status to the previous status and creates an audit comment." } }, "x-speakeasy-mcp": { "name": "reject-task" } } }, "/v1/tasks/{taskId}/attachments": { "get": { "description": "Get task attachments in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_getTaskAttachments_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Attachments retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AttachmentResponseDto" } }, "example": [ { "id": "att_abc123def456", "name": "evidence.pdf", "type": "application/pdf", "size": 123456, "downloadUrl": "https://bucket.s3.amazonaws.com/path/to/file.pdf?signature=...", "createdAt": "2024-01-15T10:30:00Z" } ] } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Task not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Task with ID tsk_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get task attachments", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Get task attachments | Comp AI API", "sidebarTitle": "Get task attachments", "description": "Get task attachments in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Get task attachments | Comp AI API", "og:description": "Get task attachments in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "get-task-attachments" } }, "post": { "description": "Upload an evidence attachment to a task so auditors and reviewers can trace completion back to source documentation.", "operationId": "TasksController_uploadTaskAttachment_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadAttachmentDto" } } } }, "responses": { "201": { "description": "Attachment uploaded successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachmentResponseDto" }, "example": { "id": "att_abc123def456", "entityId": "tsk_abc123def456", "entityType": "task", "fileName": "evidence.pdf", "fileType": "application/pdf", "fileSize": 123456, "createdAt": "2024-01-01T00:00:00Z", "createdBy": "usr_abc123def456" } } } }, "400": { "description": "Invalid file data or file too large", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "File exceeds maximum allowed size" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Task not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Task with ID tsk_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Upload task evidence", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Upload task evidence | Comp AI API", "sidebarTitle": "Upload task evidence", "description": "Upload an evidence attachment to a task so auditors and reviewers can trace completion back to source documentation.", "og:title": "Upload task evidence | Comp AI API", "og:description": "Upload an evidence attachment to a task so auditors and reviewers can trace completion back to source documentation." } }, "x-speakeasy-mcp": { "name": "upload-task-attachment" } } }, "/v1/tasks/{taskId}/attachments/{attachmentId}/download": { "get": { "description": "Generate a signed download URL for an attachment on a compliance task so reviewers can access uploaded evidence.", "operationId": "TasksController_getTaskAttachmentDownloadUrl_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "attachmentId", "required": true, "in": "path", "description": "Unique attachment identifier", "schema": { "example": "att_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Download URL generated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "downloadUrl": { "type": "string", "description": "Signed URL for downloading the file", "example": "https://bucket.s3.amazonaws.com/path/to/file.pdf?signature=..." }, "expiresIn": { "type": "number", "description": "URL expiration time in seconds", "example": 900 } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Task or attachment not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Task or attachment not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get task attachment download URL", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Get task attachment download URL | Comp AI API", "sidebarTitle": "Get task attachment download URL", "description": "Generate a signed download URL for an attachment on a compliance task so reviewers can access uploaded evidence.", "og:title": "Get task attachment download URL | Comp AI API", "og:description": "Generate a signed download URL for an attachment on a compliance task so reviewers can access uploaded evidence." } }, "x-speakeasy-mcp": { "name": "get-task-attachment-download-url" } } }, "/v1/tasks/{taskId}/attachments/{attachmentId}": { "delete": { "description": "Delete task attachment in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "operationId": "TasksController_deleteTaskAttachment_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "attachmentId", "required": true, "in": "path", "description": "Unique attachment identifier", "schema": { "example": "att_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Attachment deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "deletedAttachmentId": { "type": "string", "example": "att_abc123def456" }, "message": { "type": "string", "example": "Attachment deleted successfully" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Task or attachment not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Task or attachment not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete task attachment", "tags": [ "Tasks" ], "x-mint": { "metadata": { "title": "Delete task attachment | Comp AI API", "sidebarTitle": "Delete task attachment", "description": "Delete task attachment in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history.", "og:title": "Delete task attachment | Comp AI API", "og:description": "Delete task attachment in Comp AI. Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." } }, "x-speakeasy-mcp": { "name": "delete-task-attachment" } } }, "/v1/tasks/{taskId}/automations": { "get": { "description": "Get all automations for a task in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_getTaskAutomations_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Automations retrieved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Get all automations for a task", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Get all automations for a task | Comp AI API", "sidebarTitle": "Get all automations for a task", "description": "Get all automations for a task in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Get all automations for a task | Comp AI API", "og:description": "Get all automations for a task in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "get-task-automations" } }, "post": { "description": "Create an automated evidence workflow attached to a task so Comp AI can collect recurring proof from connected systems.", "operationId": "AutomationsController_createAutomation_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "201": { "description": "Automation created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "automation": { "type": "object", "properties": { "id": { "type": "string", "example": "auto_abc123def456" }, "name": { "type": "string", "example": "Task Name - Evidence Collection" } } } } } } } }, "400": { "description": "Bad request - Invalid task ID or organization ID", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid task ID or organization ID" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Task not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Task not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Create evidence automation", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Create evidence automation | Comp AI API", "sidebarTitle": "Create evidence automation", "description": "Create an automated evidence workflow attached to a task so Comp AI can collect recurring proof from connected systems.", "og:title": "Create evidence automation | Comp AI API", "og:description": "Create an automated evidence workflow attached to a task so Comp AI can collect recurring proof from connected systems." } }, "x-speakeasy-mcp": { "name": "create-automation" } } }, "/v1/tasks/{taskId}/automations/{automationId}": { "get": { "description": "Get automation details in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_getAutomation_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Unique automation identifier", "schema": { "example": "auto_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Automation details retrieved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Get automation details", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Get automation details | Comp AI API", "sidebarTitle": "Get automation details", "description": "Get automation details in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Get automation details | Comp AI API", "og:description": "Get automation details in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "get-automation" } }, "patch": { "description": "Update an existing automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_updateAutomation_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Unique automation identifier", "schema": { "example": "auto_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAutomationDto" } } } }, "responses": { "200": { "description": "Automation updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "automation": { "type": "object", "properties": { "id": { "type": "string", "example": "auto_abc123def456" }, "name": { "type": "string", "example": "Updated Automation Name" }, "description": { "type": "string", "example": "Updated description" } } } } } } } }, "400": { "description": "Bad request - Invalid automation ID or data", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Invalid automation data" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Automation not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Automation not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Update an existing automation", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Update an existing automation | Comp AI API", "sidebarTitle": "Update an existing automation", "description": "Update an existing automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Update an existing automation | Comp AI API", "og:description": "Update an existing automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "update-automation" } }, "delete": { "description": "Delete an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_deleteAutomation_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Unique automation identifier", "schema": { "example": "auto_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Automation deleted successfully" } }, "security": [ { "apikey": [] } ], "summary": "Delete an automation", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Delete an automation | Comp AI API", "sidebarTitle": "Delete an automation", "description": "Delete an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Delete an automation | Comp AI API", "og:description": "Delete an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "delete-automation" } } }, "/v1/tasks/{taskId}/automations/{automationId}/runs": { "get": { "description": "Get all runs for a specific automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_getAutomationRuns_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Task ID", "schema": { "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Automation ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Runs retrieved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Get all runs for a specific automation", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Get all runs for a specific automation | Comp AI API", "sidebarTitle": "Get all runs for a specific automation", "description": "Get all runs for a specific automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Get all runs for a specific automation | Comp AI API", "og:description": "Get all runs for a specific automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "get-automation-runs" } } }, "/v1/tasks/{taskId}/automations/{automationId}/versions": { "get": { "description": "Get all versions for an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_getAutomationVersions_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Task ID", "schema": { "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Automation ID", "schema": { "type": "string" } }, { "name": "limit", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "offset", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Versions retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "versions": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "version": { "type": "number" }, "scriptKey": { "type": "string" }, "changelog": { "type": "string", "nullable": true }, "publishedBy": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" } } } } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get all versions for an automation", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Get all versions for an automation | Comp AI API", "sidebarTitle": "Get all versions for an automation", "description": "Get all versions for an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Get all versions for an automation | Comp AI API", "og:description": "Get all versions for an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "get-automation-versions" } }, "post": { "operationId": "AutomationsController_createVersion_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Task ID", "schema": { "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Automation ID", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateVersionDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Create a published version record for an automation", "tags": [ "Task Automations" ], "description": "Create a published version record for an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "x-mint": { "metadata": { "title": "Create a published version record for an | Comp AI API", "sidebarTitle": "Create a published version record for an automation", "description": "Create a published version record for an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached.", "og:title": "Create a published version record for an | Comp AI API", "og:description": "Create a published version record for an automation in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached." } }, "x-speakeasy-mcp": { "name": "create-version" } } }, "/v1/tasks/{taskId}/automations/runs": { "get": { "description": "Get all automation runs for a task in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "operationId": "AutomationsController_getTaskAutomationRuns_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Task ID", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Automation runs retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "ear_abc123def456" }, "status": { "type": "string", "enum": [ "PENDING", "RUNNING", "COMPLETED", "FAILED" ] }, "trigger": { "type": "string", "enum": [ "MANUAL", "SCHEDULED", "EVENT" ] }, "createdAt": { "type": "string", "format": "date-time" }, "completedAt": { "type": "string", "format": "date-time", "nullable": true }, "error": { "type": "object", "nullable": true } } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get all automation runs for a task", "tags": [ "Task Automations" ], "x-mint": { "metadata": { "title": "Get all automation runs for a task | Comp AI API", "sidebarTitle": "Get all automation runs for a task", "description": "Get all automation runs for a task in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks.", "og:title": "Get all automation runs for a task | Comp AI API", "og:description": "Get all automation runs for a task in Comp AI. Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." } }, "x-speakeasy-mcp": { "name": "get-task-automation-runs" } } }, "/v1/tasks/{taskId}/evidence": { "get": { "description": "Get task evidence summary in Comp AI. Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files.", "operationId": "EvidenceExportController_getTaskEvidenceSummary_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "example": "tsk_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Evidence summary retrieved successfully" }, "404": { "description": "Task not found" } }, "security": [ { "apikey": [] } ], "summary": "Get task evidence summary", "tags": [ "Evidence Export" ], "x-mint": { "metadata": { "title": "Get task evidence summary | Comp AI API", "sidebarTitle": "Get task evidence summary", "description": "Get task evidence summary in Comp AI. Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files.", "og:title": "Get task evidence summary | Comp AI API", "og:description": "Get task evidence summary in Comp AI. Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files." } }, "x-speakeasy-mcp": { "name": "get-task-evidence-summary" } } }, "/v1/tasks/{taskId}/evidence/automation/{automationId}/pdf": { "get": { "description": "Export automation evidence as PDF in Comp AI. Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files.", "operationId": "EvidenceExportController_exportAutomationPDF_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "type": "string" } }, { "name": "automationId", "required": true, "in": "path", "description": "Unique automation identifier (checkId for app automations)", "schema": { "type": "string" } } ], "responses": { "200": { "description": "PDF file generated successfully", "content": { "application/pdf": {} } }, "404": { "description": "Task or automation not found" } }, "security": [ { "apikey": [] } ], "summary": "Export automation evidence as PDF", "tags": [ "Evidence Export" ], "x-mint": { "metadata": { "title": "Export automation evidence as PDF | Comp AI API", "sidebarTitle": "Export automation evidence as PDF", "description": "Export automation evidence as PDF in Comp AI. Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files.", "og:title": "Export automation evidence as PDF | Comp AI API", "og:description": "Export automation evidence as PDF in Comp AI. Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files." } }, "x-speakeasy-mcp": { "name": "export-automation-pdf" } } }, "/v1/tasks/{taskId}/evidence/export": { "get": { "description": "Download a ZIP package containing task evidence and automation results for auditor review or customer security requests.", "operationId": "EvidenceExportController_exportTaskEvidenceZip_v1", "parameters": [ { "name": "taskId", "required": true, "in": "path", "description": "Unique task identifier", "schema": { "type": "string" } }, { "name": "includeJson", "required": false, "in": "query", "description": "Include raw JSON files alongside PDFs", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "ZIP file generated successfully", "content": { "application/zip": {} } }, "404": { "description": "Task not found" } }, "security": [ { "apikey": [] } ], "summary": "Export task evidence as ZIP", "tags": [ "Evidence Export" ], "x-mint": { "metadata": { "title": "Export task evidence as ZIP | Comp AI API", "sidebarTitle": "Export task evidence as ZIP", "description": "Download a ZIP package containing task evidence and automation results for auditor review or customer security requests.", "og:title": "Export task evidence as ZIP | Comp AI API", "og:description": "Download a ZIP package containing task evidence and automation results for auditor review or customer security requests." } }, "x-speakeasy-mcp": { "name": "export-task-evidence-zip" } } }, "/v1/evidence-export/all": { "post": { "description": "Trigger bulk evidence export (Auditor only) in Comp AI. Export all organization evidence for an auditor review package.", "operationId": "AuditorEvidenceExportController_exportAllEvidence_v1", "parameters": [ { "name": "includeJson", "required": false, "in": "query", "description": "Include raw JSON files alongside PDFs", "schema": { "type": "boolean" } } ], "responses": { "201": { "description": "Export job started" } }, "security": [ { "apikey": [] } ], "summary": "Trigger bulk evidence export (Auditor only)", "tags": [ "Evidence Export (Auditor)" ], "x-mint": { "metadata": { "title": "Trigger bulk evidence export (Auditor only) | Comp AI API", "sidebarTitle": "Trigger bulk evidence export (Auditor only)", "description": "Trigger bulk evidence export (Auditor only) in Comp AI. Export all organization evidence for an auditor review package.", "og:title": "Trigger bulk evidence export (Auditor only) | Comp AI API", "og:description": "Trigger bulk evidence export (Auditor only) in Comp AI. Export all organization evidence for an auditor review package." } }, "x-speakeasy-mcp": { "name": "export-all-evidence" } } }, "/v1/comments": { "get": { "description": "Get comments for an entity in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "operationId": "CommentsController_getComments_v1", "parameters": [ { "name": "entityId", "required": true, "in": "query", "description": "ID of the entity to get comments for", "schema": { "example": "tsk_abc123def456", "type": "string" } }, { "name": "entityType", "required": true, "in": "query", "description": "Type of entity", "schema": { "enum": [ "task", "vendor", "risk", "policy", "finding" ], "type": "string" } } ], "responses": { "200": { "description": "Comments retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CommentResponseDto" } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get comments for an entity", "tags": [ "Comments" ], "x-mint": { "metadata": { "title": "Get comments for an entity | Comp AI API", "sidebarTitle": "Get comments for an entity", "description": "Get comments for an entity in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "og:title": "Get comments for an entity | Comp AI API", "og:description": "Get comments for an entity in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings." } }, "x-speakeasy-mcp": { "name": "get-comments" } }, "post": { "description": "Create a new comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "operationId": "CommentsController_createComment_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCommentDto" } } } }, "responses": { "201": { "description": "Comment created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommentResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Create a new comment", "tags": [ "Comments" ], "x-mint": { "metadata": { "title": "Create a new comment | Comp AI API", "sidebarTitle": "Create a new comment", "description": "Create a new comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "og:title": "Create a new comment | Comp AI API", "og:description": "Create a new comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings." } }, "x-speakeasy-mcp": { "name": "create-comment" } } }, "/v1/comments/{commentId}": { "put": { "description": "Update a comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "operationId": "CommentsController_updateComment_v1", "parameters": [ { "name": "commentId", "required": true, "in": "path", "description": "Unique comment identifier", "schema": { "example": "cmt_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCommentDto" } } } }, "responses": { "200": { "description": "Comment updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommentResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Update a comment", "tags": [ "Comments" ], "x-mint": { "metadata": { "title": "Update a comment | Comp AI API", "sidebarTitle": "Update a comment", "description": "Update a comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "og:title": "Update a comment | Comp AI API", "og:description": "Update a comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings." } }, "x-speakeasy-mcp": { "name": "update-comment" } }, "delete": { "description": "Delete a comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "operationId": "CommentsController_deleteComment_v1", "parameters": [ { "name": "commentId", "required": true, "in": "path", "description": "Unique comment identifier", "schema": { "example": "cmt_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "description": "Delete comment request body", "content": { "application/json": { "schema": { "type": "object", "properties": { "userId": { "type": "string", "description": "User ID of the comment author (required for API key auth, ignored for JWT auth)", "example": "usr_abc123def456" } } } } } }, "responses": { "200": { "description": "Comment deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "example": true }, "deletedCommentId": { "type": "string", "example": "cmt_abc123def456" }, "message": { "type": "string", "example": "Comment deleted successfully" } } } } } }, "401": { "description": "Unauthorized - Invalid authentication", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Unauthorized" } } } } } }, "404": { "description": "Comment not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "Comment with ID cmt_abc123def456 not found" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete a comment", "tags": [ "Comments" ], "x-mint": { "metadata": { "title": "Delete a comment | Comp AI API", "sidebarTitle": "Delete a comment", "description": "Delete a comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings.", "og:title": "Delete a comment | Comp AI API", "og:description": "Delete a comment in Comp AI. Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings." } }, "x-speakeasy-mcp": { "name": "delete-comment" } } }, "/v1/trust-portal/settings": { "get": { "operationId": "TrustPortalController_getSettings_v1", "parameters": [], "responses": { "200": { "description": "Trust portal settings retrieved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Get Trust Center settings", "tags": [ "Trust Portal" ], "description": "Retrieve Trust Center settings used to configure public status, custom domains, framework visibility, resources, FAQs, and access rules.", "x-mint": { "metadata": { "title": "Get Trust Center settings | Comp AI API", "sidebarTitle": "Get Trust Center settings", "description": "Retrieve Trust Center settings used to configure public status, custom domains, framework visibility, resources, FAQs, and access rules.", "og:title": "Get Trust Center settings | Comp AI API", "og:description": "Retrieve Trust Center settings used to configure public status, custom domains, framework visibility, resources, FAQs, and access rules." } }, "x-speakeasy-mcp": { "name": "get-settings" } } }, "/v1/trust-portal/favicon": { "post": { "operationId": "TrustPortalController_uploadFavicon_v1", "parameters": [], "responses": { "201": { "description": "Favicon uploaded successfully" } }, "security": [ { "apikey": [] } ], "summary": "Upload a favicon for the trust portal", "tags": [ "Trust Portal" ], "description": "Upload a favicon for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Upload a favicon for the trust portal | Comp AI API", "sidebarTitle": "Upload a favicon for the trust portal", "description": "Upload a favicon for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "Upload a favicon for the trust portal | Comp AI API", "og:description": "Upload a favicon for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "upload-favicon" } }, "delete": { "operationId": "TrustPortalController_removeFavicon_v1", "parameters": [], "responses": { "200": { "description": "Favicon removed successfully" } }, "security": [ { "apikey": [] } ], "summary": "Remove the trust portal favicon", "tags": [ "Trust Portal" ], "description": "Remove the trust portal favicon in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Remove the trust portal favicon | Comp AI API", "sidebarTitle": "Remove the trust portal favicon", "description": "Remove the trust portal favicon in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links.", "og:title": "Remove the trust portal favicon | Comp AI API", "og:description": "Remove the trust portal favicon in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links." } }, "x-speakeasy-mcp": { "name": "remove-favicon" } } }, "/v1/trust-portal/domain/status": { "get": { "description": "Get domain verification status in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "operationId": "TrustPortalController_getDomainStatus_v1", "parameters": [ { "name": "domain", "required": true, "in": "query", "description": "The domain name to check status for", "schema": { "example": "portal.example.com", "type": "string" } } ], "responses": { "200": { "description": "Domain status retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainStatusResponseDto" } } } }, "401": { "description": "Unauthorized - Invalid or missing authentication" }, "500": { "description": "Failed to retrieve domain status from Vercel" } }, "security": [ { "apikey": [] } ], "summary": "Get domain verification status", "tags": [ "Trust Portal" ], "x-mint": { "metadata": { "title": "Get domain verification status | Comp AI API", "sidebarTitle": "Get domain verification status", "description": "Get domain verification status in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links.", "og:title": "Get domain verification status | Comp AI API", "og:description": "Get domain verification status in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links." } }, "x-speakeasy-mcp": { "name": "get-domain-status" } } }, "/v1/trust-portal/compliance-resources/upload": { "post": { "description": "Upload or replace a compliance certificate PDF such as SOC 2, ISO 27001, HIPAA, or GDPR evidence for Trust Center sharing.", "operationId": "TrustPortalController_uploadComplianceResource_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadComplianceResourceDto" } } } }, "responses": { "201": { "description": "Compliance certificate uploaded successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceResourceResponseDto" } } } }, "400": { "description": "Framework not compliant, PDF validation failed, or organization mismatch" } }, "security": [ { "apikey": [] } ], "summary": "Upload compliance certificate", "tags": [ "Trust Portal" ], "x-mint": { "metadata": { "title": "Upload compliance certificate | Comp AI API", "sidebarTitle": "Upload compliance certificate", "description": "Upload or replace a compliance certificate PDF such as SOC 2, ISO 27001, HIPAA, or GDPR evidence for Trust Center sharing.", "og:title": "Upload compliance certificate | Comp AI API", "og:description": "Upload or replace a compliance certificate PDF such as SOC 2, ISO 27001, HIPAA, or GDPR evidence for Trust Center sharing." } }, "x-speakeasy-mcp": { "name": "upload-compliance-resource" } } }, "/v1/trust-portal/compliance-resources/signed-url": { "post": { "operationId": "TrustPortalController_getComplianceResourceUrl_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceResourceSignedUrlDto" } } } }, "responses": { "200": { "description": "Signed URL generated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceResourceUrlResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Generate a temporary signed URL for a compliance certificate", "tags": [ "Trust Portal" ], "description": "Generate a temporary signed URL for a compliance certificate in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Generate a temporary signed URL for a | Comp AI API", "sidebarTitle": "Generate a temporary signed URL for a compliance certificate", "description": "Generate a temporary signed URL for a compliance certificate in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance.", "og:title": "Generate a temporary signed URL for a | Comp AI API", "og:description": "Generate a temporary signed URL for a compliance certificate in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance." } }, "x-speakeasy-mcp": { "name": "get-compliance-resource-url" } } }, "/v1/trust-portal/compliance-resources/list": { "post": { "operationId": "TrustPortalController_listComplianceResources_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListComplianceResourcesDto" } } } }, "responses": { "200": { "description": "Compliance certificates retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ComplianceResourceResponseDto" } } } } } }, "security": [ { "apikey": [] } ], "summary": "List uploaded compliance certificates for the organization", "tags": [ "Trust Portal" ], "description": "List uploaded compliance certificates for the organization in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "List uploaded compliance certificates for the | Comp AI API", "sidebarTitle": "List uploaded compliance certificates for the organization", "description": "List uploaded compliance certificates for the organization in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance.", "og:title": "List uploaded compliance certificates for the | Comp AI API", "og:description": "List uploaded compliance certificates for the organization in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance." } }, "x-speakeasy-mcp": { "name": "list-compliance-resources" } } }, "/v1/trust-portal/documents/upload": { "post": { "description": "Upload an additional trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "operationId": "TrustPortalController_uploadTrustDocument_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadTrustDocumentDto" } } } }, "responses": { "201": { "description": "Document uploaded successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrustDocumentResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Upload an additional trust portal document", "tags": [ "Trust Portal" ], "x-mint": { "metadata": { "title": "Upload an additional trust portal document | Comp AI API", "sidebarTitle": "Upload an additional trust portal document", "description": "Upload an additional trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources.", "og:title": "Upload an additional trust portal document | Comp AI API", "og:description": "Upload an additional trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources." } }, "x-speakeasy-mcp": { "name": "upload-trust-document" } } }, "/v1/trust-portal/documents/list": { "post": { "operationId": "TrustPortalController_listTrustDocuments_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListComplianceResourcesDto" } } } }, "responses": { "200": { "description": "Documents retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrustDocumentResponseDto" } } } } } }, "security": [ { "apikey": [] } ], "summary": "List additional trust portal documents for the organization", "tags": [ "Trust Portal" ], "description": "List additional trust portal documents for the organization in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "List additional trust portal documents for | Comp AI API", "sidebarTitle": "List additional trust portal documents for the organization", "description": "List additional trust portal documents for the organization in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance.", "og:title": "List additional trust portal documents for | Comp AI API", "og:description": "List additional trust portal documents for the organization in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance." } }, "x-speakeasy-mcp": { "name": "list-trust-documents" } } }, "/v1/trust-portal/documents/{documentId}/download": { "post": { "operationId": "TrustPortalController_getTrustDocumentUrl_v1", "parameters": [ { "name": "documentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrustDocumentSignedUrlDto" } } } }, "responses": { "200": { "description": "Signed URL generated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrustDocumentUrlResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Generate a temporary signed URL for a trust portal document", "tags": [ "Trust Portal" ], "description": "Generate a temporary signed URL for a trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Generate a temporary signed URL for a trust | Comp AI API", "sidebarTitle": "Generate a temporary signed URL for a trust portal document", "description": "Generate a temporary signed URL for a trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance.", "og:title": "Generate a temporary signed URL for a trust | Comp AI API", "og:description": "Generate a temporary signed URL for a trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance." } }, "x-speakeasy-mcp": { "name": "get-trust-document-url" } } }, "/v1/trust-portal/documents/{documentId}/delete": { "post": { "operationId": "TrustPortalController_deleteTrustDocument_v1", "parameters": [ { "name": "documentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteTrustDocumentDto" } } } }, "responses": { "200": { "description": "Document deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete (deactivate) a trust portal document", "tags": [ "Trust Portal" ], "description": "Delete (deactivate) a trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Delete (deactivate) a trust portal document | Comp AI API", "sidebarTitle": "Delete (deactivate) a trust portal document", "description": "Delete (deactivate) a trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources.", "og:title": "Delete (deactivate) a trust portal document | Comp AI API", "og:description": "Delete (deactivate) a trust portal document in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources." } }, "x-speakeasy-mcp": { "name": "delete-trust-document" } } }, "/v1/trust-portal/settings/toggle": { "put": { "operationId": "TrustPortalController_togglePortal_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Enable or disable the trust portal", "tags": [ "Trust Portal" ], "description": "Enable or disable the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Enable or disable the trust portal | Comp AI API", "sidebarTitle": "Enable or disable the trust portal", "description": "Enable or disable the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "Enable or disable the trust portal | Comp AI API", "og:description": "Enable or disable the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "toggle-portal" } } }, "/v1/trust-portal/settings/custom-domain": { "post": { "operationId": "TrustPortalController_addCustomDomain_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Add or update a custom domain for the trust portal", "tags": [ "Trust Portal" ], "description": "Add or update a custom domain for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Add or update a custom domain for the trust | Comp AI API", "sidebarTitle": "Add or update a custom domain for the trust portal", "description": "Add or update a custom domain for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources.", "og:title": "Add or update a custom domain for the trust | Comp AI API", "og:description": "Add or update a custom domain for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources." } }, "x-speakeasy-mcp": { "name": "add-custom-domain" } } }, "/v1/trust-portal/settings/check-dns": { "post": { "operationId": "TrustPortalController_checkDnsRecords_v1", "parameters": [], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Check DNS records for a custom domain", "tags": [ "Trust Portal" ], "description": "Check DNS records for a custom domain in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Check DNS records for a custom domain | Comp AI API", "sidebarTitle": "Check DNS records for a custom domain", "description": "Check DNS records for a custom domain in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "Check DNS records for a custom domain | Comp AI API", "og:description": "Check DNS records for a custom domain in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "check-dns-records" } } }, "/v1/trust-portal/settings/faqs": { "put": { "operationId": "TrustPortalController_updateFaqs_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "faqs" ], "properties": { "faqs": { "type": "array", "items": { "type": "object", "required": [ "question", "answer" ], "properties": { "question": { "type": "string" }, "answer": { "type": "string" } } } } } } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update trust portal FAQs", "tags": [ "Trust Portal" ], "description": "Update trust portal FAQs in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Update trust portal FAQs | Comp AI API", "sidebarTitle": "Update trust portal FAQs", "description": "Update trust portal FAQs in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links.", "og:title": "Update trust portal FAQs | Comp AI API", "og:description": "Update trust portal FAQs in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links." } }, "x-speakeasy-mcp": { "name": "update-faqs" } } }, "/v1/trust-portal/settings/allowed-domains": { "put": { "operationId": "TrustPortalController_updateAllowedDomains_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update allowed domains for the trust portal", "tags": [ "Trust Portal" ], "description": "Update allowed domains for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Update allowed domains for the trust portal | Comp AI API", "sidebarTitle": "Update allowed domains for the trust portal", "description": "Update allowed domains for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources.", "og:title": "Update allowed domains for the trust portal | Comp AI API", "og:description": "Update allowed domains for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources." } }, "x-speakeasy-mcp": { "name": "update-allowed-domains" } } }, "/v1/trust-portal/settings/allowed-emails": { "put": { "operationId": "TrustPortalController_updateAllowedEmails_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAllowedEmailsDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update allowed emails for the trust portal", "tags": [ "Trust Portal" ], "description": "Update allowed emails for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Update allowed emails for the trust portal | Comp AI API", "sidebarTitle": "Update allowed emails for the trust portal", "description": "Update allowed emails for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources.", "og:title": "Update allowed emails for the trust portal | Comp AI API", "og:description": "Update allowed emails for the trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources." } }, "x-speakeasy-mcp": { "name": "update-allowed-emails" } } }, "/v1/trust-portal/settings/frameworks": { "put": { "operationId": "TrustPortalController_updateFrameworks_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update trust portal framework settings", "tags": [ "Trust Portal" ], "description": "Update trust portal framework settings in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Update trust portal framework settings | Comp AI API", "sidebarTitle": "Update trust portal framework settings", "description": "Update trust portal framework settings in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "Update trust portal framework settings | Comp AI API", "og:description": "Update trust portal framework settings in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "update-frameworks" } } }, "/v1/trust-portal/settings/security-questionnaire": { "put": { "operationId": "TrustPortalController_updateSecurityQuestionnaire_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "enabled" ], "properties": { "enabled": { "type": "boolean", "description": "When false, the Security Questionnaire is hidden from the public trust portal." } } } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Show or hide the Security Questionnaire on the public trust portal", "tags": [ "Trust Portal" ], "description": "Show or hide the Security Questionnaire on the public trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Show or hide the Security Questionnaire on | Comp AI API", "sidebarTitle": "Show or hide the Security Questionnaire on the public trust portal", "description": "Show or hide the Security Questionnaire on the public trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs.", "og:title": "Show or hide the Security Questionnaire on | Comp AI API", "og:description": "Show or hide the Security Questionnaire on the public trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs." } }, "x-speakeasy-mcp": { "name": "update-security-questionnaire" } } }, "/v1/trust-portal/custom-frameworks": { "get": { "operationId": "TrustPortalController_listCustomFrameworks_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List org-authored custom frameworks with their trust portal selection", "tags": [ "Trust Portal" ], "description": "List org-authored custom frameworks with their trust portal selection in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "List org-authored custom frameworks with | Comp AI API", "sidebarTitle": "List org-authored custom frameworks with their trust portal selection", "description": "List org-authored custom frameworks with their trust portal selection in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs.", "og:title": "List org-authored custom frameworks with | Comp AI API", "og:description": "List org-authored custom frameworks with their trust portal selection in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs." } }, "x-speakeasy-mcp": { "name": "list-custom-frameworks" } }, "put": { "operationId": "TrustPortalController_updateCustomFramework_v1", "parameters": [], "requestBody": { "required": true, "description": "At least one of `enabled` or `status` must be provided.", "content": { "application/json": { "schema": { "type": "object", "required": [ "customFrameworkId" ], "anyOf": [ { "required": [ "enabled" ] }, { "required": [ "status" ] } ], "properties": { "customFrameworkId": { "type": "string", "minLength": 1 }, "enabled": { "type": "boolean" }, "status": { "type": "string", "enum": [ "started", "in_progress", "compliant" ] } } } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Enable/disable a custom framework on the trust portal and set its status", "tags": [ "Trust Portal" ], "description": "Enable/disable a custom framework on the trust portal and set its status in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Enable/disable a custom framework on the | Comp AI API", "sidebarTitle": "Enable/disable a custom framework on the trust portal and set its status", "description": "Enable/disable a custom framework on the trust portal and set its status in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs.", "og:title": "Enable/disable a custom framework on the | Comp AI API", "og:description": "Enable/disable a custom framework on the trust portal and set its status in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs." } }, "x-speakeasy-mcp": { "name": "update-custom-framework" } } }, "/v1/trust-portal/custom-frameworks/badge": { "post": { "description": "Stores a PNG/JPEG/WebP badge (max 256KB) in the organization assets bucket. Does not change the framework's portal visibility.", "operationId": "TrustPortalController_uploadCustomFrameworkBadge_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadCustomFrameworkBadgeDto" } } } }, "responses": { "201": { "description": "Badge uploaded successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomFrameworkBadgeResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Upload or replace a custom framework's Trust Portal badge image", "tags": [ "Trust Portal" ], "x-mint": { "metadata": { "title": "Upload or replace a custom framework's Trust | Comp AI API", "sidebarTitle": "Upload or replace a custom framework's Trust Portal badge image", "description": "Stores a PNG/JPEG/WebP badge (max 256KB) in the organization assets bucket. Does not change the framework's portal visibility.", "og:title": "Upload or replace a custom framework's Trust | Comp AI API", "og:description": "Stores a PNG/JPEG/WebP badge (max 256KB) in the organization assets bucket. Does not change the framework's portal visibility." } }, "x-speakeasy-mcp": { "name": "upload-custom-framework-badge" } }, "delete": { "operationId": "TrustPortalController_removeCustomFrameworkBadge_v1", "parameters": [ { "name": "customFrameworkId", "required": true, "in": "query", "description": "Org-authored custom framework ID whose badge to remove", "schema": { "example": "cfrm_6914cd0e16e4c7dccbb54426", "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Remove a custom framework's Trust Portal badge image", "tags": [ "Trust Portal" ], "description": "Remove a custom framework's Trust Portal badge image in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Remove a custom framework's Trust Portal | Comp AI API", "sidebarTitle": "Remove a custom framework's Trust Portal badge image", "description": "Remove a custom framework's Trust Portal badge image in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance.", "og:title": "Remove a custom framework's Trust Portal | Comp AI API", "og:description": "Remove a custom framework's Trust Portal badge image in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance." } }, "x-speakeasy-mcp": { "name": "remove-custom-framework-badge" } } }, "/v1/trust-portal/overview": { "post": { "operationId": "TrustPortalController_updateOverview_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "organizationId" ], "properties": { "organizationId": { "type": "string", "description": "Organization that owns the trust portal. Must match the authenticated API key's organization.", "example": "org_6914cd0e16e4c7dccbb54426" }, "overviewTitle": { "type": "string", "maxLength": 200, "nullable": true }, "overviewContent": { "type": "string", "maxLength": 10000, "nullable": true }, "showOverview": { "type": "boolean" } } } } } }, "responses": { "200": { "description": "Overview updated successfully" } }, "security": [ { "apikey": [] } ], "summary": "Update Trust Center overview", "tags": [ "Trust Portal" ], "description": "Update the public Trust Center overview content that explains security posture and compliance status to prospects and customers.", "x-mint": { "metadata": { "title": "Update Trust Center overview | Comp AI API", "sidebarTitle": "Update Trust Center overview", "description": "Update the public Trust Center overview content that explains security posture and compliance status to prospects and customers.", "og:title": "Update Trust Center overview | Comp AI API", "og:description": "Update the public Trust Center overview content that explains security posture and compliance status to prospects and customers." } }, "x-speakeasy-mcp": { "name": "update-overview" } }, "get": { "operationId": "TrustPortalController_getOverview_v1", "parameters": [ { "name": "organizationId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get trust portal overview", "tags": [ "Trust Portal" ], "description": "Get trust portal overview in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Get trust portal overview | Comp AI API", "sidebarTitle": "Get trust portal overview", "description": "Get trust portal overview in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links.", "og:title": "Get trust portal overview | Comp AI API", "og:description": "Get trust portal overview in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links." } }, "x-speakeasy-mcp": { "name": "get-overview" } } }, "/v1/trust-portal/custom-links": { "post": { "operationId": "TrustPortalController_createCustomLink_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "organizationId", "title", "url" ], "properties": { "organizationId": { "type": "string", "description": "Organization that owns the trust portal. Must match the authenticated API key's organization.", "example": "org_6914cd0e16e4c7dccbb54426" }, "title": { "type": "string", "minLength": 1, "maxLength": 100 }, "description": { "type": "string", "maxLength": 500, "nullable": true }, "url": { "type": "string", "format": "uri", "maxLength": 2000 } } } } } }, "responses": { "201": { "description": "Custom link created successfully" } }, "security": [ { "apikey": [] } ], "summary": "Create a custom link for trust portal", "tags": [ "Trust Portal" ], "description": "Create a custom link for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Create a custom link for trust portal | Comp AI API", "sidebarTitle": "Create a custom link for trust portal", "description": "Create a custom link for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "Create a custom link for trust portal | Comp AI API", "og:description": "Create a custom link for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "create-custom-link" } }, "get": { "operationId": "TrustPortalController_listCustomLinks_v1", "parameters": [ { "name": "organizationId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List custom links for trust portal", "tags": [ "Trust Portal" ], "description": "List custom links for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "List custom links for trust portal | Comp AI API", "sidebarTitle": "List custom links for trust portal", "description": "List custom links for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "List custom links for trust portal | Comp AI API", "og:description": "List custom links for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "list-custom-links" } } }, "/v1/trust-portal/custom-links/{linkId}": { "post": { "operationId": "TrustPortalController_updateCustomLink_v1", "parameters": [ { "name": "linkId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Custom link updated successfully" } }, "security": [ { "apikey": [] } ], "summary": "Update a custom link", "tags": [ "Trust Portal" ], "description": "Update a custom link in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Update a custom link | Comp AI API", "sidebarTitle": "Update a custom link", "description": "Update a custom link in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor.", "og:title": "Update a custom link | Comp AI API", "og:description": "Update a custom link in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor." } }, "x-speakeasy-mcp": { "name": "update-custom-link" } } }, "/v1/trust-portal/custom-links/{linkId}/delete": { "post": { "operationId": "TrustPortalController_deleteCustomLink_v1", "parameters": [ { "name": "linkId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Custom link deleted successfully" } }, "security": [ { "apikey": [] } ], "summary": "Delete a custom link", "tags": [ "Trust Portal" ], "description": "Delete a custom link in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Delete a custom link | Comp AI API", "sidebarTitle": "Delete a custom link", "description": "Delete a custom link in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor.", "og:title": "Delete a custom link | Comp AI API", "og:description": "Delete a custom link in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor." } }, "x-speakeasy-mcp": { "name": "delete-custom-link" } } }, "/v1/trust-portal/custom-links/reorder": { "post": { "operationId": "TrustPortalController_reorderCustomLinks_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "organizationId", "linkIds" ], "properties": { "organizationId": { "type": "string", "description": "Organization that owns the trust portal. Must match the authenticated API key's organization.", "example": "org_6914cd0e16e4c7dccbb54426" }, "linkIds": { "type": "array", "items": { "type": "string" }, "description": "Custom link IDs in the desired display order." } } } } } }, "responses": { "200": { "description": "Custom links reordered successfully" } }, "security": [ { "apikey": [] } ], "summary": "Reorder custom links", "tags": [ "Trust Portal" ], "description": "Reorder custom links in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Reorder custom links | Comp AI API", "sidebarTitle": "Reorder custom links", "description": "Reorder custom links in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor.", "og:title": "Reorder custom links | Comp AI API", "og:description": "Reorder custom links in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor." } }, "x-speakeasy-mcp": { "name": "reorder-custom-links" } } }, "/v1/trust-portal/vendors/{vendorId}/trust-settings": { "post": { "operationId": "TrustPortalController_updateVendorTrustSettings_v1", "parameters": [ { "name": "vendorId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Vendor settings updated successfully" } }, "security": [ { "apikey": [] } ], "summary": "Update vendor trust portal settings", "tags": [ "Trust Portal" ], "description": "Update vendor trust portal settings in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "Update vendor trust portal settings | Comp AI API", "sidebarTitle": "Update vendor trust portal settings", "description": "Update vendor trust portal settings in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "Update vendor trust portal settings | Comp AI API", "og:description": "Update vendor trust portal settings in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "update-vendor-trust-settings" } } }, "/v1/trust-portal/vendors": { "get": { "operationId": "TrustPortalController_listVendors_v1", "parameters": [ { "name": "all", "required": false, "in": "query", "description": "When true, returns all org vendors with sync", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List vendors configured for trust portal", "tags": [ "Trust Portal" ], "description": "List vendors configured for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures.", "x-mint": { "metadata": { "title": "List vendors configured for trust portal | Comp AI API", "sidebarTitle": "List vendors configured for trust portal", "description": "List vendors configured for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents.", "og:title": "List vendors configured for trust portal | Comp AI API", "og:description": "List vendors configured for trust portal in Comp AI. Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents." } }, "x-speakeasy-mcp": { "name": "list-vendors" } } }, "/v1/trust-access/{friendlyUrl}/requests": { "post": { "description": "Submit a Trust Center access request with requester details, company context, and review reason for administrator approval.", "operationId": "TrustAccessController_createAccessRequest_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAccessRequestDto" } } } }, "responses": { "201": { "description": "Access request created and sent for review" } }, "summary": "Submit Trust Access request", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Submit Trust Access request | Comp AI API", "sidebarTitle": "Submit Trust Access request", "description": "Submit a Trust Center access request with requester details, company context, and review reason for administrator approval.", "og:title": "Submit Trust Access request | Comp AI API", "og:description": "Submit a Trust Center access request with requester details, company context, and review reason for administrator approval." } }, "x-speakeasy-mcp": { "name": "create-access-request" } } }, "/v1/trust-access/admin/requests": { "get": { "description": "List pending and completed Trust Center access requests so teams can review customer security inquiries through the API.", "operationId": "TrustAccessController_listAccessRequests_v1", "parameters": [ { "name": "status", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "under_review", "approved", "denied", "canceled" ] } } ], "responses": { "200": { "description": "Access requests retrieved" } }, "security": [ { "apikey": [] } ], "summary": "List Trust Access requests", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "List Trust Access requests | Comp AI API", "sidebarTitle": "List Trust Access requests", "description": "List pending and completed Trust Center access requests so teams can review customer security inquiries through the API.", "og:title": "List Trust Access requests | Comp AI API", "og:description": "List pending and completed Trust Center access requests so teams can review customer security inquiries through the API." } }, "x-speakeasy-mcp": { "name": "list-access-requests" } } }, "/v1/trust-access/admin/requests/{id}": { "get": { "description": "Retrieve one Trust Center access request with requester context, status, review metadata, and audit details.", "operationId": "TrustAccessController_getAccessRequest_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Request details returned" } }, "security": [ { "apikey": [] } ], "summary": "Get Trust Access request", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Get Trust Access request | Comp AI API", "sidebarTitle": "Get Trust Access request", "description": "Retrieve one Trust Center access request with requester context, status, review metadata, and audit details.", "og:title": "Get Trust Access request | Comp AI API", "og:description": "Retrieve one Trust Center access request with requester context, status, review metadata, and audit details." } }, "x-speakeasy-mcp": { "name": "get-access-request" } } }, "/v1/trust-access/admin/requests/{id}/approve": { "post": { "description": "Approve a Trust Center access request, configure the grant window, and start the NDA or access email workflow.", "operationId": "TrustAccessController_approveRequest_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApproveAccessRequestDto" } } } }, "responses": { "200": { "description": "Request approved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Approve Trust Access request", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Approve Trust Access request | Comp AI API", "sidebarTitle": "Approve Trust Access request", "description": "Approve a Trust Center access request, configure the grant window, and start the NDA or access email workflow.", "og:title": "Approve Trust Access request | Comp AI API", "og:description": "Approve a Trust Center access request, configure the grant window, and start the NDA or access email workflow." } }, "x-speakeasy-mcp": { "name": "approve-request" } } }, "/v1/trust-access/admin/requests/{id}/deny": { "post": { "description": "Reject a Trust Center access request with a review reason so customer security access decisions stay auditable.", "operationId": "TrustAccessController_denyRequest_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DenyAccessRequestDto" } } } }, "responses": { "200": { "description": "Request denied" } }, "security": [ { "apikey": [] } ], "summary": "Deny Trust Access request", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Deny Trust Access request | Comp AI API", "sidebarTitle": "Deny Trust Access request", "description": "Reject a Trust Center access request with a review reason so customer security access decisions stay auditable.", "og:title": "Deny Trust Access request | Comp AI API", "og:description": "Reject a Trust Center access request with a review reason so customer security access decisions stay auditable." } }, "x-speakeasy-mcp": { "name": "deny-request" } } }, "/v1/trust-access/admin/grants": { "get": { "description": "List active, expired, and revoked Trust Access grants for customer security reviews and shared compliance resources.", "operationId": "TrustAccessController_listGrants_v1", "parameters": [], "responses": { "200": { "description": "Grants retrieved" } }, "security": [ { "apikey": [] } ], "summary": "List Trust Access grants", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "List Trust Access grants | Comp AI API", "sidebarTitle": "List Trust Access grants", "description": "List active, expired, and revoked Trust Access grants for customer security reviews and shared compliance resources.", "og:title": "List Trust Access grants | Comp AI API", "og:description": "List active, expired, and revoked Trust Access grants for customer security reviews and shared compliance resources." } }, "x-speakeasy-mcp": { "name": "list-grants" } } }, "/v1/trust-access/admin/grants/{id}/revoke": { "post": { "description": "Immediately revoke a Trust Access grant when a customer review ends or shared compliance access should be removed.", "operationId": "TrustAccessController_revokeGrant_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevokeGrantDto" } } } }, "responses": { "200": { "description": "Grant revoked" } }, "security": [ { "apikey": [] } ], "summary": "Revoke Trust Access grant", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Revoke Trust Access grant | Comp AI API", "sidebarTitle": "Revoke Trust Access grant", "description": "Immediately revoke a Trust Access grant when a customer review ends or shared compliance access should be removed.", "og:title": "Revoke Trust Access grant | Comp AI API", "og:description": "Immediately revoke a Trust Access grant when a customer review ends or shared compliance access should be removed." } }, "x-speakeasy-mcp": { "name": "revoke-grant" } } }, "/v1/trust-access/admin/grants/{id}/resend-access-email": { "post": { "description": "Resend the access email for an active Trust Access grant so approved reviewers can reopen shared resources.", "operationId": "TrustAccessController_resendAccessEmail_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Access email resent" } }, "security": [ { "apikey": [] } ], "summary": "Resend Trust Access email", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Resend Trust Access email | Comp AI API", "sidebarTitle": "Resend Trust Access email", "description": "Resend the access email for an active Trust Access grant so approved reviewers can reopen shared resources.", "og:title": "Resend Trust Access email | Comp AI API", "og:description": "Resend the access email for an active Trust Access grant so approved reviewers can reopen shared resources." } }, "x-speakeasy-mcp": { "name": "resend-access-email" } } }, "/v1/trust-access/admin/requests/{id}/resend-nda": { "post": { "description": "Resend an NDA signing email for a Trust Access request that still requires reviewer signature.", "operationId": "TrustAccessController_resendNda_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "NDA email resent" } }, "security": [ { "apikey": [] } ], "summary": "Resend Trust Access NDA", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Resend Trust Access NDA | Comp AI API", "sidebarTitle": "Resend Trust Access NDA", "description": "Resend an NDA signing email for a Trust Access request that still requires reviewer signature.", "og:title": "Resend Trust Access NDA | Comp AI API", "og:description": "Resend an NDA signing email for a Trust Access request that still requires reviewer signature." } }, "x-speakeasy-mcp": { "name": "resend-nda" } } }, "/v1/trust-access/admin/requests/{id}/preview-nda": { "post": { "description": "Generate a preview NDA PDF for a Trust Access request before the reviewer signs and receives access.", "operationId": "TrustAccessController_previewNda_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Preview NDA generated" } }, "security": [ { "apikey": [] } ], "summary": "Preview Trust Access NDA", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Preview Trust Access NDA | Comp AI API", "sidebarTitle": "Preview Trust Access NDA", "description": "Generate a preview NDA PDF for a Trust Access request before the reviewer signs and receives access.", "og:title": "Preview Trust Access NDA | Comp AI API", "og:description": "Generate a preview NDA PDF for a Trust Access request before the reviewer signs and receives access." } }, "x-speakeasy-mcp": { "name": "preview-nda" } } }, "/v1/trust-access/{friendlyUrl}/reclaim": { "post": { "description": "Request a fresh Trust Access link for a reviewer who already has an active grant on a published Trust Center.", "operationId": "TrustAccessController_reclaimAccess_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } }, { "name": "query", "required": false, "in": "query", "description": "Query parameter to append to the access link (e.g., security-questionnaire)", "schema": { "example": "security-questionnaire", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReclaimAccessDto" } } } }, "responses": { "200": { "description": "Access link sent to email" } }, "summary": "Reclaim Trust Access link", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Reclaim Trust Access link | Comp AI API", "sidebarTitle": "Reclaim Trust Access link", "description": "Request a fresh Trust Access link for a reviewer who already has an active grant on a published Trust Center.", "og:title": "Reclaim Trust Access link | Comp AI API", "og:description": "Request a fresh Trust Access link for a reviewer who already has an active grant on a published Trust Center." } }, "x-speakeasy-mcp": { "name": "reclaim-access" } } }, "/v1/trust-access/{friendlyUrl}/faqs": { "get": { "description": "Retrieve published Trust Center FAQs for an organization so public trust pages can show customer security answers.", "operationId": "TrustAccessController_getFaqs_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "FAQs retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "faqs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "question": { "type": "string" }, "answer": { "type": "string" }, "order": { "type": "number" } } }, "nullable": true } } } } } }, "404": { "description": "Trust site not found or not published" } }, "summary": "Get Trust Center FAQs", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Get Trust Center FAQs | Comp AI API", "sidebarTitle": "Get Trust Center FAQs", "description": "Retrieve published Trust Center FAQs for an organization so public trust pages can show customer security answers.", "og:title": "Get Trust Center FAQs | Comp AI API", "og:description": "Retrieve published Trust Center FAQs for an organization so public trust pages can show customer security answers." } }, "x-speakeasy-mcp": { "name": "get-faqs" } } }, "/v1/trust-access/{friendlyUrl}/overview": { "get": { "description": "Retrieve the published Trust Center overview for an organization, including public security posture messaging.", "operationId": "TrustAccessController_getPublicOverview_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Overview retrieved successfully" } }, "summary": "Get Trust Center overview", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Get Trust Center overview | Comp AI API", "sidebarTitle": "Get Trust Center overview", "description": "Retrieve the published Trust Center overview for an organization, including public security posture messaging.", "og:title": "Get Trust Center overview | Comp AI API", "og:description": "Retrieve the published Trust Center overview for an organization, including public security posture messaging." } }, "x-speakeasy-mcp": { "name": "get-public-overview" } } }, "/v1/trust-access/{friendlyUrl}/security-questionnaire": { "get": { "description": "Whether the org offers the AI-assisted Security Questionnaire on its public trust portal. Defaults to enabled when the portal can't be resolved.", "operationId": "TrustAccessController_getPublicSecurityQuestionnaire_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Security Questionnaire visibility retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "enabled": { "type": "boolean" } } } } } } }, "summary": "Get Security Questionnaire visibility for a trust portal", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Get Security Questionnaire visibility for a | Comp AI API", "sidebarTitle": "Get Security Questionnaire visibility for a trust portal", "description": "Whether the org offers the AI-assisted Security Questionnaire on its public trust portal. Defaults to enabled when the portal can't be resolved.", "og:title": "Get Security Questionnaire visibility for a | Comp AI API", "og:description": "Whether the org offers the AI-assisted Security Questionnaire on its public trust portal. Defaults to enabled when the portal can't be resolved." } }, "x-speakeasy-mcp": { "name": "get-public-security-questionnaire" } } }, "/v1/trust-access/{friendlyUrl}/custom-links": { "get": { "description": "List published custom links shown on an organization Trust Center for customer security and compliance reviews.", "operationId": "TrustAccessController_getPublicCustomLinks_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Custom links retrieved successfully" } }, "summary": "List Trust Center custom links", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "List Trust Center custom links | Comp AI API", "sidebarTitle": "List Trust Center custom links", "description": "List published custom links shown on an organization Trust Center for customer security and compliance reviews.", "og:title": "List Trust Center custom links | Comp AI API", "og:description": "List published custom links shown on an organization Trust Center for customer security and compliance reviews." } }, "x-speakeasy-mcp": { "name": "get-public-custom-links" } } }, "/v1/trust-access/{friendlyUrl}/favicon": { "get": { "description": "Retrieve the favicon URL used by a published Trust Center so embedded or mirrored experiences can match branding.", "operationId": "TrustAccessController_getPublicFavicon_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Favicon URL retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "faviconUrl": { "type": "string", "nullable": true, "description": "Signed URL to the favicon, or null if not set" } } } } } } }, "summary": "Get Trust Center favicon", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Get Trust Center favicon | Comp AI API", "sidebarTitle": "Get Trust Center favicon", "description": "Retrieve the favicon URL used by a published Trust Center so embedded or mirrored experiences can match branding.", "og:title": "Get Trust Center favicon | Comp AI API", "og:description": "Retrieve the favicon URL used by a published Trust Center so embedded or mirrored experiences can match branding." } }, "x-speakeasy-mcp": { "name": "get-public-favicon" } } }, "/v1/trust-access/{friendlyUrl}/vendors": { "get": { "description": "List published vendors and subprocessors for an organization Trust Center so reviewers can inspect third-party posture.", "operationId": "TrustAccessController_getPublicVendors_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Vendors retrieved successfully" } }, "summary": "List Trust Center vendors", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "List Trust Center vendors | Comp AI API", "sidebarTitle": "List Trust Center vendors", "description": "List published vendors and subprocessors for an organization Trust Center so reviewers can inspect third-party posture.", "og:title": "List Trust Center vendors | Comp AI API", "og:description": "List published vendors and subprocessors for an organization Trust Center so reviewers can inspect third-party posture." } }, "x-speakeasy-mcp": { "name": "get-public-vendors" } } }, "/v1/trust-access/{friendlyUrl}/custom-frameworks": { "get": { "description": "Get org-authored custom frameworks shown on a trust portal in Comp AI. Manage external Trust Center access requests, NDA signing, grants, tokenized document downloads, public FAQs, and reviewer access.", "operationId": "TrustAccessController_getPublicCustomFrameworks_v1", "parameters": [ { "name": "friendlyUrl", "required": true, "in": "path", "description": "Trust Portal friendly URL or Organization ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Custom frameworks retrieved successfully" } }, "summary": "Get org-authored custom frameworks shown on a trust portal", "tags": [ "Trust Access" ], "x-mint": { "metadata": { "title": "Get org-authored custom frameworks shown on a | Comp AI API", "sidebarTitle": "Get org-authored custom frameworks shown on a trust portal", "description": "Get org-authored custom frameworks shown on a trust portal in Comp AI. Manage external Trust Center access requests, NDA signing, grants, tokenized document.", "og:title": "Get org-authored custom frameworks shown on a | Comp AI API", "og:description": "Get org-authored custom frameworks shown on a trust portal in Comp AI. Manage external Trust Center access requests, NDA signing, grants, tokenized document." } }, "x-speakeasy-mcp": { "name": "get-public-custom-frameworks" } } }, "/v1/findings": { "get": { "operationId": "FindingsController_listFindings_v1", "parameters": [ { "name": "status", "required": false, "in": "query", "schema": { "enum": [ "open", "ready_for_review", "needs_revision", "closed" ], "type": "string" } }, { "name": "severity", "required": false, "in": "query", "schema": { "enum": [ "low", "medium", "high", "critical" ], "type": "string" } }, { "name": "area", "required": false, "in": "query", "schema": { "enum": [ "people", "documents", "compliance", "risks", "vendors", "policies", "other" ], "type": "string" } }, { "name": "taskId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "evidenceSubmissionId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "evidenceFormType", "required": false, "in": "query", "schema": { "enum": [ "board-meeting", "it-leadership-meeting", "risk-committee-meeting", "meeting", "access-request", "whistleblower-report", "penetration-test", "rbac-matrix", "infrastructure-inventory", "employee-performance-evaluation", "network-diagram", "tabletop-exercise", "account-types" ], "type": "string" } }, { "name": "policyId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "vendorId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "riskId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "memberId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "deviceId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List audit findings", "tags": [ "Findings" ], "description": "List audit findings with status, severity, owner, history, and remediation context for compliance review workflows.", "x-mint": { "metadata": { "title": "List audit findings | Comp AI API", "sidebarTitle": "List audit findings", "description": "List audit findings with status, severity, owner, history, and remediation context for compliance review workflows.", "og:title": "List audit findings | Comp AI API", "og:description": "List audit findings with status, severity, owner, history, and remediation context for compliance review workflows." } }, "x-speakeasy-mcp": { "name": "list-findings" } }, "post": { "operationId": "FindingsController_createFinding_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFindingDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Create audit finding", "tags": [ "Findings" ], "description": "Create an audit finding so teams can track issue ownership, remediation activity, severity, and supporting evidence.", "x-mint": { "metadata": { "title": "Create audit finding | Comp AI API", "sidebarTitle": "Create audit finding", "description": "Create an audit finding so teams can track issue ownership, remediation activity, severity, and supporting evidence.", "og:title": "Create audit finding | Comp AI API", "og:description": "Create an audit finding so teams can track issue ownership, remediation activity, severity, and supporting evidence." } }, "x-speakeasy-mcp": { "name": "create-finding" } } }, "/v1/findings/organization": { "get": { "operationId": "FindingsController_getOrganizationFindings_v1", "parameters": [ { "name": "status", "required": false, "in": "query", "schema": { "enum": [ "open", "ready_for_review", "needs_revision", "closed" ], "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List all findings for the organization", "tags": [ "Findings" ], "description": "List all findings for the organization in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization.", "x-mint": { "metadata": { "title": "List all findings for the organization | Comp AI API", "sidebarTitle": "List all findings for the organization", "description": "List all findings for the organization in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an.", "og:title": "List all findings for the organization | Comp AI API", "og:description": "List all findings for the organization in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an." } }, "x-speakeasy-mcp": { "name": "get-organization-findings" } } }, "/v1/findings/{id}": { "get": { "operationId": "FindingsController_getFindingById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Finding ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get finding by ID", "tags": [ "Findings" ], "description": "Get finding by ID in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization.", "x-mint": { "metadata": { "title": "Get finding by ID | Comp AI API", "sidebarTitle": "Get finding by ID", "description": "Get finding by ID in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization.", "og:title": "Get finding by ID | Comp AI API", "og:description": "Get finding by ID in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization." } }, "x-speakeasy-mcp": { "name": "get-finding-by-id" } }, "patch": { "operationId": "FindingsController_updateFinding_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Finding ID", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFindingDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update a finding (status transition rules apply)", "tags": [ "Findings" ], "description": "Update a finding (status transition rules apply) in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization.", "x-mint": { "metadata": { "title": "Update a finding (status transition rules | Comp AI API", "sidebarTitle": "Update a finding (status transition rules apply)", "description": "Update a finding (status transition rules apply) in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history.", "og:title": "Update a finding (status transition rules | Comp AI API", "og:description": "Update a finding (status transition rules apply) in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history." } }, "x-speakeasy-mcp": { "name": "update-finding" } }, "delete": { "operationId": "FindingsController_deleteFinding_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Finding ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Delete a finding (auditor or platform admin only)", "tags": [ "Findings" ], "description": "Delete a finding (auditor or platform admin only) in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization.", "x-mint": { "metadata": { "title": "Delete a finding (auditor or platform admin | Comp AI API", "sidebarTitle": "Delete a finding (auditor or platform admin only)", "description": "Delete a finding (auditor or platform admin only) in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history.", "og:title": "Delete a finding (auditor or platform admin | Comp AI API", "og:description": "Delete a finding (auditor or platform admin only) in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history." } }, "x-speakeasy-mcp": { "name": "delete-finding" } } }, "/v1/findings/{id}/history": { "get": { "operationId": "FindingsController_getFindingHistory_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Finding ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get activity history for a finding", "tags": [ "Findings" ], "description": "Get activity history for a finding in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an organization.", "x-mint": { "metadata": { "title": "Get activity history for a finding | Comp AI API", "sidebarTitle": "Get activity history for a finding", "description": "Get activity history for a finding in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an.", "og:title": "Get activity history for a finding | Comp AI API", "og:description": "Get activity history for a finding in Comp AI. Create, review, update, and track audit findings, remediation activity, and finding history for an." } }, "x-speakeasy-mcp": { "name": "get-finding-history" } } }, "/v1/roles": { "post": { "description": "Create a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "operationId": "RolesController_createRole_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRoleDto" } } } }, "responses": { "201": { "description": "Role created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "example": "rol_abc123" }, "name": { "type": "string", "example": "compliance-lead" }, "permissions": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "isBuiltIn": { "type": "boolean", "example": false }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } } } } }, "400": { "description": "Invalid role data or role already exists" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden - cannot grant permissions you do not have" } }, "security": [ { "apikey": [] } ], "summary": "Create a custom role", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Create a custom role | Comp AI API", "sidebarTitle": "Create a custom role", "description": "Create a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "og:title": "Create a custom role | Comp AI API", "og:description": "Create a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control." } }, "x-speakeasy-mcp": { "name": "create-role" } }, "get": { "description": "List all roles in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "operationId": "RolesController_listRoles_v1", "parameters": [], "responses": { "200": { "description": "List of roles", "content": { "application/json": { "schema": { "type": "object", "properties": { "builtInRoles": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "isBuiltIn": { "type": "boolean" }, "description": { "type": "string" } } } }, "customRoles": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "permissions": { "type": "object" }, "isBuiltIn": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } } } } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "apikey": [] } ], "summary": "List all roles", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "List all roles | Comp AI API", "sidebarTitle": "List all roles", "description": "List all roles in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "og:title": "List all roles | Comp AI API", "og:description": "List all roles in Comp AI. Create custom roles and resolve permission sets for organization-level access control." } }, "x-speakeasy-mcp": { "name": "list-roles" } } }, "/v1/roles/permissions": { "get": { "description": "Returns the merged permissions for the given custom role names. Used by the frontend to resolve effective permissions for users with custom roles.", "operationId": "RolesController_getPermissionsForRoles_v1", "parameters": [ { "name": "roles", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Merged permissions for the requested roles", "content": { "application/json": { "schema": { "type": "object", "properties": { "permissions": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } } } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "apikey": [] } ], "summary": "Resolve permissions for custom roles", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Resolve permissions for custom roles | Comp AI API", "sidebarTitle": "Resolve permissions for custom roles", "description": "Returns the merged permissions for the given custom role names. Used by the frontend to resolve effective permissions for users with custom roles.", "og:title": "Resolve permissions for custom roles | Comp AI API", "og:description": "Returns the merged permissions for the given custom role names. Used by the frontend to resolve effective permissions for users with custom roles." } }, "x-speakeasy-mcp": { "name": "get-permissions-for-roles" } } }, "/v1/roles/built-in/{name}/obligations": { "get": { "description": "Returns the effective obligations for a built-in role (owner, admin, auditor, employee, contractor) — DB override if present, else the hardcoded default.", "operationId": "RolesController_getBuiltInObligations_v1", "parameters": [ { "name": "name", "required": true, "in": "path", "description": "Built-in role name", "schema": { "example": "owner", "type": "string" } } ], "responses": { "200": { "description": "Effective obligations for the built-in role", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "obligations": { "type": "object", "properties": { "compliance": { "type": "boolean" } } } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get obligations for a built-in role", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Get obligations for a built-in role | Comp AI API", "sidebarTitle": "Get obligations for a built-in role", "description": "Returns the effective obligations for a built-in role (owner, admin, auditor, employee, contractor) — DB override if present, else the hardcoded default.", "og:title": "Get obligations for a built-in role | Comp AI API", "og:description": "Returns the effective obligations for a built-in role (owner, admin, auditor, employee, contractor) — DB override if present, else the hardcoded default." } }, "x-speakeasy-mcp": { "name": "get-built-in-obligations" } }, "patch": { "description": "Override the obligations for a built-in role (e.g., turn off the compliance obligation for owners). Permissions stay sourced from the hardcoded defaults.", "operationId": "RolesController_updateBuiltInObligations_v1", "parameters": [ { "name": "name", "required": true, "in": "path", "description": "Built-in role name", "schema": { "example": "owner", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBuiltInObligationsDto" } } } }, "responses": { "200": { "description": "Obligations updated", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "obligations": { "type": "object", "properties": { "compliance": { "type": "boolean" } } } } } } } }, "400": { "description": "Not a built-in role" } }, "security": [ { "apikey": [] } ], "summary": "Update obligations for a built-in role", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Update obligations for a built-in role | Comp AI API", "sidebarTitle": "Update obligations for a built-in role", "description": "Override the obligations for a built-in role (e.g., turn off the compliance obligation for owners). Permissions stay sourced from the hardcoded defaults.", "og:title": "Update obligations for a built-in role | Comp AI API", "og:description": "Override the obligations for a built-in role (e.g., turn off the compliance obligation for owners). Permissions stay sourced from the hardcoded defaults." } }, "x-speakeasy-mcp": { "name": "update-built-in-obligations" } } }, "/v1/roles/{roleId}": { "get": { "description": "Get a role by ID in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "operationId": "RolesController_getRole_v1", "parameters": [ { "name": "roleId", "required": true, "in": "path", "description": "Role ID", "schema": { "example": "rol_abc123", "type": "string" } } ], "responses": { "200": { "description": "Role details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "permissions": { "type": "object" }, "isBuiltIn": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Role not found" } }, "security": [ { "apikey": [] } ], "summary": "Get a role by ID", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Get a role by ID | Comp AI API", "sidebarTitle": "Get a role by ID", "description": "Get a role by ID in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "og:title": "Get a role by ID | Comp AI API", "og:description": "Get a role by ID in Comp AI. Create custom roles and resolve permission sets for organization-level access control." } }, "x-speakeasy-mcp": { "name": "get-role" } }, "patch": { "description": "Update a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "operationId": "RolesController_updateRole_v1", "parameters": [ { "name": "roleId", "required": true, "in": "path", "description": "Role ID", "schema": { "example": "rol_abc123", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRoleDto" } } } }, "responses": { "200": { "description": "Role updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "permissions": { "type": "object" }, "isBuiltIn": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } } } } } }, "400": { "description": "Invalid role data" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden - cannot grant permissions you do not have" }, "404": { "description": "Role not found" } }, "security": [ { "apikey": [] } ], "summary": "Update a custom role", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Update a custom role | Comp AI API", "sidebarTitle": "Update a custom role", "description": "Update a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "og:title": "Update a custom role | Comp AI API", "og:description": "Update a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control." } }, "x-speakeasy-mcp": { "name": "update-role" } }, "delete": { "description": "Delete a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "operationId": "RolesController_deleteRole_v1", "parameters": [ { "name": "roleId", "required": true, "in": "path", "description": "Role ID", "schema": { "example": "rol_abc123", "type": "string" } } ], "responses": { "200": { "description": "Role deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" } } } } } }, "400": { "description": "Cannot delete - members assigned to role" }, "401": { "description": "Unauthorized" }, "404": { "description": "Role not found" } }, "security": [ { "apikey": [] } ], "summary": "Delete a custom role", "tags": [ "Roles" ], "x-mint": { "metadata": { "title": "Delete a custom role | Comp AI API", "sidebarTitle": "Delete a custom role", "description": "Delete a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control.", "og:title": "Delete a custom role | Comp AI API", "og:description": "Delete a custom role in Comp AI. Create custom roles and resolve permission sets for organization-level access control." } }, "x-speakeasy-mcp": { "name": "delete-role" } } }, "/v1/questionnaire": { "get": { "operationId": "QuestionnaireController_findAll_v1", "parameters": [], "responses": { "200": { "description": "List of questionnaires" } }, "security": [ { "apikey": [] } ], "summary": "List security questionnaires", "tags": [ "Questionnaire" ], "description": "List saved security questionnaires for an organization so teams can track customer reviews, answer status, and response history.", "x-mint": { "href": "/api-reference/questionnaire/list-questionnaires", "metadata": { "title": "List security questionnaires | Comp AI API", "sidebarTitle": "List security questionnaires", "description": "List saved security questionnaires for an organization so teams can track customer reviews, answer status, and response history.", "og:title": "List security questionnaires | Comp AI API", "og:description": "List saved security questionnaires for an organization so teams can track customer reviews, answer status, and response history." } }, "x-speakeasy-mcp": { "name": "questionnaire-find-all" } } }, "/v1/questionnaire/{id}": { "get": { "operationId": "QuestionnaireController_findById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Questionnaire details" } }, "security": [ { "apikey": [] } ], "summary": "Get security questionnaire details", "tags": [ "Questionnaire" ], "description": "Retrieve one saved security questionnaire, including extracted questions, generated answers, and review context for the requesting client.", "x-mint": { "href": "/api-reference/questionnaire/get-a-questionnaire-by-id", "metadata": { "title": "Get security questionnaire details | Comp AI API", "sidebarTitle": "Get security questionnaire details", "description": "Retrieve one saved security questionnaire, including extracted questions, generated answers, and review context for the requesting client.", "og:title": "Get security questionnaire details | Comp AI API", "og:description": "Retrieve one saved security questionnaire, including extracted questions, generated answers, and review context for the requesting client." } }, "x-speakeasy-mcp": { "name": "find-by-id" } }, "delete": { "operationId": "QuestionnaireController_deleteById_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Questionnaire deleted" } }, "security": [ { "apikey": [] } ], "summary": "Delete a security questionnaire", "tags": [ "Questionnaire" ], "description": "Delete a saved security questionnaire when a customer review or vendor assessment no longer needs to be retained.", "x-mint": { "href": "/api-reference/questionnaire/delete-a-questionnaire", "metadata": { "title": "Delete a security questionnaire | Comp AI API", "sidebarTitle": "Delete a security questionnaire", "description": "Delete a saved security questionnaire when a customer review or vendor assessment no longer needs to be retained.", "og:title": "Delete a security questionnaire | Comp AI API", "og:description": "Delete a saved security questionnaire when a customer review or vendor assessment no longer needs to be retained." } }, "x-speakeasy-mcp": { "name": "delete-by-id" } } }, "/v1/questionnaire/{id}/auto-answer": { "post": { "description": "Starts background answer generation for an already-parsed questionnaire and returns a run handle immediately. Poll GET /v1/questionnaire/:id until answeredQuestions equals totalQuestions, then read the answers from its questions.", "operationId": "QuestionnaireController_triggerAutoAnswer_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerAutoAnswerResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Generate answers for a questionnaire", "tags": [ "Questionnaire" ], "x-speakeasy-mcp": { "name": "generate-questionnaire-answers" }, "x-mint": { "metadata": { "title": "Generate answers for a questionnaire | Comp AI API", "sidebarTitle": "Generate answers for a questionnaire", "description": "Starts background answer generation for an already-parsed questionnaire and returns a run handle immediately. Poll GET /v1/questionnaire/:id until.", "og:title": "Generate answers for a questionnaire | Comp AI API", "og:description": "Starts background answer generation for an already-parsed questionnaire and returns a run handle immediately. Poll GET /v1/questionnaire/:id until." } } } }, "/v1/questionnaire/parse": { "post": { "operationId": "QuestionnaireController_parseQuestionnaire_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ParseQuestionnaireDto" } } } }, "responses": { "200": { "description": "Parsed questionnaire content", "content": { "application/json": { "schema": { "type": "object" } } } } }, "security": [ { "apikey": [] } ], "summary": "Parse questionnaire content", "tags": [ "Questionnaire" ], "description": "Parse questionnaire content from a submitted payload so teams can extract security questions before generating or reviewing answers.", "x-mint": { "href": "/api-reference/questionnaire/parse-an-uploaded-questionnaire-file", "metadata": { "title": "Parse questionnaire content | Comp AI API", "sidebarTitle": "Parse questionnaire content", "description": "Parse questionnaire content from a submitted payload so teams can extract security questions before generating or reviewing answers.", "og:title": "Parse questionnaire content | Comp AI API", "og:description": "Parse questionnaire content from a submitted payload so teams can extract security questions before generating or reviewing answers." } }, "x-speakeasy-mcp": { "name": "parse-questionnaire" } } }, "/v1/questionnaire/answer-single": { "post": { "description": "Generate an answer for one security questionnaire item using the organization evidence library and return source references for review.", "operationId": "QuestionnaireController_answerSingleQuestion_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnswerSingleQuestionDto" } } } }, "responses": { "200": { "description": "Generated single answer result", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "data": { "type": "object", "properties": { "questionIndex": { "type": "number" }, "question": { "type": "string" }, "answer": { "type": "string", "nullable": true }, "sources": { "type": "array", "items": { "type": "object" } }, "error": { "type": "string", "nullable": true } } } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Answer one questionnaire question", "tags": [ "Questionnaire" ], "x-mint": { "href": "/api-reference/questionnaire/answer-a-single-questionnaire-question", "metadata": { "title": "Answer one questionnaire question | Comp AI API", "sidebarTitle": "Answer one questionnaire question", "description": "Generate an answer for one security questionnaire item using the organization evidence library and return source references for review.", "og:title": "Answer one questionnaire question | Comp AI API", "og:description": "Generate an answer for one security questionnaire item using the organization evidence library and return source references for review." } }, "x-speakeasy-mcp": { "name": "answer-single-question" } } }, "/v1/questionnaire/save-answer": { "post": { "operationId": "QuestionnaireController_saveAnswer_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveAnswerDto" } } } }, "responses": { "200": { "description": "Save manual or generated answer", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "nullable": true } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Save questionnaire answer", "tags": [ "Questionnaire" ], "description": "Save a manual or AI-generated security questionnaire answer for later review, export, and audit tracking.", "x-mint": { "href": "/api-reference/questionnaire/save-a-questionnaire-answer", "metadata": { "title": "Save questionnaire answer | Comp AI API", "sidebarTitle": "Save questionnaire answer", "description": "Save a manual or AI-generated security questionnaire answer for later review, export, and audit tracking.", "og:title": "Save questionnaire answer | Comp AI API", "og:description": "Save a manual or AI-generated security questionnaire answer for later review, export, and audit tracking." } }, "x-speakeasy-mcp": { "name": "save-answer" } } }, "/v1/questionnaire/delete-answer": { "post": { "operationId": "QuestionnaireController_deleteAnswer_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteAnswerDto" } } } }, "responses": { "200": { "description": "Delete questionnaire answer", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string", "nullable": true } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Delete questionnaire answer", "tags": [ "Questionnaire" ], "description": "Delete a stored questionnaire answer when it should be removed from the active response set.", "x-mint": { "href": "/api-reference/questionnaire/delete-a-questionnaire-answer", "metadata": { "title": "Delete questionnaire answer | Comp AI API", "sidebarTitle": "Delete questionnaire answer", "description": "Delete a stored questionnaire answer when it should be removed from the active response set.", "og:title": "Delete questionnaire answer | Comp AI API", "og:description": "Delete a stored questionnaire answer when it should be removed from the active response set." } }, "x-speakeasy-mcp": { "name": "delete-answer" } } }, "/v1/questionnaire/export": { "post": { "operationId": "QuestionnaireController_exportById_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportByIdDto" } } } }, "responses": { "200": { "description": "Export questionnaire by ID to specified format" } }, "security": [ { "apikey": [] } ], "summary": "Export a security questionnaire", "tags": [ "Questionnaire" ], "description": "Export a saved security questionnaire response package as PDF, CSV, or XLSX for customer and vendor security reviews.", "x-mint": { "href": "/api-reference/questionnaire/export-a-questionnaire", "metadata": { "title": "Export a security questionnaire | Comp AI API", "sidebarTitle": "Export a security questionnaire", "description": "Export a saved security questionnaire response package as PDF, CSV, or XLSX for customer and vendor security reviews.", "og:title": "Export a security questionnaire | Comp AI API", "og:description": "Export a saved security questionnaire response package as PDF, CSV, or XLSX for customer and vendor security reviews." } }, "x-speakeasy-mcp": { "name": "export-by-id" } } }, "/v1/questionnaire/upload-and-parse": { "post": { "operationId": "QuestionnaireController_uploadAndParse_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadAndParseDto" } } } }, "responses": { "200": { "description": "Upload file and trigger async parsing. Returns runId for realtime tracking.", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string" }, "publicAccessToken": { "type": "string" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Start questionnaire parsing", "tags": [ "Questionnaire" ], "description": "Upload a questionnaire payload and start asynchronous parsing, returning a run ID for real-time progress tracking.", "x-mint": { "href": "/api-reference/questionnaire/upload-and-parse-a-questionnaire-file", "metadata": { "title": "Start questionnaire parsing | Comp AI API", "sidebarTitle": "Start questionnaire parsing", "description": "Upload a questionnaire payload and start asynchronous parsing, returning a run ID for real-time progress tracking.", "og:title": "Start questionnaire parsing | Comp AI API", "og:description": "Upload a questionnaire payload and start asynchronous parsing, returning a run ID for real-time progress tracking." } }, "x-speakeasy-mcp": { "name": "upload-and-parse" } } }, "/v1/questionnaire/upload-and-parse/upload": { "post": { "operationId": "QuestionnaireController_uploadAndParseUpload_v1", "parameters": [], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "Questionnaire file (PDF, image, XLSX, CSV, TXT)" }, "organizationId": { "type": "string", "description": "Organization ID" }, "source": { "type": "string", "enum": [ "internal", "external" ], "default": "internal", "description": "Source of the upload" } }, "required": [ "file", "organizationId" ] } } } }, "responses": { "200": { "description": "Upload file, parse questions (no answers), save to DB, return questionnaireId", "content": { "application/json": { "schema": { "type": "object", "properties": { "questionnaireId": { "type": "string" }, "totalQuestions": { "type": "number" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Upload and parse questionnaire file", "tags": [ "Questionnaire" ], "description": "Upload a security questionnaire file, extract questions, save the parsed questionnaire, and return its identifier and question count.", "x-mint": { "href": "/api-reference/questionnaire/upload-a-questionnaire-file-and-parse-its-questions", "metadata": { "title": "Upload and parse questionnaire file | Comp AI API", "sidebarTitle": "Upload and parse questionnaire file", "description": "Upload a security questionnaire file, extract questions, save the parsed questionnaire, and return its identifier and question count.", "og:title": "Upload and parse questionnaire file | Comp AI API", "og:description": "Upload a security questionnaire file, extract questions, save the parsed questionnaire, and return its identifier and question count." } }, "x-speakeasy-mcp": { "name": "upload-and-parse-upload" } } }, "/v1/questionnaire/parse/upload": { "post": { "operationId": "QuestionnaireController_parseQuestionnaireUpload_v1", "parameters": [], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "Questionnaire file (PDF, image, XLSX, CSV, TXT)" }, "organizationId": { "type": "string", "description": "Organization to use for generating answers" }, "format": { "type": "string", "enum": [ "pdf", "csv", "xlsx" ], "default": "xlsx", "description": "Output format (defaults to XLSX)" }, "source": { "type": "string", "enum": [ "internal", "external" ], "default": "internal", "description": "Indicates if the request originated from our UI (internal) or trust portal (external)." } }, "required": [ "file", "organizationId" ] } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Auto-answer uploaded questionnaire", "tags": [ "Questionnaire" ], "description": "Upload a questionnaire file and generate answer exports from approved organization evidence in PDF, CSV, or XLSX format.", "x-mint": { "href": "/api-reference/questionnaire/upload-a-questionnaire-file-and-auto-answer-with-export", "metadata": { "title": "Auto-answer uploaded questionnaire | Comp AI API", "sidebarTitle": "Auto-answer uploaded questionnaire", "description": "Upload a questionnaire file and generate answer exports from approved organization evidence in PDF, CSV, or XLSX format.", "og:title": "Auto-answer uploaded questionnaire | Comp AI API", "og:description": "Upload a questionnaire file and generate answer exports from approved organization evidence in PDF, CSV, or XLSX format." } }, "x-speakeasy-mcp": { "name": "parse-questionnaire-upload" } } }, "/v1/questionnaire/answers/export": { "post": { "operationId": "QuestionnaireController_autoAnswerAndExport_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportQuestionnaireDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Export generated questionnaire answers", "tags": [ "Questionnaire" ], "description": "Generate and export questionnaire answers from a submitted payload using approved organization evidence.", "x-mint": { "href": "/api-reference/questionnaire/export-questionnaire-answers", "metadata": { "title": "Export generated questionnaire answers | Comp AI API", "sidebarTitle": "Export generated questionnaire answers", "description": "Generate and export questionnaire answers from a submitted payload using approved organization evidence.", "og:title": "Export generated questionnaire answers | Comp AI API", "og:description": "Generate and export questionnaire answers from a submitted payload using approved organization evidence." } }, "x-speakeasy-mcp": { "name": "auto-answer-and-export" } } }, "/v1/questionnaire/answers/export/upload": { "post": { "operationId": "QuestionnaireController_autoAnswerAndExportUpload_v1", "parameters": [], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "Questionnaire file (PDF, image, XLSX, CSV, TXT)" }, "organizationId": { "type": "string", "description": "Organization to use for answer generation" }, "format": { "type": "string", "enum": [ "pdf", "csv", "xlsx" ], "default": "xlsx", "description": "Output format (defaults to XLSX)" } }, "required": [ "file", "organizationId" ] } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload and export generated answers", "tags": [ "Questionnaire" ], "description": "Upload a questionnaire file and return generated answer exports in PDF, CSV, or XLSX format.", "x-mint": { "href": "/api-reference/questionnaire/upload-a-questionnaire-file-and-export-auto-generated-answers", "metadata": { "title": "Upload and export generated answers | Comp AI API", "sidebarTitle": "Upload and export generated answers", "description": "Upload a questionnaire file and return generated answer exports in PDF, CSV, or XLSX format.", "og:title": "Upload and export generated answers | Comp AI API", "og:description": "Upload a questionnaire file and return generated answer exports in PDF, CSV, or XLSX format." } }, "x-speakeasy-mcp": { "name": "auto-answer-and-export-upload" } } }, "/v1/questionnaire/auto-answer": { "post": { "operationId": "QuestionnaireController_autoAnswer_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AutoAnswerDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Stream generated questionnaire answers", "tags": [ "Questionnaire" ], "description": "Stream generated questionnaire answers over server-sent events so clients can show progress while answers are produced.", "x-mint": { "href": "/api-reference/questionnaire/auto-answer-a-questionnaire", "metadata": { "title": "Stream generated questionnaire answers | Comp AI API", "sidebarTitle": "Stream generated questionnaire answers", "description": "Stream generated questionnaire answers over server-sent events so clients can show progress while answers are produced.", "og:title": "Stream generated questionnaire answers | Comp AI API", "og:description": "Stream generated questionnaire answers over server-sent events so clients can show progress while answers are produced." } }, "x-speakeasy-mcp": { "name": "auto-answer" } } }, "/v1/knowledge-base/documents": { "get": { "operationId": "KnowledgeBaseController_listDocuments_v1", "parameters": [], "responses": { "200": { "description": "List of knowledge base documents" } }, "security": [ { "apikey": [] } ], "summary": "List knowledge base documents", "tags": [ "Knowledge Base" ], "description": "List uploaded knowledge base documents that Comp AI can use as approved source material for answers, policies, and reviews.", "x-mint": { "metadata": { "title": "List knowledge base documents | Comp AI API", "sidebarTitle": "List knowledge base documents", "description": "List uploaded knowledge base documents that Comp AI can use as approved source material for answers, policies, and reviews.", "og:title": "List knowledge base documents | Comp AI API", "og:description": "List uploaded knowledge base documents that Comp AI can use as approved source material for answers, policies, and reviews." } }, "x-speakeasy-mcp": { "name": "list-documents" } } }, "/v1/knowledge-base/manual-answers": { "get": { "operationId": "KnowledgeBaseController_listManualAnswers_v1", "parameters": [], "responses": { "200": { "description": "List of manual answers" } }, "security": [ { "apikey": [] } ], "summary": "List all manual answers for an organization", "tags": [ "Knowledge Base" ], "description": "List all manual answers for an organization in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "List all manual answers for an organization | Comp AI API", "sidebarTitle": "List all manual answers for an organization", "description": "List all manual answers for an organization in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power.", "og:title": "List all manual answers for an organization | Comp AI API", "og:description": "List all manual answers for an organization in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power." } }, "x-speakeasy-mcp": { "name": "list-manual-answers" } }, "post": { "operationId": "KnowledgeBaseController_saveManualAnswer_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveManualAnswerDto" } } } }, "responses": { "200": { "description": "Manual answer saved" } }, "security": [ { "apikey": [] } ], "summary": "Save reusable manual answer", "tags": [ "Knowledge Base" ], "description": "Save or update a reusable manual answer for security questionnaires that need approved, consistent response language.", "x-mint": { "metadata": { "title": "Save reusable manual answer | Comp AI API", "sidebarTitle": "Save reusable manual answer", "description": "Save or update a reusable manual answer for security questionnaires that need approved, consistent response language.", "og:title": "Save reusable manual answer | Comp AI API", "og:description": "Save or update a reusable manual answer for security questionnaires that need approved, consistent response language." } }, "x-speakeasy-mcp": { "name": "save-manual-answer" } } }, "/v1/knowledge-base/documents/upload": { "post": { "operationId": "KnowledgeBaseController_uploadDocument_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadDocumentDto" } } } }, "responses": { "200": { "description": "Document uploaded successfully" } }, "security": [ { "apikey": [] } ], "summary": "Upload knowledge base document", "tags": [ "Knowledge Base" ], "description": "Upload supporting documentation so Comp AI can process approved source material for questionnaire answers and policy workflows.", "x-mint": { "metadata": { "title": "Upload knowledge base document | Comp AI API", "sidebarTitle": "Upload knowledge base document", "description": "Upload supporting documentation so Comp AI can process approved source material for questionnaire answers and policy workflows.", "og:title": "Upload knowledge base document | Comp AI API", "og:description": "Upload supporting documentation so Comp AI can process approved source material for questionnaire answers and policy workflows." } }, "x-speakeasy-mcp": { "name": "upload-document" } } }, "/v1/knowledge-base/documents/{documentId}/download": { "post": { "operationId": "KnowledgeBaseController_getDownloadUrl_v1", "parameters": [ { "name": "documentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Signed download URL generated" } }, "security": [ { "apikey": [] } ], "summary": "Get a signed download URL for a document", "tags": [ "Knowledge Base" ], "description": "Get a signed download URL for a document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "Get a signed download URL for a document | Comp AI API", "sidebarTitle": "Get a signed download URL for a document", "description": "Get a signed download URL for a document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power.", "og:title": "Get a signed download URL for a document | Comp AI API", "og:description": "Get a signed download URL for a document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power." } }, "x-speakeasy-mcp": { "name": "get-download-url" } } }, "/v1/knowledge-base/documents/{documentId}/view": { "post": { "operationId": "KnowledgeBaseController_getViewUrl_v1", "parameters": [ { "name": "documentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Signed view URL generated" } }, "security": [ { "apikey": [] } ], "summary": "Get a signed view URL for a document", "tags": [ "Knowledge Base" ], "description": "Get a signed view URL for a document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "Get a signed view URL for a document | Comp AI API", "sidebarTitle": "Get a signed view URL for a document", "description": "Get a signed view URL for a document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power.", "og:title": "Get a signed view URL for a document | Comp AI API", "og:description": "Get a signed view URL for a document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power." } }, "x-speakeasy-mcp": { "name": "get-view-url" } } }, "/v1/knowledge-base/documents/{documentId}/delete": { "post": { "operationId": "KnowledgeBaseController_deleteDocument_v1", "parameters": [ { "name": "documentId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Document deleted successfully" } }, "security": [ { "apikey": [] } ], "summary": "Delete a knowledge base document", "tags": [ "Knowledge Base" ], "description": "Delete a knowledge base document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "Delete a knowledge base document | Comp AI API", "sidebarTitle": "Delete a knowledge base document", "description": "Delete a knowledge base document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power.", "og:title": "Delete a knowledge base document | Comp AI API", "og:description": "Delete a knowledge base document in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power." } }, "x-speakeasy-mcp": { "name": "delete-document" } } }, "/v1/knowledge-base/documents/process": { "post": { "operationId": "KnowledgeBaseController_processDocuments_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProcessDocumentsDto" } } } }, "responses": { "200": { "description": "Document processing triggered" } }, "security": [ { "apikey": [] } ], "summary": "Process knowledge base documents", "tags": [ "Knowledge Base" ], "description": "Start document processing so uploaded knowledge base files become searchable source material for AI-assisted compliance workflows.", "x-mint": { "metadata": { "title": "Process knowledge base documents | Comp AI API", "sidebarTitle": "Process knowledge base documents", "description": "Start document processing so uploaded knowledge base files become searchable source material for AI-assisted compliance workflows.", "og:title": "Process knowledge base documents | Comp AI API", "og:description": "Start document processing so uploaded knowledge base files become searchable source material for AI-assisted compliance workflows." } }, "x-speakeasy-mcp": { "name": "process-documents" } } }, "/v1/knowledge-base/runs/{runId}/token": { "post": { "operationId": "KnowledgeBaseController_createRunToken_v1", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Public access token created" } }, "security": [ { "apikey": [] } ], "summary": "Create a public access token for a run", "tags": [ "Knowledge Base" ], "description": "Create a public access token for a run in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "Create a public access token for a run | Comp AI API", "sidebarTitle": "Create a public access token for a run", "description": "Create a public access token for a run in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power.", "og:title": "Create a public access token for a run | Comp AI API", "og:description": "Create a public access token for a run in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power." } }, "x-speakeasy-mcp": { "name": "create-run-token" } } }, "/v1/knowledge-base/manual-answers/{manualAnswerId}/delete": { "post": { "operationId": "KnowledgeBaseController_deleteManualAnswer_v1", "parameters": [ { "name": "manualAnswerId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteManualAnswerDto" } } } }, "responses": { "200": { "description": "Manual answer deleted" } }, "security": [ { "apikey": [] } ], "summary": "Delete a manual answer", "tags": [ "Knowledge Base" ], "description": "Delete a manual answer in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "Delete a manual answer | Comp AI API", "sidebarTitle": "Delete a manual answer", "description": "Delete a manual answer in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI.", "og:title": "Delete a manual answer | Comp AI API", "og:description": "Delete a manual answer in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI." } }, "x-speakeasy-mcp": { "name": "delete-manual-answer" } } }, "/v1/knowledge-base/manual-answers/delete-all": { "post": { "operationId": "KnowledgeBaseController_deleteAllManualAnswers_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteAllManualAnswersDto" } } } }, "responses": { "200": { "description": "All manual answers deleted" } }, "security": [ { "apikey": [] } ], "summary": "Delete all manual answers for an organization", "tags": [ "Knowledge Base" ], "description": "Delete all manual answers for an organization in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows.", "x-mint": { "metadata": { "title": "Delete all manual answers for an organization | Comp AI API", "sidebarTitle": "Delete all manual answers for an organization", "description": "Delete all manual answers for an organization in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power.", "og:title": "Delete all manual answers for an organization | Comp AI API", "og:description": "Delete all manual answers for an organization in Comp AI. Upload source documents, process them for retrieval, and manage reusable manual answers that power." } }, "x-speakeasy-mcp": { "name": "delete-all-manual-answers" } } }, "/v1/soa/save-answer": { "post": { "operationId": "SOAController_saveAnswer_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveSOAAnswerDto" } } } }, "responses": { "200": { "description": "Answer saved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Save a SOA answer", "tags": [ "SOA" ], "description": "Save a SOA answer in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Save a SOA answer | Comp AI API", "sidebarTitle": "Save a SOA answer", "description": "Save a SOA answer in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "og:title": "Save a SOA answer | Comp AI API", "og:description": "Save a SOA answer in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents." } }, "x-speakeasy-mcp": { "name": "soa-save-answer" } } }, "/v1/soa/auto-fill": { "post": { "description": "Auto-fill a Statement of Applicability draft using organization context and framework mappings for ISO 27001 review.", "operationId": "SOAController_autoFill_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AutoFillSOADto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Auto-fill ISO 27001 SOA", "tags": [ "SOA" ], "x-mint": { "metadata": { "title": "Auto-fill ISO 27001 SOA | Comp AI API", "sidebarTitle": "Auto-fill ISO 27001 SOA", "description": "Auto-fill a Statement of Applicability draft using organization context and framework mappings for ISO 27001 review.", "og:title": "Auto-fill ISO 27001 SOA | Comp AI API", "og:description": "Auto-fill a Statement of Applicability draft using organization context and framework mappings for ISO 27001 review." } }, "x-speakeasy-mcp": { "name": "auto-fill" } } }, "/v1/soa/create-document": { "post": { "operationId": "SOAController_createDocument_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSOADocumentDto" } } } }, "responses": { "200": { "description": "Document created successfully" } }, "security": [ { "apikey": [] } ], "summary": "Create a new SOA document", "tags": [ "SOA" ], "description": "Create a new SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Create a new SOA document | Comp AI API", "sidebarTitle": "Create a new SOA document", "description": "Create a new SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "og:title": "Create a new SOA document | Comp AI API", "og:description": "Create a new SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents." } }, "x-speakeasy-mcp": { "name": "create-document" } } }, "/v1/soa/ensure-setup": { "post": { "operationId": "SOAController_ensureSetup_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnsureSOASetupDto" } } } }, "responses": { "200": { "description": "Setup ensured" } }, "security": [ { "apikey": [] } ], "summary": "Ensure SOA configuration and document exist", "tags": [ "SOA" ], "description": "Ensure SOA configuration and document exist in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Ensure SOA configuration and document exist | Comp AI API", "sidebarTitle": "Ensure SOA configuration and document exist", "description": "Ensure SOA configuration and document exist in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "og:title": "Ensure SOA configuration and document exist | Comp AI API", "og:description": "Ensure SOA configuration and document exist in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents." } }, "x-speakeasy-mcp": { "name": "ensure-setup" } } }, "/v1/soa/get-setup": { "post": { "operationId": "SOAController_getSetup_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnsureSOASetupDto" } } } }, "responses": { "200": { "description": "Setup returned (configuration/document may be null)" } }, "security": [ { "apikey": [] } ], "summary": "Read SOA configuration and document without creating either", "tags": [ "SOA" ], "description": "Read SOA configuration and document without creating either in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Read SOA configuration and document without | Comp AI API", "sidebarTitle": "Read SOA configuration and document without creating either", "description": "Read SOA configuration and document without creating either in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability.", "og:title": "Read SOA configuration and document without | Comp AI API", "og:description": "Read SOA configuration and document without creating either in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability." } }, "x-speakeasy-mcp": { "name": "get-setup" } } }, "/v1/soa/approve": { "post": { "operationId": "SOAController_approveDocument_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApproveSOADocumentDto" } } } }, "responses": { "200": { "description": "Document approved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Approve a SOA document", "tags": [ "SOA" ], "description": "Approve a SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Approve a SOA document | Comp AI API", "sidebarTitle": "Approve a SOA document", "description": "Approve a SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "og:title": "Approve a SOA document | Comp AI API", "og:description": "Approve a SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents." } }, "x-speakeasy-mcp": { "name": "approve-document" } } }, "/v1/soa/decline": { "post": { "operationId": "SOAController_declineDocument_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeclineSOADocumentDto" } } } }, "responses": { "200": { "description": "Document declined successfully" } }, "security": [ { "apikey": [] } ], "summary": "Decline a SOA document", "tags": [ "SOA" ], "description": "Decline a SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Decline a SOA document | Comp AI API", "sidebarTitle": "Decline a SOA document", "description": "Decline a SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "og:title": "Decline a SOA document | Comp AI API", "og:description": "Decline a SOA document in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents." } }, "x-speakeasy-mcp": { "name": "decline-document" } } }, "/v1/soa/submit-for-approval": { "post": { "operationId": "SOAController_submitForApproval_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubmitSOAForApprovalDto" } } } }, "responses": { "200": { "description": "Document submitted for approval successfully" } }, "security": [ { "apikey": [] } ], "summary": "Submit SOA document for approval", "tags": [ "SOA" ], "description": "Submit SOA document for approval in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-mint": { "metadata": { "title": "Submit SOA document for approval | Comp AI API", "sidebarTitle": "Submit SOA document for approval", "description": "Submit SOA document for approval in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "og:title": "Submit SOA document for approval | Comp AI API", "og:description": "Submit SOA document for approval in Comp AI. Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents." } }, "x-speakeasy-mcp": { "name": "submit-for-approval" } } }, "/v1/soa/export": { "post": { "operationId": "SOAController_exportDocument_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportSOADocumentDto" } } } }, "responses": { "200": { "description": "Export SOA document to PDF" } }, "security": [ { "apikey": [] } ], "summary": "Export ISO 27001 SOA", "tags": [ "SOA" ], "description": "Export the approved Statement of Applicability document for ISO 27001 auditors, customer reviews, and internal records.", "x-mint": { "metadata": { "title": "Export ISO 27001 SOA | Comp AI API", "sidebarTitle": "Export ISO 27001 SOA", "description": "Export the approved Statement of Applicability document for ISO 27001 auditors, customer reviews, and internal records.", "og:title": "Export ISO 27001 SOA | Comp AI API", "og:description": "Export the approved Statement of Applicability document for ISO 27001 auditors, customer reviews, and internal records." } }, "x-speakeasy-mcp": { "name": "export-document" } } }, "/v1/isms/ensure-setup": { "post": { "operationId": "IsmsController_ensureSetup_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnsureIsmsSetupDto" } } } }, "responses": { "200": { "description": "Setup ensured" } }, "security": [ { "apikey": [] } ], "summary": "Ensure ISMS foundational documents exist", "tags": [ "ISMS" ], "description": "Ensure ISMS foundational documents exist in Comp AI.", "x-mint": { "metadata": { "title": "Ensure ISMS foundational documents exist | Comp AI API", "sidebarTitle": "Ensure ISMS foundational documents exist", "description": "Ensure ISMS foundational documents exist in Comp AI.", "og:title": "Ensure ISMS foundational documents exist | Comp AI API", "og:description": "Ensure ISMS foundational documents exist in Comp AI." } }, "x-speakeasy-mcp": { "name": "isms-ensure-setup" } } }, "/v1/isms/documents/{id}": { "get": { "operationId": "IsmsController_getDocument_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "ISMS document" } }, "security": [ { "apikey": [] } ], "summary": "Get an ISMS document with its latest version", "tags": [ "ISMS" ], "description": "Get an ISMS document with its latest version in Comp AI.", "x-mint": { "metadata": { "title": "Get an ISMS document with its latest version | Comp AI API", "sidebarTitle": "Get an ISMS document with its latest version", "description": "Get an ISMS document with its latest version in Comp AI.", "og:title": "Get an ISMS document with its latest version | Comp AI API", "og:description": "Get an ISMS document with its latest version in Comp AI." } }, "x-speakeasy-mcp": { "name": "get-document" } } }, "/v1/isms/documents/{id}/controls": { "post": { "operationId": "IsmsController_addControls_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkIsmsControlsDto" } } } }, "responses": { "200": { "description": "Controls linked" } }, "security": [ { "apikey": [] } ], "summary": "Map organization controls to an ISMS document", "tags": [ "ISMS" ], "description": "Map organization controls to an ISMS document in Comp AI.", "x-mint": { "metadata": { "title": "Map organization controls to an ISMS document | Comp AI API", "sidebarTitle": "Map organization controls to an ISMS document", "description": "Map organization controls to an ISMS document in Comp AI.", "og:title": "Map organization controls to an ISMS document | Comp AI API", "og:description": "Map organization controls to an ISMS document in Comp AI." } }, "x-speakeasy-mcp": { "name": "add-controls" } } }, "/v1/isms/documents/{id}/controls/{controlId}": { "delete": { "operationId": "IsmsController_removeControl_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "controlId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Control unlinked" } }, "security": [ { "apikey": [] } ], "summary": "Remove a control mapping from an ISMS document", "tags": [ "ISMS" ], "description": "Remove a control mapping from an ISMS document in Comp AI.", "x-mint": { "metadata": { "title": "Remove a control mapping from an ISMS document | Comp AI API", "sidebarTitle": "Remove a control mapping from an ISMS document", "description": "Remove a control mapping from an ISMS document in Comp AI.", "og:title": "Remove a control mapping from an ISMS document | Comp AI API", "og:description": "Remove a control mapping from an ISMS document in Comp AI." } }, "x-speakeasy-mcp": { "name": "remove-control" } } }, "/v1/isms/documents/{id}/generate": { "post": { "operationId": "IsmsController_generate_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Document with derived issues" } }, "security": [ { "apikey": [] } ], "summary": "Derive Context-of-the-Organization issues", "tags": [ "ISMS" ], "description": "Derive Context-of-the-Organization issues in Comp AI.", "x-mint": { "metadata": { "title": "Derive Context-of-the-Organization issues | Comp AI API", "sidebarTitle": "Derive Context-of-the-Organization issues", "description": "Derive Context-of-the-Organization issues in Comp AI.", "og:title": "Derive Context-of-the-Organization issues | Comp AI API", "og:description": "Derive Context-of-the-Organization issues in Comp AI." } }, "x-speakeasy-mcp": { "name": "generate" } } }, "/v1/isms/documents/{id}/submit-for-approval": { "post": { "operationId": "IsmsController_submitForApproval_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubmitIsmsForApprovalDto" } } } }, "responses": { "200": { "description": "Document submitted for approval" } }, "security": [ { "apikey": [] } ], "summary": "Submit an ISMS document for approval", "tags": [ "ISMS" ], "description": "Submit an ISMS document for approval in Comp AI.", "x-mint": { "metadata": { "title": "Submit an ISMS document for approval | Comp AI API", "sidebarTitle": "Submit an ISMS document for approval", "description": "Submit an ISMS document for approval in Comp AI.", "og:title": "Submit an ISMS document for approval | Comp AI API", "og:description": "Submit an ISMS document for approval in Comp AI." } }, "x-speakeasy-mcp": { "name": "isms-submit-for-approval" } } }, "/v1/isms/documents/{id}/approve": { "post": { "operationId": "IsmsController_approve_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Document approved" } }, "security": [ { "apikey": [] } ], "summary": "Approve an ISMS document", "tags": [ "ISMS" ], "description": "Approve an ISMS document in Comp AI.", "x-mint": { "metadata": { "title": "Approve an ISMS document | Comp AI API", "sidebarTitle": "Approve an ISMS document", "description": "Approve an ISMS document in Comp AI.", "og:title": "Approve an ISMS document | Comp AI API", "og:description": "Approve an ISMS document in Comp AI." } }, "x-speakeasy-mcp": { "name": "approve" } } }, "/v1/isms/documents/{id}/decline": { "post": { "operationId": "IsmsController_decline_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Document declined" } }, "security": [ { "apikey": [] } ], "summary": "Decline an ISMS document", "tags": [ "ISMS" ], "description": "Decline an ISMS document in Comp AI.", "x-mint": { "metadata": { "title": "Decline an ISMS document | Comp AI API", "sidebarTitle": "Decline an ISMS document", "description": "Decline an ISMS document in Comp AI.", "og:title": "Decline an ISMS document | Comp AI API", "og:description": "Decline an ISMS document in Comp AI." } }, "x-speakeasy-mcp": { "name": "decline" } } }, "/v1/isms/documents/{id}/drift": { "get": { "operationId": "IsmsController_drift_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Drift status" } }, "security": [ { "apikey": [] } ], "summary": "Detect drift against the approved snapshot", "tags": [ "ISMS" ], "description": "Detect drift against the approved snapshot in Comp AI.", "x-mint": { "metadata": { "title": "Detect drift against the approved snapshot | Comp AI API", "sidebarTitle": "Detect drift against the approved snapshot", "description": "Detect drift against the approved snapshot in Comp AI.", "og:title": "Detect drift against the approved snapshot | Comp AI API", "og:description": "Detect drift against the approved snapshot in Comp AI." } }, "x-speakeasy-mcp": { "name": "drift" } } }, "/v1/isms/documents/{id}/versions": { "get": { "operationId": "IsmsController_getVersions_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Published versions, newest first" } }, "security": [ { "apikey": [] } ], "summary": "List an ISMS document's published version history", "tags": [ "ISMS" ], "description": "List an ISMS document's published version history in Comp AI.", "x-mint": { "metadata": { "title": "List an ISMS document's published version | Comp AI API", "sidebarTitle": "List an ISMS document's published version history", "description": "List an ISMS document's published version history in Comp AI.", "og:title": "List an ISMS document's published version | Comp AI API", "og:description": "List an ISMS document's published version history in Comp AI." } }, "x-speakeasy-mcp": { "name": "get-versions" } } }, "/v1/isms/documents/{id}/export": { "post": { "operationId": "IsmsController_exportDocument_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportIsmsDocumentDto" } } } }, "responses": { "200": { "description": "Rendered document" } }, "security": [ { "apikey": [] } ], "summary": "Export an ISMS document as PDF or DOCX", "tags": [ "ISMS" ], "description": "Export an ISMS document as PDF or DOCX in Comp AI.", "x-mint": { "metadata": { "title": "Export an ISMS document as PDF or DOCX | Comp AI API", "sidebarTitle": "Export an ISMS document as PDF or DOCX", "description": "Export an ISMS document as PDF or DOCX in Comp AI.", "og:title": "Export an ISMS document as PDF or DOCX | Comp AI API", "og:description": "Export an ISMS document as PDF or DOCX in Comp AI." } }, "x-speakeasy-mcp": { "name": "isms-export-document" } } }, "/v1/isms/documents/{id}/registers/{register}": { "post": { "operationId": "IsmsRegistersController_createRow_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "register", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "description": "Register row fields (per-register; validated at runtime by zod)", "content": { "application/json": { "schema": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "internal", "external" ] }, "category": { "type": "string" }, "description": { "type": "string" }, "effect": { "type": "string" }, "name": { "type": "string" }, "needsExpectations": { "type": "string" }, "interestedPartyId": { "type": "string" }, "partyName": { "type": "string" }, "requirement": { "type": "string" }, "treatment": { "type": "string" }, "objective": { "type": "string" }, "target": { "type": "string" }, "ownerMemberId": { "type": "string" }, "cadence": { "type": "string" }, "plan": { "type": "string" }, "measurementMethod": { "type": "string" }, "status": { "type": "string", "enum": [ "not_started", "on_track", "at_risk", "met", "planned", "in_progress", "complete", "open", "closed" ] }, "responsibilities": { "type": "string" }, "authorities": { "type": "string" }, "authorityGrantedBy": { "type": "string" }, "requiredCompetence": { "type": "string" }, "auditRoute": { "type": "string", "enum": [ "in_house", "external", "training_planned" ], "nullable": true }, "auditRouteMemberId": { "type": "string", "nullable": true }, "auditFirmName": { "type": "string", "nullable": true }, "auditEvidenceRef": { "type": "string", "nullable": true }, "auditCourse": { "type": "string", "nullable": true }, "auditDueDate": { "type": "string", "nullable": true }, "roleId": { "type": "string" }, "memberId": { "type": "string" }, "basisOfCompetence": { "type": "string", "enum": [ "education", "training", "experience", "combination" ], "nullable": true }, "evidenceRetained": { "type": "string", "nullable": true }, "gap": { "type": "string", "nullable": true }, "remediationAction": { "type": "string", "nullable": true }, "remediationDueDate": { "type": "string", "nullable": true }, "whatIsMeasured": { "type": "string" }, "method": { "type": "string" }, "monitorMemberId": { "type": "string", "nullable": true }, "analyzeMemberId": { "type": "string", "nullable": true }, "objectiveId": { "type": "string", "nullable": true }, "isActive": { "type": "boolean" }, "metricId": { "type": "string" }, "periodStart": { "type": "string", "description": "First day of the covered period (YYYY-MM-DD), aligned to the metric cadence" }, "value": { "type": "string" }, "note": { "type": "string", "nullable": true }, "scope": { "type": "string" }, "criteria": { "type": "string" }, "auditorName": { "type": "string", "nullable": true }, "plannedStartDate": { "type": "string", "nullable": true }, "plannedEndDate": { "type": "string", "nullable": true }, "conclusionVerdict": { "type": "string", "enum": [ "conform", "substantially_conform", "not_yet_conform" ], "nullable": true }, "conclusionNotes": { "type": "string", "nullable": true }, "signoffAuditorName": { "type": "string", "nullable": true }, "signoffAuditorDate": { "type": "string", "nullable": true }, "signoffSpoName": { "type": "string", "nullable": true }, "signoffSpoDate": { "type": "string", "nullable": true }, "signoffTopMgmtName": { "type": "string", "nullable": true }, "signoffTopMgmtDate": { "type": "string", "nullable": true }, "auditId": { "type": "string" }, "controlRef": { "type": "string" }, "whatWasTested": { "type": "string" }, "whereToFind": { "type": "string" }, "result": { "type": "string", "enum": [ "conformity_confirmed", "nonconformity_raised", "observation_raised", "not_sampled" ], "nullable": true }, "notes": { "type": "string", "nullable": true }, "type": { "type": "string", "enum": [ "nc_major", "nc_minor", "ofi", "observation" ] }, "controlId": { "type": "string", "nullable": true }, "clauseOrControl": { "type": "string", "nullable": true }, "dueDate": { "type": "string", "nullable": true }, "closureEvidence": { "type": "string", "nullable": true }, "position": { "type": "integer", "minimum": 0 } } } } } }, "responses": { "200": { "description": "Register row created" } }, "security": [ { "apikey": [] } ], "summary": "Create a row in an ISMS register", "tags": [ "ISMS" ], "description": "Create a row in an ISMS register in Comp AI.", "x-mint": { "metadata": { "title": "Create a row in an ISMS register | Comp AI API", "sidebarTitle": "Create a row in an ISMS register", "description": "Create a row in an ISMS register in Comp AI.", "og:title": "Create a row in an ISMS register | Comp AI API", "og:description": "Create a row in an ISMS register in Comp AI." } }, "x-speakeasy-mcp": { "name": "create-row" } } }, "/v1/isms/registers/{register}/{rowId}": { "patch": { "operationId": "IsmsRegistersController_updateRow_v1", "parameters": [ { "name": "register", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "rowId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "description": "Register row fields (per-register; validated at runtime by zod)", "content": { "application/json": { "schema": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "internal", "external" ] }, "category": { "type": "string" }, "description": { "type": "string" }, "effect": { "type": "string" }, "name": { "type": "string" }, "needsExpectations": { "type": "string" }, "interestedPartyId": { "type": "string" }, "partyName": { "type": "string" }, "requirement": { "type": "string" }, "treatment": { "type": "string" }, "objective": { "type": "string" }, "target": { "type": "string" }, "ownerMemberId": { "type": "string" }, "cadence": { "type": "string" }, "plan": { "type": "string" }, "measurementMethod": { "type": "string" }, "status": { "type": "string", "enum": [ "not_started", "on_track", "at_risk", "met", "planned", "in_progress", "complete", "open", "closed" ] }, "responsibilities": { "type": "string" }, "authorities": { "type": "string" }, "authorityGrantedBy": { "type": "string" }, "requiredCompetence": { "type": "string" }, "auditRoute": { "type": "string", "enum": [ "in_house", "external", "training_planned" ], "nullable": true }, "auditRouteMemberId": { "type": "string", "nullable": true }, "auditFirmName": { "type": "string", "nullable": true }, "auditEvidenceRef": { "type": "string", "nullable": true }, "auditCourse": { "type": "string", "nullable": true }, "auditDueDate": { "type": "string", "nullable": true }, "roleId": { "type": "string" }, "memberId": { "type": "string" }, "basisOfCompetence": { "type": "string", "enum": [ "education", "training", "experience", "combination" ], "nullable": true }, "evidenceRetained": { "type": "string", "nullable": true }, "gap": { "type": "string", "nullable": true }, "remediationAction": { "type": "string", "nullable": true }, "remediationDueDate": { "type": "string", "nullable": true }, "whatIsMeasured": { "type": "string" }, "method": { "type": "string" }, "monitorMemberId": { "type": "string", "nullable": true }, "analyzeMemberId": { "type": "string", "nullable": true }, "objectiveId": { "type": "string", "nullable": true }, "isActive": { "type": "boolean" }, "metricId": { "type": "string" }, "periodStart": { "type": "string", "description": "First day of the covered period (YYYY-MM-DD), aligned to the metric cadence" }, "value": { "type": "string" }, "note": { "type": "string", "nullable": true }, "scope": { "type": "string" }, "criteria": { "type": "string" }, "auditorName": { "type": "string", "nullable": true }, "plannedStartDate": { "type": "string", "nullable": true }, "plannedEndDate": { "type": "string", "nullable": true }, "conclusionVerdict": { "type": "string", "enum": [ "conform", "substantially_conform", "not_yet_conform" ], "nullable": true }, "conclusionNotes": { "type": "string", "nullable": true }, "signoffAuditorName": { "type": "string", "nullable": true }, "signoffAuditorDate": { "type": "string", "nullable": true }, "signoffSpoName": { "type": "string", "nullable": true }, "signoffSpoDate": { "type": "string", "nullable": true }, "signoffTopMgmtName": { "type": "string", "nullable": true }, "signoffTopMgmtDate": { "type": "string", "nullable": true }, "auditId": { "type": "string" }, "controlRef": { "type": "string" }, "whatWasTested": { "type": "string" }, "whereToFind": { "type": "string" }, "result": { "type": "string", "enum": [ "conformity_confirmed", "nonconformity_raised", "observation_raised", "not_sampled" ], "nullable": true }, "notes": { "type": "string", "nullable": true }, "type": { "type": "string", "enum": [ "nc_major", "nc_minor", "ofi", "observation" ] }, "controlId": { "type": "string", "nullable": true }, "clauseOrControl": { "type": "string", "nullable": true }, "dueDate": { "type": "string", "nullable": true }, "closureEvidence": { "type": "string", "nullable": true }, "position": { "type": "integer", "minimum": 0 } } } } } }, "responses": { "200": { "description": "Register row updated" } }, "security": [ { "apikey": [] } ], "summary": "Update a row in an ISMS register", "tags": [ "ISMS" ], "description": "Update a row in an ISMS register in Comp AI.", "x-mint": { "metadata": { "title": "Update a row in an ISMS register | Comp AI API", "sidebarTitle": "Update a row in an ISMS register", "description": "Update a row in an ISMS register in Comp AI.", "og:title": "Update a row in an ISMS register | Comp AI API", "og:description": "Update a row in an ISMS register in Comp AI." } }, "x-speakeasy-mcp": { "name": "update-row" } }, "delete": { "operationId": "IsmsRegistersController_deleteRow_v1", "parameters": [ { "name": "register", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "rowId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Register row deleted" } }, "security": [ { "apikey": [] } ], "summary": "Delete a row in an ISMS register", "tags": [ "ISMS" ], "description": "Delete a row in an ISMS register in Comp AI.", "x-mint": { "metadata": { "title": "Delete a row in an ISMS register | Comp AI API", "sidebarTitle": "Delete a row in an ISMS register", "description": "Delete a row in an ISMS register in Comp AI.", "og:title": "Delete a row in an ISMS register | Comp AI API", "og:description": "Delete a row in an ISMS register in Comp AI." } }, "x-speakeasy-mcp": { "name": "delete-row" } } }, "/v1/isms/documents/{id}/measurements/bulk": { "post": { "operationId": "IsmsRegistersController_bulkCreateMeasurements_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "description": "Measurements to record in one save (Metrics due / backfill views)", "content": { "application/json": { "schema": { "type": "object", "properties": { "measurements": { "type": "array", "minItems": 1, "maxItems": 200, "items": { "type": "object", "properties": { "metricId": { "type": "string" }, "periodStart": { "type": "string" }, "value": { "type": "string" }, "note": { "type": "string", "nullable": true } }, "required": [ "metricId", "periodStart", "value" ] } } }, "required": [ "measurements" ] } } } }, "responses": { "200": { "description": "Measurements recorded" } }, "security": [ { "apikey": [] } ], "summary": "Record measurements for several metrics/periods in one save (Metrics due / backfill)", "tags": [ "ISMS" ], "description": "Record measurements for several metrics/periods in one save (Metrics due / backfill) in Comp AI.", "x-mint": { "metadata": { "title": "Record measurements for several metrics/period | Comp AI API", "sidebarTitle": "Record measurements for several metrics/periods in one save (Metrics due / backfill)", "description": "Record measurements for several metrics/periods in one save (Metrics due / backfill) in Comp AI.", "og:title": "Record measurements for several metrics/period | Comp AI API", "og:description": "Record measurements for several metrics/periods in one save (Metrics due / backfill) in Comp AI." } }, "x-speakeasy-mcp": { "name": "bulk-create-measurements" } } }, "/v1/isms/documents/{id}/narrative": { "post": { "operationId": "IsmsRegistersController_saveNarrative_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "description": "Singleton document narrative payload", "content": { "application/json": { "schema": { "type": "object", "properties": { "narrative": { "type": "object", "description": "Per-type narrative object (e.g. ISMS scope or leadership commitment), validated at runtime by zod", "additionalProperties": true } }, "required": [ "narrative" ] } } } }, "responses": { "200": { "description": "Narrative saved" } }, "security": [ { "apikey": [] } ], "summary": "Save a singleton document narrative", "tags": [ "ISMS" ], "description": "Save a singleton document narrative in Comp AI.", "x-mint": { "metadata": { "title": "Save a singleton document narrative | Comp AI API", "sidebarTitle": "Save a singleton document narrative", "description": "Save a singleton document narrative in Comp AI.", "og:title": "Save a singleton document narrative | Comp AI API", "og:description": "Save a singleton document narrative in Comp AI." } }, "x-speakeasy-mcp": { "name": "save-narrative" } } }, "/v1/isms/profile": { "get": { "operationId": "IsmsProfileController_getProfile_v1", "parameters": [ { "name": "frameworkId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Wizard profile, defaults and member options" } }, "security": [ { "apikey": [] } ], "summary": "Get the ISMS wizard profile, defaults and members", "tags": [ "ISMS" ], "description": "Get the ISMS wizard profile, defaults and members in Comp AI.", "x-mint": { "metadata": { "title": "Get the ISMS wizard profile, defaults and | Comp AI API", "sidebarTitle": "Get the ISMS wizard profile, defaults and members", "description": "Get the ISMS wizard profile, defaults and members in Comp AI.", "og:title": "Get the ISMS wizard profile, defaults and | Comp AI API", "og:description": "Get the ISMS wizard profile, defaults and members in Comp AI." } }, "x-speakeasy-mcp": { "name": "get-profile" } }, "post": { "operationId": "IsmsProfileController_saveProfile_v1", "parameters": [], "requestBody": { "required": true, "description": "Partial ISMS wizard answers (validated at runtime by zod)", "content": { "application/json": { "schema": { "type": "object", "properties": { "frameworkId": { "type": "string" }, "answers": { "type": "object", "description": "Deeply-partial wizard answers (any subset of the wizard steps)", "additionalProperties": true }, "complete": { "type": "boolean", "description": "Whether the wizard is being finalized" } }, "required": [ "frameworkId", "answers" ] } } } }, "responses": { "200": { "description": "Saved profile" } }, "security": [ { "apikey": [] } ], "summary": "Save (partial) ISMS wizard answers", "tags": [ "ISMS" ], "description": "Save (partial) ISMS wizard answers in Comp AI.", "x-mint": { "metadata": { "title": "Save (partial) ISMS wizard answers | Comp AI API", "sidebarTitle": "Save (partial) ISMS wizard answers", "description": "Save (partial) ISMS wizard answers in Comp AI.", "og:title": "Save (partial) ISMS wizard answers | Comp AI API", "og:description": "Save (partial) ISMS wizard answers in Comp AI." } }, "x-speakeasy-mcp": { "name": "save-profile" } } }, "/v1/isms/generate-all": { "post": { "operationId": "IsmsProfileController_generateAll_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateAllDto" } } } }, "responses": { "200": { "description": "Regenerated ISMS documents" } }, "security": [ { "apikey": [] } ], "summary": "Ensure and regenerate all ISMS documents", "tags": [ "ISMS" ], "description": "Ensure and regenerate all ISMS documents in Comp AI.", "x-mint": { "metadata": { "title": "Ensure and regenerate all ISMS documents | Comp AI API", "sidebarTitle": "Ensure and regenerate all ISMS documents", "description": "Ensure and regenerate all ISMS documents in Comp AI.", "og:title": "Ensure and regenerate all ISMS documents | Comp AI API", "og:description": "Ensure and regenerate all ISMS documents in Comp AI." } }, "x-speakeasy-mcp": { "name": "generate-all" } } }, "/v1/task-management/stats": { "get": { "description": "Get task items statistics for an entity in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_getTaskItemsStats_v1", "parameters": [ { "name": "entityId", "required": true, "in": "query", "description": "ID of the entity to get task items stats for", "schema": { "example": "vnd_abc123def456", "type": "string" } }, { "name": "entityType", "required": true, "in": "query", "description": "Type of entity", "schema": { "enum": [ "vendor", "risk" ], "type": "string" } } ], "responses": { "200": { "description": "Task items statistics retrieved successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "total": { "type": "number" }, "byStatus": { "type": "object", "properties": { "todo": { "type": "number" }, "in_progress": { "type": "number" }, "in_review": { "type": "number" }, "done": { "type": "number" }, "canceled": { "type": "number" } } } } } } } } }, "security": [ { "apikey": [] } ], "summary": "Get task items statistics for an entity", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Get task items statistics for an entity | Comp AI API", "sidebarTitle": "Get task items statistics for an entity", "description": "Get task items statistics for an entity in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Get task items statistics for an entity | Comp AI API", "og:description": "Get task items statistics for an entity in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "get-task-items-stats" } } }, "/v1/task-management": { "get": { "description": "Get task items for an entity in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_getTaskItems_v1", "parameters": [ { "name": "entityId", "required": true, "in": "query", "description": "ID of the entity to get task items for", "schema": { "example": "vnd_abc123def456", "type": "string" } }, { "name": "entityType", "required": true, "in": "query", "description": "Type of entity", "schema": { "example": "vendor", "type": "string", "enum": [ "vendor", "risk" ] } }, { "name": "page", "required": false, "in": "query", "description": "Page number (1-indexed)", "schema": { "minimum": 1, "default": 1, "example": 1, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "Number of items per page", "schema": { "minimum": 1, "maximum": 100, "default": 5, "example": 5, "type": "number" } }, { "name": "status", "required": false, "in": "query", "description": "Filter by status", "schema": { "example": "todo", "type": "string", "enum": [ "todo", "in_progress", "in_review", "done", "canceled" ] } }, { "name": "priority", "required": false, "in": "query", "description": "Filter by priority", "schema": { "example": "high", "type": "string", "enum": [ "urgent", "high", "medium", "low" ] } }, { "name": "assigneeId", "required": false, "in": "query", "description": "Filter by assignee ID", "schema": { "example": "mbr_abc123def456", "type": "string" } }, { "name": "sortBy", "required": false, "in": "query", "description": "Sort by field", "schema": { "default": "createdAt", "example": "createdAt", "type": "string", "enum": [ "createdAt", "updatedAt", "title", "status", "priority" ] } }, { "name": "sortOrder", "required": false, "in": "query", "description": "Sort order", "schema": { "default": "desc", "example": "desc", "type": "string", "enum": [ "asc", "desc" ] } } ], "responses": { "200": { "description": "Task items retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedTaskItemResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Get task items for an entity", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Get task items for an entity | Comp AI API", "sidebarTitle": "Get task items for an entity", "description": "Get task items for an entity in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Get task items for an entity | Comp AI API", "og:description": "Get task items for an entity in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "get-task-items" } }, "post": { "description": "Create a new task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_createTaskItem_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTaskItemDto" } } } }, "responses": { "201": { "description": "Task item created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskItemResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Create a new task item", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Create a new task item | Comp AI API", "sidebarTitle": "Create a new task item", "description": "Create a new task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Create a new task item | Comp AI API", "og:description": "Create a new task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "create-task-item" } } }, "/v1/task-management/{id}": { "put": { "description": "Update a task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_updateTaskItem_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Task item ID", "schema": { "example": "tski_abc123def456", "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTaskItemDto" } } } }, "responses": { "200": { "description": "Task item updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskItemResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Update a task item", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Update a task item | Comp AI API", "sidebarTitle": "Update a task item", "description": "Update a task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Update a task item | Comp AI API", "og:description": "Update a task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "update-task-item" } }, "delete": { "description": "Delete a task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_deleteTaskItem_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Task item ID", "schema": { "example": "tski_abc123def456", "type": "string" } } ], "responses": { "204": { "description": "Task item deleted successfully" } }, "security": [ { "apikey": [] } ], "summary": "Delete a task item", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Delete a task item | Comp AI API", "sidebarTitle": "Delete a task item", "description": "Delete a task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Delete a task item | Comp AI API", "og:description": "Delete a task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "delete-task-item" } } }, "/v1/task-management/attachments": { "post": { "description": "Upload a file attachment for a task item with proper S3 path structure: org_{orgId}/attachments/task-item/{entityType}/{entityId}/files.", "operationId": "TaskManagementController_uploadTaskItemAttachment_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadTaskItemAttachmentDto" } } } }, "responses": { "201": { "description": "Attachment uploaded successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachmentResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Upload attachment to task item", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Upload attachment to task item | Comp AI API", "sidebarTitle": "Upload attachment to task item", "description": "Upload a file attachment for a task item with proper S3 path structure: org_{orgId}/attachments/task-item/{entityType}/{entityId}/files.", "og:title": "Upload attachment to task item | Comp AI API", "og:description": "Upload a file attachment for a task item with proper S3 path structure: org_{orgId}/attachments/task-item/{entityType}/{entityId}/files." } }, "x-speakeasy-mcp": { "name": "upload-task-item-attachment" } } }, "/v1/task-management/attachments/{attachmentId}": { "delete": { "description": "Delete attachment from task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_deleteTaskItemAttachment_v1", "parameters": [ { "name": "attachmentId", "required": true, "in": "path", "description": "Attachment ID", "schema": { "example": "att_abc123def456", "type": "string" } } ], "responses": { "204": { "description": "Attachment deleted successfully" } }, "security": [ { "apikey": [] } ], "summary": "Delete attachment from task item", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Delete attachment from task item | Comp AI API", "sidebarTitle": "Delete attachment from task item", "description": "Delete attachment from task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Delete attachment from task item | Comp AI API", "og:description": "Delete attachment from task item in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "delete-task-item-attachment" } } }, "/v1/task-management/{id}/activity": { "get": { "description": "Get task item activity log in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "operationId": "TaskManagementController_getTaskItemActivity_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Task item ID", "schema": { "example": "tski_abc123def456", "type": "string" } } ], "responses": { "200": { "description": "Activity logs retrieved successfully" } }, "security": [ { "apikey": [] } ], "summary": "Get task item activity log", "tags": [ "Task Management" ], "x-mint": { "metadata": { "title": "Get task item activity log | Comp AI API", "sidebarTitle": "Get task item activity log", "description": "Get task item activity log in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors.", "og:title": "Get task item activity log | Comp AI API", "og:description": "Get task item activity log in Comp AI. Manage task items and attachments linked to operational entities such as risks and vendors." } }, "x-speakeasy-mcp": { "name": "get-task-item-activity" } } }, "/v1/training/completions": { "get": { "description": "List security awareness and HIPAA training completion records for workforce compliance tracking and audit evidence.", "operationId": "TrainingController_getCompletions_v1", "parameters": [], "responses": { "200": { "description": "List of training video completion records" } }, "security": [ { "apikey": [] } ], "summary": "List training completions", "tags": [ "Training" ], "x-mint": { "metadata": { "title": "List training completions | Comp AI API", "sidebarTitle": "List training completions", "description": "List security awareness and HIPAA training completion records for workforce compliance tracking and audit evidence.", "og:title": "List training completions | Comp AI API", "og:description": "List security awareness and HIPAA training completion records for workforce compliance tracking and audit evidence." } }, "x-speakeasy-mcp": { "name": "get-completions" } } }, "/v1/training/completions/{videoId}/complete": { "post": { "description": "Marks a specific training video as completed for the authenticated member. Triggers completion email if all training is now done.", "operationId": "TrainingController_markVideoComplete_v1", "parameters": [ { "name": "videoId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "The updated completion record" } }, "security": [ { "apikey": [] } ], "summary": "Mark a training video as complete", "tags": [ "Training" ], "x-mint": { "metadata": { "title": "Mark a training video as complete | Comp AI API", "sidebarTitle": "Mark a training video as complete", "description": "Marks a specific training video as completed for the authenticated member. Triggers completion email if all training is now done.", "og:title": "Mark a training video as complete | Comp AI API", "og:description": "Marks a specific training video as completed for the authenticated member. Triggers completion email if all training is now done." } }, "x-speakeasy-mcp": { "name": "mark-video-complete" } } }, "/v1/training/send-completion-email": { "post": { "description": "Send training completion email with certificate in Comp AI. Record security awareness and HIPAA training completion status and generate completion certificates.", "operationId": "TrainingController_sendTrainingCompletionEmail_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendTrainingCompletionDto" } } } }, "responses": { "200": { "description": "Email sent or reason why it was not sent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendTrainingCompletionResponseDto" } } } } }, "security": [ { "apikey": [] } ], "summary": "Send training completion email with certificate", "tags": [ "Training" ], "x-mint": { "metadata": { "title": "Send training completion email with | Comp AI API", "sidebarTitle": "Send training completion email with certificate", "description": "Send training completion email with certificate in Comp AI. Record security awareness and HIPAA training completion status and generate completion.", "og:title": "Send training completion email with | Comp AI API", "og:description": "Send training completion email with certificate in Comp AI. Record security awareness and HIPAA training completion status and generate completion." } }, "x-speakeasy-mcp": { "name": "send-training-completion-email" } } }, "/v1/training/generate-certificate": { "post": { "description": "Generate a training completion certificate that can be shared with auditors or attached as workforce security evidence.", "operationId": "TrainingController_generateCertificate_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendTrainingCompletionDto" } } } }, "responses": { "200": { "description": "PDF certificate file" }, "400": { "description": "Training not complete or member not found" } }, "security": [ { "apikey": [] } ], "summary": "Generate training certificate", "tags": [ "Training" ], "x-mint": { "metadata": { "title": "Generate training certificate | Comp AI API", "sidebarTitle": "Generate training certificate", "description": "Generate a training completion certificate that can be shared with auditors or attached as workforce security evidence.", "og:title": "Generate training certificate | Comp AI API", "og:description": "Generate a training completion certificate that can be shared with auditors or attached as workforce security evidence." } }, "x-speakeasy-mcp": { "name": "generate-certificate" } } }, "/v1/training/generate-hipaa-certificate": { "post": { "description": "Generate HIPAA training certificate PDF in Comp AI. Record security awareness and HIPAA training completion status and generate completion certificates.", "operationId": "TrainingController_generateHipaaCertificate_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendTrainingCompletionDto" } } } }, "responses": { "200": { "description": "PDF certificate file" }, "400": { "description": "HIPAA training not complete or member not found" } }, "security": [ { "apikey": [] } ], "summary": "Generate HIPAA training certificate PDF", "tags": [ "Training" ], "x-mint": { "metadata": { "title": "Generate HIPAA training certificate PDF | Comp AI API", "sidebarTitle": "Generate HIPAA training certificate PDF", "description": "Generate HIPAA training certificate PDF in Comp AI. Record security awareness and HIPAA training completion status and generate completion certificates.", "og:title": "Generate HIPAA training certificate PDF | Comp AI API", "og:description": "Generate HIPAA training certificate PDF in Comp AI. Record security awareness and HIPAA training completion status and generate completion certificates." } }, "x-speakeasy-mcp": { "name": "generate-hipaa-certificate" } } }, "/v1/org-chart": { "get": { "operationId": "OrgChartController_getOrgChart_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The organization chart" } }, "security": [ { "apikey": [] } ], "summary": "Get the organization chart", "tags": [ "Org Chart" ], "description": "Get the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness.", "x-mint": { "metadata": { "title": "Get the organization chart | Comp AI API", "sidebarTitle": "Get the organization chart", "description": "Get the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness.", "og:title": "Get the organization chart | Comp AI API", "og:description": "Get the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness." } }, "x-speakeasy-mcp": { "name": "get-org-chart" } }, "put": { "operationId": "OrgChartController_upsertOrgChart_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "The saved organization chart" } }, "security": [ { "apikey": [] } ], "summary": "Create or update an interactive organization chart", "tags": [ "Org Chart" ], "description": "Create or update an interactive organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness.", "x-mint": { "metadata": { "title": "Create or update an interactive organization | Comp AI API", "sidebarTitle": "Create or update an interactive organization chart", "description": "Create or update an interactive organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability.", "og:title": "Create or update an interactive organization | Comp AI API", "og:description": "Create or update an interactive organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability." } }, "x-speakeasy-mcp": { "name": "upsert-org-chart" } }, "delete": { "operationId": "OrgChartController_deleteOrgChart_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Deletion confirmation" } }, "security": [ { "apikey": [] } ], "summary": "Delete the organization chart", "tags": [ "Org Chart" ], "description": "Delete the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness.", "x-mint": { "metadata": { "title": "Delete the organization chart | Comp AI API", "sidebarTitle": "Delete the organization chart", "description": "Delete the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness.", "og:title": "Delete the organization chart | Comp AI API", "og:description": "Delete the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness." } }, "x-speakeasy-mcp": { "name": "delete-org-chart" } } }, "/v1/org-chart/upload": { "post": { "operationId": "OrgChartController_uploadOrgChart_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadOrgChartDto" } } } }, "responses": { "201": { "description": "The uploaded organization chart" } }, "security": [ { "apikey": [] } ], "summary": "Upload an image as the organization chart", "tags": [ "Org Chart" ], "description": "Upload an image as the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit readiness.", "x-mint": { "metadata": { "title": "Upload an image as the organization chart | Comp AI API", "sidebarTitle": "Upload an image as the organization chart", "description": "Upload an image as the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit.", "og:title": "Upload an image as the organization chart | Comp AI API", "og:description": "Upload an image as the organization chart in Comp AI. Manage organization chart metadata and evidence used for governance, accountability, and audit." } }, "x-speakeasy-mcp": { "name": "upload-org-chart" } } }, "/v1/evidence-forms": { "get": { "description": "List structured evidence forms that collect recurring submissions for security, HR, IT, finance, and compliance workflows.", "operationId": "EvidenceFormsController_listForms_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List evidence forms", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "List evidence forms | Comp AI API", "sidebarTitle": "List evidence forms", "description": "List structured evidence forms that collect recurring submissions for security, HR, IT, finance, and compliance workflows.", "og:title": "List evidence forms | Comp AI API", "og:description": "List structured evidence forms that collect recurring submissions for security, HR, IT, finance, and compliance workflows." } }, "x-speakeasy-mcp": { "name": "list-forms" } } }, "/v1/evidence-forms/statuses": { "get": { "description": "Get submission statuses for all forms in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_getFormStatuses_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get submission statuses for all forms", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Get submission statuses for all forms | Comp AI API", "sidebarTitle": "Get submission statuses for all forms", "description": "Get submission statuses for all forms in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document.", "og:title": "Get submission statuses for all forms | Comp AI API", "og:description": "Get submission statuses for all forms in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document." } }, "x-speakeasy-mcp": { "name": "get-form-statuses" } } }, "/v1/evidence-forms/settings": { "get": { "description": "Get document relevance settings in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_getFormSettings_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get document relevance settings", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Get document relevance settings | Comp AI API", "sidebarTitle": "Get document relevance settings", "description": "Get document relevance settings in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document.", "og:title": "Get document relevance settings | Comp AI API", "og:description": "Get document relevance settings in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document." } }, "x-speakeasy-mcp": { "name": "get-form-settings" } } }, "/v1/evidence-forms/{formType}/settings": { "patch": { "description": "Update document relevance setting in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_updateFormSetting_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update document relevance setting", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Update document relevance setting | Comp AI API", "sidebarTitle": "Update document relevance setting", "description": "Update document relevance setting in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document.", "og:title": "Update document relevance setting | Comp AI API", "og:description": "Update document relevance setting in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document." } }, "x-speakeasy-mcp": { "name": "update-form-setting" } } }, "/v1/evidence-forms/my-submissions": { "get": { "description": "Get current user submissions in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_getMySubmissions_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get current user submissions", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Get current user submissions | Comp AI API", "sidebarTitle": "Get current user submissions", "description": "Get current user submissions in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "og:title": "Get current user submissions | Comp AI API", "og:description": "Get current user submissions in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements." } }, "x-speakeasy-mcp": { "name": "get-my-submissions" } } }, "/v1/evidence-forms/my-submissions/pending-count": { "get": { "description": "Get pending submission count for current user in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_getPendingSubmissionCount_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get pending submission count for current user", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Get pending submission count for current user | Comp AI API", "sidebarTitle": "Get pending submission count for current user", "description": "Get pending submission count for current user in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks.", "og:title": "Get pending submission count for current user | Comp AI API", "og:description": "Get pending submission count for current user in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks." } }, "x-speakeasy-mcp": { "name": "get-pending-submission-count" } } }, "/v1/evidence-forms/{formType}": { "get": { "description": "Get form definition and submissions in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_getFormWithSubmissions_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "search", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "limit", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "offset", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get form definition and submissions", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Get form definition and submissions | Comp AI API", "sidebarTitle": "Get form definition and submissions", "description": "Get form definition and submissions in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document.", "og:title": "Get form definition and submissions | Comp AI API", "og:description": "Get form definition and submissions in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document." } }, "x-speakeasy-mcp": { "name": "get-form-with-submissions" } } }, "/v1/evidence-forms/{formType}/submissions/{submissionId}": { "get": { "description": "Get a single submission in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_getSubmission_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "submissionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get a single submission", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Get a single submission | Comp AI API", "sidebarTitle": "Get a single submission", "description": "Get a single submission in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "og:title": "Get a single submission | Comp AI API", "og:description": "Get a single submission in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements." } }, "x-speakeasy-mcp": { "name": "get-submission" } }, "delete": { "description": "Delete a submission in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_deleteSubmission_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "submissionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Delete a submission", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Delete a submission | Comp AI API", "sidebarTitle": "Delete a submission", "description": "Delete a submission in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "og:title": "Delete a submission | Comp AI API", "og:description": "Delete a submission in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements." } }, "x-speakeasy-mcp": { "name": "delete-submission" } } }, "/v1/evidence-forms/{formType}/submissions": { "post": { "description": "Submit structured evidence responses and attachments for review against a compliance task or document requirement.", "operationId": "EvidenceFormsController_submitForm_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Submit evidence form", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Submit evidence form | Comp AI API", "sidebarTitle": "Submit evidence form", "description": "Submit structured evidence responses and attachments for review against a compliance task or document requirement.", "og:title": "Submit evidence form | Comp AI API", "og:description": "Submit structured evidence responses and attachments for review against a compliance task or document requirement." } }, "x-speakeasy-mcp": { "name": "submit-form" } } }, "/v1/evidence-forms/{formType}/upload-submission": { "post": { "description": "Upload a PDF or image file and create a submission for the given form type, bypassing form-specific validation. Accepts session, API key, or service token auth. For API key / service token callers without an explicit user attribution, the.", "operationId": "EvidenceFormsController_uploadSubmission_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload a file as an evidence submission", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Upload a file as an evidence submission | Comp AI API", "sidebarTitle": "Upload a file as an evidence submission", "description": "Upload a PDF or image file and create a submission for the given form type, bypassing form-specific validation. Accepts session, API key, or service token.", "og:title": "Upload a file as an evidence submission | Comp AI API", "og:description": "Upload a PDF or image file and create a submission for the given form type, bypassing form-specific validation. Accepts session, API key, or service token." } }, "x-speakeasy-mcp": { "name": "upload-submission" } } }, "/v1/evidence-forms/{formType}/submissions/{submissionId}/review": { "patch": { "description": "Approve or reject a submitted evidence form so task status and audit readiness reflect the latest review decision.", "operationId": "EvidenceFormsController_reviewSubmission_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "submissionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Review evidence submission", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Review evidence submission | Comp AI API", "sidebarTitle": "Review evidence submission", "description": "Approve or reject a submitted evidence form so task status and audit readiness reflect the latest review decision.", "og:title": "Review evidence submission | Comp AI API", "og:description": "Approve or reject a submitted evidence form so task status and audit readiness reflect the latest review decision." } }, "x-speakeasy-mcp": { "name": "review-submission" } } }, "/v1/evidence-forms/uploads": { "post": { "description": "Upload evidence form file in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "operationId": "EvidenceFormsController_uploadFile_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload evidence form file", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Upload evidence form file | Comp AI API", "sidebarTitle": "Upload evidence form file", "description": "Upload evidence form file in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements.", "og:title": "Upload evidence form file | Comp AI API", "og:description": "Upload evidence form file in Comp AI. Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements." } }, "x-speakeasy-mcp": { "name": "upload-file" } } }, "/v1/evidence-forms/{formType}/export.csv": { "get": { "description": "Export evidence form submissions as CSV for auditor requests, offline review, or internal compliance reporting.", "operationId": "EvidenceFormsController_exportCsv_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "formType", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Export evidence submissions", "tags": [ "Evidence Forms" ], "x-mint": { "metadata": { "title": "Export evidence submissions | Comp AI API", "sidebarTitle": "Export evidence submissions", "description": "Export evidence form submissions as CSV for auditor requests, offline review, or internal compliance reporting.", "og:title": "Export evidence submissions | Comp AI API", "og:description": "Export evidence form submissions as CSV for auditor requests, offline review, or internal compliance reporting." } }, "x-speakeasy-mcp": { "name": "export-csv" } } }, "/v1/frameworks": { "get": { "operationId": "FrameworksController_findAll_v1", "parameters": [ { "name": "includeControls", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "includeScores", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "List compliance frameworks", "tags": [ "Frameworks" ], "description": "List active SOC 2, ISO 27001, HIPAA, GDPR, and custom compliance frameworks with implementation status and progress data.", "x-mint": { "metadata": { "title": "List compliance frameworks | Comp AI API", "sidebarTitle": "List compliance frameworks", "description": "List active SOC 2, ISO 27001, HIPAA, GDPR, and custom compliance frameworks with implementation status and progress data.", "og:title": "List compliance frameworks | Comp AI API", "og:description": "List active SOC 2, ISO 27001, HIPAA, GDPR, and custom compliance frameworks with implementation status and progress data." } }, "x-speakeasy-mcp": { "name": "frameworks-find-all" } }, "post": { "operationId": "FrameworksController_addFrameworks_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddFrameworksDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Add compliance frameworks", "tags": [ "Frameworks" ], "description": "Add one or more compliance frameworks to an organization so tasks, controls, evidence, and readiness tracking can be generated.", "x-mint": { "metadata": { "title": "Add compliance frameworks | Comp AI API", "sidebarTitle": "Add compliance frameworks", "description": "Add one or more compliance frameworks to an organization so tasks, controls, evidence, and readiness tracking can be generated.", "og:title": "Add compliance frameworks | Comp AI API", "og:description": "Add one or more compliance frameworks to an organization so tasks, controls, evidence, and readiness tracking can be generated." } }, "x-speakeasy-mcp": { "name": "add-frameworks" } } }, "/v1/frameworks/available": { "get": { "operationId": "FrameworksController_findAvailable_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "List available frameworks", "tags": [ "Frameworks" ], "description": "List frameworks available for activation before starting a new compliance program or expanding into another standard.", "x-mint": { "metadata": { "title": "List available frameworks | Comp AI API", "sidebarTitle": "List available frameworks", "description": "List frameworks available for activation before starting a new compliance program or expanding into another standard.", "og:title": "List available frameworks | Comp AI API", "og:description": "List frameworks available for activation before starting a new compliance program or expanding into another standard." } }, "x-speakeasy-mcp": { "name": "find-available" } } }, "/v1/frameworks/scores": { "get": { "operationId": "FrameworksController_getScores_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get framework readiness scores", "tags": [ "Frameworks" ], "description": "Retrieve framework readiness scores so teams can report progress toward audit readiness across active compliance standards.", "x-mint": { "metadata": { "title": "Get framework readiness scores | Comp AI API", "sidebarTitle": "Get framework readiness scores", "description": "Retrieve framework readiness scores so teams can report progress toward audit readiness across active compliance standards.", "og:title": "Get framework readiness scores | Comp AI API", "og:description": "Retrieve framework readiness scores so teams can report progress toward audit readiness across active compliance standards." } }, "x-speakeasy-mcp": { "name": "get-scores" } } }, "/v1/frameworks/update-statuses": { "get": { "operationId": "FrameworksController_getAllUpdateStatuses_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get update statuses for all framework instances", "tags": [ "Frameworks" ], "description": "Get update statuses for all framework instances in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Get update statuses for all framework | Comp AI API", "sidebarTitle": "Get update statuses for all framework instances", "description": "Get update statuses for all framework instances in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Get update statuses for all framework | Comp AI API", "og:description": "Get update statuses for all framework instances in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "get-all-update-statuses" } } }, "/v1/frameworks/{id}": { "get": { "operationId": "FrameworksController_findOne_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get a single framework instance with full detail", "tags": [ "Frameworks" ], "description": "Get a single framework instance with full detail in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Get a single framework instance with full | Comp AI API", "sidebarTitle": "Get a single framework instance with full detail", "description": "Get a single framework instance with full detail in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Get a single framework instance with full | Comp AI API", "og:description": "Get a single framework instance with full detail in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "frameworks-find-one" } }, "delete": { "operationId": "FrameworksController_delete_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Delete a framework instance", "tags": [ "Frameworks" ], "description": "Delete a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Delete a framework instance | Comp AI API", "sidebarTitle": "Delete a framework instance", "description": "Delete a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "og:title": "Delete a framework instance | Comp AI API", "og:description": "Delete a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history." } }, "x-speakeasy-mcp": { "name": "delete" } } }, "/v1/frameworks/{id}/requirements/{requirementKey}": { "get": { "operationId": "FrameworksController_findRequirement_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "requirementKey", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get a specific requirement with related controls", "tags": [ "Frameworks" ], "description": "Get a specific requirement with related controls in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Get a specific requirement with related | Comp AI API", "sidebarTitle": "Get a specific requirement with related controls", "description": "Get a specific requirement with related controls in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Get a specific requirement with related | Comp AI API", "og:description": "Get a specific requirement with related controls in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "find-requirement" } } }, "/v1/frameworks/custom": { "post": { "operationId": "FrameworksController_createCustom_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCustomFrameworkDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Create a custom framework for this organization", "tags": [ "Frameworks" ], "description": "Create a custom framework for this organization in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Create a custom framework for this | Comp AI API", "sidebarTitle": "Create a custom framework for this organization", "description": "Create a custom framework for this organization in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Create a custom framework for this | Comp AI API", "og:description": "Create a custom framework for this organization in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "create-custom" } } }, "/v1/frameworks/{id}/custom": { "patch": { "description": "Update the name and/or description of an organization's custom framework. Only custom frameworks are editable; platform frameworks return 400.", "operationId": "FrameworksController_updateCustom_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCustomFrameworkDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Update a custom framework", "tags": [ "Frameworks" ], "x-mint": { "metadata": { "title": "Update a custom framework | Comp AI API", "sidebarTitle": "Update a custom framework", "description": "Update the name and/or description of an organization's custom framework. Only custom frameworks are editable; platform frameworks return 400.", "og:title": "Update a custom framework | Comp AI API", "og:description": "Update the name and/or description of an organization's custom framework. Only custom frameworks are editable; platform frameworks return 400." } }, "x-speakeasy-mcp": { "name": "update-custom" } } }, "/v1/frameworks/{id}/requirements": { "post": { "operationId": "FrameworksController_createRequirement_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCustomRequirementDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Add a custom requirement to a framework instance", "tags": [ "Frameworks" ], "description": "Add a custom requirement to a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Add a custom requirement to a framework | Comp AI API", "sidebarTitle": "Add a custom requirement to a framework instance", "description": "Add a custom requirement to a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Add a custom requirement to a framework | Comp AI API", "og:description": "Add a custom requirement to a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "create-requirement" } } }, "/v1/frameworks/{id}/requirements/link": { "post": { "operationId": "FrameworksController_linkRequirements_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkRequirementsDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Link (clone) existing requirements from another framework into this one", "tags": [ "Frameworks" ], "description": "Link (clone) existing requirements from another framework into this one in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Link (clone) existing requirements from | Comp AI API", "sidebarTitle": "Link (clone) existing requirements from another framework into this one", "description": "Link (clone) existing requirements from another framework into this one in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances.", "og:title": "Link (clone) existing requirements from | Comp AI API", "og:description": "Link (clone) existing requirements from another framework into this one in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances." } }, "x-speakeasy-mcp": { "name": "link-requirements" } } }, "/v1/frameworks/{id}/requirements/{requirementKey}/controls/link": { "post": { "operationId": "FrameworksController_linkControls_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "requirementKey", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkControlsDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Link existing org controls to a requirement", "tags": [ "Frameworks" ], "description": "Link existing org controls to a requirement in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Link existing org controls to a requirement | Comp AI API", "sidebarTitle": "Link existing org controls to a requirement", "description": "Link existing org controls to a requirement in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync.", "og:title": "Link existing org controls to a requirement | Comp AI API", "og:description": "Link existing org controls to a requirement in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync." } }, "x-speakeasy-mcp": { "name": "link-controls" } } }, "/v1/frameworks/{id}/update-status": { "get": { "operationId": "FrameworksController_getUpdateStatus_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get the update status for a framework instance", "tags": [ "Frameworks" ], "description": "Get the update status for a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Get the update status for a framework instance | Comp AI API", "sidebarTitle": "Get the update status for a framework instance", "description": "Get the update status for a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Get the update status for a framework instance | Comp AI API", "og:description": "Get the update status for a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "get-update-status" } } }, "/v1/frameworks/{id}/update-preview": { "get": { "operationId": "FrameworksController_getUpdatePreview_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Preview changes from updating a framework instance", "tags": [ "Frameworks" ], "description": "Preview changes from updating a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Preview changes from updating a framework | Comp AI API", "sidebarTitle": "Preview changes from updating a framework instance", "description": "Preview changes from updating a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores.", "og:title": "Preview changes from updating a framework | Comp AI API", "og:description": "Preview changes from updating a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores." } }, "x-speakeasy-mcp": { "name": "get-update-preview" } } }, "/v1/frameworks/{id}/sync": { "post": { "operationId": "FrameworksController_syncFramework_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SyncFrameworkDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Sync framework requirements", "tags": [ "Frameworks" ], "description": "Sync framework requirements, controls, and tasks after framework content changes so compliance tracking remains current.", "x-mint": { "metadata": { "title": "Sync framework requirements | Comp AI API", "sidebarTitle": "Sync framework requirements", "description": "Sync framework requirements, controls, and tasks after framework content changes so compliance tracking remains current.", "og:title": "Sync framework requirements | Comp AI API", "og:description": "Sync framework requirements, controls, and tasks after framework content changes so compliance tracking remains current." } }, "x-speakeasy-mcp": { "name": "sync-framework" } } }, "/v1/frameworks/{id}/rollback": { "post": { "operationId": "FrameworksController_rollbackFramework_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RollbackFrameworkDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Roll back a framework sync operation", "tags": [ "Frameworks" ], "description": "Roll back a framework sync operation in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Roll back a framework sync operation | Comp AI API", "sidebarTitle": "Roll back a framework sync operation", "description": "Roll back a framework sync operation in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "og:title": "Roll back a framework sync operation | Comp AI API", "og:description": "Roll back a framework sync operation in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history." } }, "x-speakeasy-mcp": { "name": "rollback-framework" } } }, "/v1/frameworks/{id}/sync-history": { "get": { "operationId": "FrameworksController_getSyncHistory_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get sync history for a framework instance", "tags": [ "Frameworks" ], "description": "Get sync history for a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history.", "x-mint": { "metadata": { "title": "Get sync history for a framework instance | Comp AI API", "sidebarTitle": "Get sync history for a framework instance", "description": "Get sync history for a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync.", "og:title": "Get sync history for a framework instance | Comp AI API", "og:description": "Get sync history for a framework instance in Comp AI. Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync." } }, "x-speakeasy-mcp": { "name": "get-sync-history" } } }, "/v1/audit-logs": { "get": { "operationId": "AuditLogController_getAuditLogs_v1", "parameters": [ { "name": "entityType", "required": false, "in": "query", "description": "Filter by entity type (e.g. policy, task, control)", "schema": { "type": "string" } }, { "name": "entityId", "required": false, "in": "query", "description": "Filter by entity ID", "schema": { "type": "string" } }, { "name": "pathContains", "required": false, "in": "query", "description": "Filter by path substring (e.g. automation ID)", "schema": { "type": "string" } }, { "name": "take", "required": false, "in": "query", "description": "Number of logs to return (max 100, default 50)", "schema": { "type": "string" } }, { "name": "offset", "required": false, "in": "query", "description": "Number of logs to skip (default 0)", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "List audit logs", "tags": [ "Audit Logs" ], "description": "List organization audit logs for compliance activity, access changes, evidence updates, and customer-facing review events.", "x-mint": { "metadata": { "title": "List audit logs | Comp AI API", "sidebarTitle": "List audit logs", "description": "List organization audit logs for compliance activity, access changes, evidence updates, and customer-facing review events.", "og:title": "List audit logs | Comp AI API", "og:description": "List organization audit logs for compliance activity, access changes, evidence updates, and customer-facing review events." } }, "x-speakeasy-mcp": { "name": "get-audit-logs" } } }, "/v1/controls": { "get": { "operationId": "ControlsController_findAll_v1", "parameters": [ { "name": "page", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "perPage", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "name", "required": false, "in": "query", "description": "Filter by name (case-insensitive contains)", "schema": { "type": "string" } }, { "name": "sortBy", "required": false, "in": "query", "description": "Field to sort by (default: name)", "schema": { "type": "string" } }, { "name": "sortDesc", "required": false, "in": "query", "description": "Sort descending (true/false)", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "List compliance controls", "tags": [ "Controls" ], "description": "List controls with linked policies, tasks, requirements, and document types for SOC 2, ISO 27001, HIPAA, and GDPR programs.", "x-mint": { "metadata": { "title": "List compliance controls | Comp AI API", "sidebarTitle": "List compliance controls", "description": "List controls with linked policies, tasks, requirements, and document types for SOC 2, ISO 27001, HIPAA, and GDPR programs.", "og:title": "List compliance controls | Comp AI API", "og:description": "List controls with linked policies, tasks, requirements, and document types for SOC 2, ISO 27001, HIPAA, and GDPR programs." } }, "x-speakeasy-mcp": { "name": "controls-find-all" } }, "post": { "operationId": "ControlsController_create_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateControlDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Create compliance control", "tags": [ "Controls" ], "description": "Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations.", "x-mint": { "metadata": { "title": "Create compliance control | Comp AI API", "sidebarTitle": "Create compliance control", "description": "Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations.", "og:title": "Create compliance control | Comp AI API", "og:description": "Create a custom compliance control and connect it to framework requirements, policies, tasks, and evidence expectations." } }, "x-speakeasy-mcp": { "name": "create" } } }, "/v1/controls/options": { "get": { "operationId": "ControlsController_getOptions_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get dropdown options for creating controls", "tags": [ "Controls" ], "description": "Get dropdown options for creating controls in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.", "x-mint": { "metadata": { "title": "Get dropdown options for creating controls | Comp AI API", "sidebarTitle": "Get dropdown options for creating controls", "description": "Get dropdown options for creating controls in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.", "og:title": "Get dropdown options for creating controls | Comp AI API", "og:description": "Get dropdown options for creating controls in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types." } }, "x-speakeasy-mcp": { "name": "get-options" } } }, "/v1/controls/{id}": { "get": { "operationId": "ControlsController_findOne_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frameworkInstanceId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Get control detail with progress", "tags": [ "Controls" ], "description": "Get control detail with progress in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.", "x-mint": { "metadata": { "title": "Get control detail with progress | Comp AI API", "sidebarTitle": "Get control detail with progress", "description": "Get control detail with progress in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track.", "og:title": "Get control detail with progress | Comp AI API", "og:description": "Get control detail with progress in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track." } }, "x-speakeasy-mcp": { "name": "controls-find-one" } }, "delete": { "operationId": "ControlsController_delete_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Delete a control", "tags": [ "Controls" ], "description": "Delete a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.", "x-mint": { "metadata": { "title": "Delete a control | Comp AI API", "sidebarTitle": "Delete a control", "description": "Delete a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation.", "og:title": "Delete a control | Comp AI API", "og:description": "Delete a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation." } }, "x-speakeasy-mcp": { "name": "controls-delete" } } }, "/v1/controls/{id}/policies/link": { "post": { "operationId": "ControlsController_linkPolicies_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frameworkInstanceId", "required": true, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkPoliciesDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Link policies to control", "tags": [ "Controls" ], "description": "Link policies to a control so auditors and reviewers can trace control implementation back to approved policy evidence.", "x-mint": { "metadata": { "title": "Link policies to control | Comp AI API", "sidebarTitle": "Link policies to control", "description": "Link policies to a control so auditors and reviewers can trace control implementation back to approved policy evidence.", "og:title": "Link policies to control | Comp AI API", "og:description": "Link policies to a control so auditors and reviewers can trace control implementation back to approved policy evidence." } }, "x-speakeasy-mcp": { "name": "link-policies" } } }, "/v1/controls/{id}/tasks/link": { "post": { "operationId": "ControlsController_linkTasks_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frameworkInstanceId", "required": true, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkTasksDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Link tasks to control", "tags": [ "Controls" ], "description": "Link compliance tasks to a control so implementation work, evidence collection, and review status stay connected.", "x-mint": { "metadata": { "title": "Link tasks to control | Comp AI API", "sidebarTitle": "Link tasks to control", "description": "Link compliance tasks to a control so implementation work, evidence collection, and review status stay connected.", "og:title": "Link tasks to control | Comp AI API", "og:description": "Link compliance tasks to a control so implementation work, evidence collection, and review status stay connected." } }, "x-speakeasy-mcp": { "name": "link-tasks" } } }, "/v1/controls/{id}/requirements/link": { "post": { "operationId": "ControlsController_linkRequirements_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkRequirementsToControlDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Link existing requirements to a control", "tags": [ "Controls" ], "description": "Link existing requirements to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.", "x-mint": { "metadata": { "title": "Link existing requirements to a control | Comp AI API", "sidebarTitle": "Link existing requirements to a control", "description": "Link existing requirements to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.", "og:title": "Link existing requirements to a control | Comp AI API", "og:description": "Link existing requirements to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types." } }, "x-speakeasy-mcp": { "name": "controls-link-requirements" } } }, "/v1/controls/{id}/document-types/link": { "post": { "operationId": "ControlsController_linkDocumentTypes_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frameworkInstanceId", "required": true, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkDocumentTypesDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Link required document types to a control", "tags": [ "Controls" ], "description": "Link required document types to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.", "x-mint": { "metadata": { "title": "Link required document types to a control | Comp AI API", "sidebarTitle": "Link required document types to a control", "description": "Link required document types to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types.", "og:title": "Link required document types to a control | Comp AI API", "og:description": "Link required document types to a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types." } }, "x-speakeasy-mcp": { "name": "link-document-types" } } }, "/v1/controls/{id}/document-types/{formType}": { "delete": { "operationId": "ControlsController_unlinkDocumentType_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "Unique control identifier", "schema": { "example": "ctl_abc123def456", "type": "string" } }, { "name": "formType", "required": true, "in": "path", "description": "Evidence form type to unlink from the control", "schema": { "enum": [ "board_meeting", "it_leadership_meeting", "risk_committee_meeting", "meeting", "access_request", "whistleblower_report", "penetration_test", "rbac_matrix", "infrastructure_inventory", "employee_performance_evaluation", "network_diagram", "tabletop_exercise", "account_types" ], "type": "string" } }, { "name": "frameworkInstanceId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] } ], "summary": "Remove a required document type from a control", "tags": [ "Controls" ], "description": "Remove a required document type from a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress.", "x-mint": { "metadata": { "title": "Remove a required document type from a control | Comp AI API", "sidebarTitle": "Remove a required document type from a control", "description": "Remove a required document type from a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document.", "og:title": "Remove a required document type from a control | Comp AI API", "og:description": "Remove a required document type from a control in Comp AI. Manage controls, map them to policies, tasks, framework requirements, and evidence document." } }, "x-speakeasy-mcp": { "name": "unlink-document-type" } } }, "/v1/security-penetration-tests": { "get": { "description": "List penetration test runs in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF reports.", "operationId": "SecurityPenetrationTestsController_list_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Penetration tests returned" } }, "security": [ { "apikey": [] } ], "summary": "List penetration test runs", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "List penetration test runs | Comp AI API", "sidebarTitle": "List penetration test runs", "description": "List penetration test runs in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF.", "og:title": "List penetration test runs | Comp AI API", "og:description": "List penetration test runs in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF." } }, "x-speakeasy-mcp": { "name": "list" } }, "post": { "description": "Create an AI-powered penetration test run for an approved target and track the resulting findings and report artifacts.", "operationId": "SecurityPenetrationTestsController_create_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePenetrationTestDto" } } } }, "responses": { "201": { "description": "Penetration test created" }, "400": { "description": "Invalid request payload" } }, "security": [ { "apikey": [] } ], "summary": "Create penetration test", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Create penetration test | Comp AI API", "sidebarTitle": "Create penetration test", "description": "Create an AI-powered penetration test run for an approved target and track the resulting findings and report artifacts.", "og:title": "Create penetration test | Comp AI API", "og:description": "Create an AI-powered penetration test run for an approved target and track the resulting findings and report artifacts." } }, "x-speakeasy-mcp": { "name": "security-penetration-tests-create" } } }, "/v1/security-penetration-tests/{id}": { "get": { "description": "Get penetration test status in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF reports.", "operationId": "SecurityPenetrationTestsController_getById_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Penetration test returned" }, "404": { "description": "Penetration test not found" } }, "security": [ { "apikey": [] } ], "summary": "Get penetration test status", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Get penetration test status | Comp AI API", "sidebarTitle": "Get penetration test status", "description": "Get penetration test status in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF.", "og:title": "Get penetration test status | Comp AI API", "og:description": "Get penetration test status in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF." } }, "x-speakeasy-mcp": { "name": "get-by-id" } } }, "/v1/security-penetration-tests/{id}/progress": { "get": { "description": "Get penetration test progress in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF reports.", "operationId": "SecurityPenetrationTestsController_getProgress_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Progress returned" } }, "security": [ { "apikey": [] } ], "summary": "Get penetration test progress", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Get penetration test progress | Comp AI API", "sidebarTitle": "Get penetration test progress", "description": "Get penetration test progress in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF.", "og:title": "Get penetration test progress | Comp AI API", "og:description": "Get penetration test progress in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF." } }, "x-speakeasy-mcp": { "name": "get-progress" } } }, "/v1/security-penetration-tests/{id}/issues": { "get": { "description": "Returns the structured findings discovered during the run. Grows over time during a live scan as agents discover more issues.", "operationId": "SecurityPenetrationTestsController_getIssues_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Issues returned" } }, "security": [ { "apikey": [] } ], "summary": "Get penetration test issues", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Get penetration test issues | Comp AI API", "sidebarTitle": "Get penetration test issues", "description": "Returns the structured findings discovered during the run. Grows over time during a live scan as agents discover more issues.", "og:title": "Get penetration test issues | Comp AI API", "og:description": "Returns the structured findings discovered during the run. Grows over time during a live scan as agents discover more issues." } }, "x-speakeasy-mcp": { "name": "get-issues" } } }, "/v1/security-penetration-tests/{id}/events": { "get": { "description": "Returns the real-time agent activity log emitted during a run (tool calls, observations, etc.). Noisy — meant for activity feeds and debugging.", "operationId": "SecurityPenetrationTestsController_getEvents_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Events returned" } }, "security": [ { "apikey": [] } ], "summary": "Get penetration test agent events", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Get penetration test agent events | Comp AI API", "sidebarTitle": "Get penetration test agent events", "description": "Returns the real-time agent activity log emitted during a run (tool calls, observations, etc.). Noisy — meant for activity feeds and debugging.", "og:title": "Get penetration test agent events | Comp AI API", "og:description": "Returns the real-time agent activity log emitted during a run (tool calls, observations, etc.). Noisy — meant for activity feeds and debugging." } }, "x-speakeasy-mcp": { "name": "get-events" } } }, "/v1/security-penetration-tests/{id}/report": { "get": { "description": "Get penetration test output in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF reports.", "operationId": "SecurityPenetrationTestsController_getReport_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Markdown report output" } }, "security": [ { "apikey": [] } ], "summary": "Get penetration test output", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Get penetration test output | Comp AI API", "sidebarTitle": "Get penetration test output", "description": "Get penetration test output in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF.", "og:title": "Get penetration test output | Comp AI API", "og:description": "Get penetration test output in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF." } }, "x-speakeasy-mcp": { "name": "get-report" } } }, "/v1/security-penetration-tests/{id}/pdf": { "get": { "description": "Get penetration test PDF in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF reports.", "operationId": "SecurityPenetrationTestsController_getPdf_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "PDF report artifact" } }, "security": [ { "apikey": [] } ], "summary": "Get penetration test PDF", "tags": [ "Security Penetration Tests" ], "x-mint": { "metadata": { "title": "Get penetration test PDF | Comp AI API", "sidebarTitle": "Get penetration test PDF", "description": "Get penetration test PDF in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF.", "og:title": "Get penetration test PDF | Comp AI API", "og:description": "Get penetration test PDF in Comp AI. Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF." } }, "x-speakeasy-mcp": { "name": "get-pdf" } } }, "/v1/pentest-finding-contexts": { "get": { "description": "Returns the customer-written context notes attached to pentest findings for a target URL. These notes are shared with the testing agent on future scans of the same target so retests are informed, not blind.", "operationId": "PentestFindingContextsController_list_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "targetUrl", "required": true, "in": "query", "description": "Target URL the notes are attached to", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Context notes returned" } }, "security": [ { "apikey": [] } ], "summary": "List pentest finding context notes", "tags": [ "Security Penetration Tests" ], "x-speakeasy-mcp": { "name": "list-pentest-finding-contexts" }, "x-mint": { "metadata": { "title": "List pentest finding context notes | Comp AI API", "sidebarTitle": "List pentest finding context notes", "description": "Returns the customer-written context notes attached to pentest findings for a target URL. These notes are shared with the testing agent on future scans of.", "og:title": "List pentest finding context notes | Comp AI API", "og:description": "Returns the customer-written context notes attached to pentest findings for a target URL. These notes are shared with the testing agent on future scans of." } } } }, "/v1/pentest-finding-contexts/{issueId}": { "put": { "description": "Saves a customer context note on a pentest finding, e.g. an accepted-by-design rationale or remediation details. Future scans of the same target pass the note to the testing agent so the issue is retested with that context.", "operationId": "PentestFindingContextsController_upsert_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "issueId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertFindingContextDto" } } } }, "responses": { "200": { "description": "Context note saved" }, "404": { "description": "Run or finding not found" } }, "security": [ { "apikey": [] } ], "summary": "Add context to a pentest finding", "tags": [ "Security Penetration Tests" ], "x-speakeasy-mcp": { "name": "set-pentest-finding-context" }, "x-mint": { "metadata": { "title": "Add context to a pentest finding | Comp AI API", "sidebarTitle": "Add context to a pentest finding", "description": "Saves a customer context note on a pentest finding, e.g. an accepted-by-design rationale or remediation details. Future scans of the same target pass the.", "og:title": "Add context to a pentest finding | Comp AI API", "og:description": "Saves a customer context note on a pentest finding, e.g. an accepted-by-design rationale or remediation details. Future scans of the same target pass the." } } }, "delete": { "description": "Deletes the customer context note attached to a pentest finding so future scans of the target no longer receive it from the testing agent briefing.", "operationId": "PentestFindingContextsController_remove_v1", "parameters": [ { "name": "X-Organization-Id", "in": "header", "description": "Organization ID (required for session auth, optional for API key auth)", "required": false, "schema": { "type": "string" } }, { "name": "issueId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Context note deleted" }, "404": { "description": "No context found for finding" } }, "security": [ { "apikey": [] } ], "summary": "Remove context from a pentest finding", "tags": [ "Security Penetration Tests" ], "x-speakeasy-mcp": { "name": "delete-pentest-finding-context" }, "x-mint": { "metadata": { "title": "Remove context from a pentest finding | Comp AI API", "sidebarTitle": "Remove context from a pentest finding", "description": "Deletes the customer context note attached to a pentest finding so future scans of the target no longer receive it from the testing agent briefing.", "og:title": "Remove context from a pentest finding | Comp AI API", "og:description": "Deletes the customer context note attached to a pentest finding so future scans of the target no longer receive it from the testing agent briefing." } } } }, "/v1/offboarding-checklist/pending": { "get": { "description": "Lists members whose offboarding checklist is still incomplete, with their outstanding items, so you can track and finish departing-employee offboarding.", "operationId": "OffboardingChecklistController_getPendingOffboardings_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get members with pending offboarding checklists", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Get members with pending offboarding | Comp AI API", "sidebarTitle": "Get members with pending offboarding checklists", "description": "Lists members whose offboarding checklist is still incomplete, with their outstanding items, so you can track and finish departing-employee offboarding.", "og:title": "Get members with pending offboarding | Comp AI API", "og:description": "Lists members whose offboarding checklist is still incomplete, with their outstanding items, so you can track and finish departing-employee offboarding." } }, "x-speakeasy-mcp": { "name": "get-pending-offboardings" } } }, "/v1/offboarding-checklist/template": { "get": { "description": "Returns the organization's offboarding checklist template: the ordered set of items every departing member must complete during their offboarding.", "operationId": "OffboardingChecklistController_getTemplate_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get the offboarding checklist template", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Get the offboarding checklist template | Comp AI API", "sidebarTitle": "Get the offboarding checklist template", "description": "Returns the organization's offboarding checklist template: the ordered set of items every departing member must complete during their offboarding.", "og:title": "Get the offboarding checklist template | Comp AI API", "og:description": "Returns the organization's offboarding checklist template: the ordered set of items every departing member must complete during their offboarding." } }, "x-speakeasy-mcp": { "name": "get-template" } }, "post": { "description": "Creates a new item in the organization's offboarding checklist template so it appears on every member's offboarding checklist from now on.", "operationId": "OffboardingChecklistController_createTemplateItem_v1", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateItemDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Add an offboarding checklist template item", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Add an offboarding checklist template item | Comp AI API", "sidebarTitle": "Add an offboarding checklist template item", "description": "Creates a new item in the organization's offboarding checklist template so it appears on every member's offboarding checklist from now on.", "og:title": "Add an offboarding checklist template item | Comp AI API", "og:description": "Creates a new item in the organization's offboarding checklist template so it appears on every member's offboarding checklist from now on." } }, "x-speakeasy-mcp": { "name": "create-template-item" } } }, "/v1/offboarding-checklist/template/{id}": { "patch": { "description": "Updates an existing offboarding checklist template item by id, changing its label, description, or settings on the organization's offboarding template.", "operationId": "OffboardingChecklistController_updateTemplateItem_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTemplateItemDto" } } } }, "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Update an offboarding checklist template item", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Update an offboarding checklist template item | Comp AI API", "sidebarTitle": "Update an offboarding checklist template item", "description": "Updates an existing offboarding checklist template item by id, changing its label, description, or settings on the organization's offboarding template.", "og:title": "Update an offboarding checklist template item | Comp AI API", "og:description": "Updates an existing offboarding checklist template item by id, changing its label, description, or settings on the organization's offboarding template." } }, "x-speakeasy-mcp": { "name": "update-template-item" } }, "delete": { "description": "Removes an item from the organization's offboarding checklist template by id so it no longer appears on members' offboarding checklists.", "operationId": "OffboardingChecklistController_deleteTemplateItem_v1", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Delete an offboarding checklist template item", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Delete an offboarding checklist template item | Comp AI API", "sidebarTitle": "Delete an offboarding checklist template item", "description": "Removes an item from the organization's offboarding checklist template by id so it no longer appears on members' offboarding checklists.", "og:title": "Delete an offboarding checklist template item | Comp AI API", "og:description": "Removes an item from the organization's offboarding checklist template by id so it no longer appears on members' offboarding checklists." } }, "x-speakeasy-mcp": { "name": "delete-template-item" } } }, "/v1/offboarding-checklist/member/{memberId}": { "get": { "description": "Returns the offboarding checklist for a specific member, including each item and whether it has been completed, to track that person's offboarding progress.", "operationId": "OffboardingChecklistController_getMemberChecklist_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get a member's offboarding checklist", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Get a member's offboarding checklist | Comp AI API", "sidebarTitle": "Get a member's offboarding checklist", "description": "Returns the offboarding checklist for a specific member, including each item and whether it has been completed, to track that person's offboarding progress.", "og:title": "Get a member's offboarding checklist | Comp AI API", "og:description": "Returns the offboarding checklist for a specific member, including each item and whether it has been completed, to track that person's offboarding progress." } }, "x-speakeasy-mcp": { "name": "get-member-checklist" } } }, "/v1/offboarding-checklist/export-all": { "get": { "description": "Exports a zip archive containing the offboarding checklist evidence for every member in the organization, for audits, handovers, or record-keeping.", "operationId": "OffboardingChecklistController_exportAllEvidence_v1", "parameters": [], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Export all offboarding evidence as a zip file", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Export all offboarding evidence as a zip file | Comp AI API", "sidebarTitle": "Export all offboarding evidence as a zip file", "description": "Exports a zip archive containing the offboarding checklist evidence for every member in the organization, for audits, handovers, or record-keeping.", "og:title": "Export all offboarding evidence as a zip file | Comp AI API", "og:description": "Exports a zip archive containing the offboarding checklist evidence for every member in the organization, for audits, handovers, or record-keeping." } }, "x-speakeasy-mcp": { "name": "offboarding-checklist-export-all-evidence" } } }, "/v1/offboarding-checklist/member/{memberId}/export": { "get": { "description": "Exports a zip archive of the offboarding checklist evidence collected for a single member, for audit, handover, or record-keeping purposes.", "operationId": "OffboardingChecklistController_exportEvidence_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "description": "Member ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Export offboarding evidence as a zip file", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Export offboarding evidence as a zip file | Comp AI API", "sidebarTitle": "Export offboarding evidence as a zip file", "description": "Exports a zip archive of the offboarding checklist evidence collected for a single member, for audit, handover, or record-keeping purposes.", "og:title": "Export offboarding evidence as a zip file | Comp AI API", "og:description": "Exports a zip archive of the offboarding checklist evidence collected for a single member, for audit, handover, or record-keeping purposes." } }, "x-speakeasy-mcp": { "name": "export-evidence" } } }, "/v1/offboarding-checklist/member/{memberId}/item/{templateItemId}/complete": { "post": { "description": "Marks a specific offboarding checklist item complete for a member, recording who completed it and when, as part of finishing that member's offboarding.", "operationId": "OffboardingChecklistController_completeItem_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "templateItemId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompleteChecklistItemDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Complete an offboarding checklist item", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Complete an offboarding checklist item | Comp AI API", "sidebarTitle": "Complete an offboarding checklist item", "description": "Marks a specific offboarding checklist item complete for a member, recording who completed it and when, as part of finishing that member's offboarding.", "og:title": "Complete an offboarding checklist item | Comp AI API", "og:description": "Marks a specific offboarding checklist item complete for a member, recording who completed it and when, as part of finishing that member's offboarding." } }, "x-speakeasy-mcp": { "name": "complete-item" } }, "delete": { "description": "Reverts a previously completed offboarding checklist item back to incomplete for a member, in case the step was marked done by mistake.", "operationId": "OffboardingChecklistController_uncompleteItem_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "templateItemId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Reopen an offboarding checklist item", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Reopen an offboarding checklist item | Comp AI API", "sidebarTitle": "Reopen an offboarding checklist item", "description": "Reverts a previously completed offboarding checklist item back to incomplete for a member, in case the step was marked done by mistake.", "og:title": "Reopen an offboarding checklist item | Comp AI API", "og:description": "Reverts a previously completed offboarding checklist item back to incomplete for a member, in case the step was marked done by mistake." } }, "x-speakeasy-mcp": { "name": "uncomplete-item" } } }, "/v1/offboarding-checklist/member/{memberId}/item/{templateItemId}/evidence": { "post": { "description": "Attaches a supporting evidence file to a member's completed offboarding checklist item, documenting that the offboarding step was actually carried out.", "operationId": "OffboardingChecklistController_uploadEvidence_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "templateItemId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadAttachmentDto" } } } }, "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Upload evidence for an offboarding checklist item", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Upload evidence for an offboarding checklist | Comp AI API", "sidebarTitle": "Upload evidence for an offboarding checklist item", "description": "Attaches a supporting evidence file to a member's completed offboarding checklist item, documenting that the offboarding step was actually carried out.", "og:title": "Upload evidence for an offboarding checklist | Comp AI API", "og:description": "Attaches a supporting evidence file to a member's completed offboarding checklist item, documenting that the offboarding step was actually carried out." } }, "x-speakeasy-mcp": { "name": "upload-evidence" } } }, "/v1/offboarding-checklist/member/{memberId}/access-revocations": { "get": { "description": "Lists the vendors a departing member had access to and whether each has been revoked, so you can confirm all vendor access is removed during offboarding.", "operationId": "OffboardingChecklistController_getAccessRevocations_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "description": "Member ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Get vendor access revocation status for a member", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Get vendor access revocation status for a | Comp AI API", "sidebarTitle": "Get vendor access revocation status for a member", "description": "Lists the vendors a departing member had access to and whether each has been revoked, so you can confirm all vendor access is removed during offboarding.", "og:title": "Get vendor access revocation status for a | Comp AI API", "og:description": "Lists the vendors a departing member had access to and whether each has been revoked, so you can confirm all vendor access is removed during offboarding." } }, "x-speakeasy-mcp": { "name": "get-access-revocations" } } }, "/v1/offboarding-checklist/member/{memberId}/access-revocations/confirm-all": { "post": { "description": "Marks every vendor access record for a departing member as revoked in one step, recording who confirmed it, to complete access removal during offboarding.", "operationId": "OffboardingChecklistController_revokeAllVendorAccess_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "description": "Member ID", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Confirm all vendor access as revoked", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Confirm all vendor access as revoked | Comp AI API", "sidebarTitle": "Confirm all vendor access as revoked", "description": "Marks every vendor access record for a departing member as revoked in one step, recording who confirmed it, to complete access removal during offboarding.", "og:title": "Confirm all vendor access as revoked | Comp AI API", "og:description": "Marks every vendor access record for a departing member as revoked in one step, recording who confirmed it, to complete access removal during offboarding." } }, "x-speakeasy-mcp": { "name": "revoke-all-vendor-access" } } }, "/v1/offboarding-checklist/member/{memberId}/access-revocations/{vendorId}": { "post": { "description": "Marks a single vendor's access for a departing member as revoked, optionally attaching evidence and notes, as part of offboarding access removal.", "operationId": "OffboardingChecklistController_revokeVendorAccess_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "description": "Member ID", "schema": { "type": "string" } }, { "name": "vendorId", "required": true, "in": "path", "description": "Vendor ID", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Mark vendor access as revoked", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Mark vendor access as revoked | Comp AI API", "sidebarTitle": "Mark vendor access as revoked", "description": "Marks a single vendor's access for a departing member as revoked, optionally attaching evidence and notes, as part of offboarding access removal.", "og:title": "Mark vendor access as revoked | Comp AI API", "og:description": "Marks a single vendor's access for a departing member as revoked, optionally attaching evidence and notes, as part of offboarding access removal." } }, "x-speakeasy-mcp": { "name": "revoke-vendor-access" } }, "delete": { "description": "Reverses a vendor access revocation for a member, marking that vendor's access as not revoked again, in case it was confirmed by mistake during offboarding.", "operationId": "OffboardingChecklistController_undoVendorRevocation_v1", "parameters": [ { "name": "memberId", "required": true, "in": "path", "description": "Member ID", "schema": { "type": "string" } }, { "name": "vendorId", "required": true, "in": "path", "description": "Vendor ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "security": [ { "apikey": [] } ], "summary": "Undo vendor access revocation", "tags": [ "Offboarding Checklist" ], "x-mint": { "metadata": { "title": "Undo vendor access revocation | Comp AI API", "sidebarTitle": "Undo vendor access revocation", "description": "Reverses a vendor access revocation for a member, marking that vendor's access as not revoked again, in case it was confirmed by mistake during offboarding.", "og:title": "Undo vendor access revocation | Comp AI API", "og:description": "Reverses a vendor access revocation for a member, marking that vendor's access as not revoked again, in case it was confirmed by mistake during offboarding." } }, "x-speakeasy-mcp": { "name": "undo-vendor-revocation" } } } }, "info": { "title": "Comp AI API", "description": "Compliance automation API for SOC 2, ISO 27001, HIPAA, GDPR, evidence collection, policy workflows, Trust Access, security questionnaires, integrations, cloud checks, and device compliance.", "version": "1.0", "contact": {} }, "tags": [ { "name": "Attachments", "description": "Generate signed download links for files attached to compliance tasks, comments, evidence records, and workflow reviews." }, { "name": "Audit Logs", "description": "Retrieve audit trails for compliance activity, evidence changes, access decisions, and customer-facing security review workflows." }, { "name": "CloudSecurity", "description": "Run AWS, Azure, and GCP cloud security scans, detect enabled services, review findings, and connect cloud posture results to compliance work.", "x-group": "Cloud Security" }, { "name": "Comments", "description": "Create and manage collaboration comments on compliance entities such as tasks, policies, risks, vendors, and findings." }, { "name": "Context", "description": "Manage organization context that helps Comp AI tailor policies, assessments, and compliance automation to the business." }, { "name": "Controls", "description": "Manage controls, map them to policies, tasks, framework requirements, and evidence document types, and track implementation progress." }, { "name": "Device Agent", "description": "Register employee devices, submit device compliance check-ins, download agent builds, and manage endpoint security status." }, { "name": "Devices", "description": "Read and manage employee device inventory and Fleet compliance data used for endpoint security controls." }, { "name": "Evidence Export", "description": "Export task evidence, automation evidence, and reviewer-ready evidence bundles as PDF or ZIP files." }, { "name": "Evidence Export (Auditor)", "description": "Export all organization evidence for an auditor review package." }, { "name": "Evidence Forms", "description": "Collect, review, upload, and export structured evidence submissions for compliance tasks and document requirements." }, { "name": "Findings", "description": "Create, review, update, and track audit findings, remediation activity, and finding history for an organization." }, { "name": "Frameworks", "description": "Manage SOC 2, ISO 27001, HIPAA, GDPR, and custom framework instances, requirements, scores, and sync history." }, { "name": "ISMS" }, { "name": "Integrations", "description": "Connect vendor systems, configure OAuth apps, run compliance checks, sync employees, manage variables, and collect automated evidence." }, { "name": "Knowledge Base", "description": "Upload source documents, process them for retrieval, and manage reusable manual answers that power questionnaires and AI policy workflows." }, { "name": "Offboarding Checklist" }, { "name": "Org Chart", "description": "Manage organization chart metadata and evidence used for governance, accountability, and audit readiness." }, { "name": "Organization", "description": "Manage organization profile data, API keys, logos, ownership, role notifications, and access approval settings." }, { "name": "People", "description": "Invite and manage workforce members, training status, device compliance, email preferences, and employee evidence records." }, { "name": "Policies", "description": "Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows." }, { "name": "Questionnaire", "description": "Parse security questionnaires, generate answers from approved evidence, save reviewer edits, stream progress, and export completed files." }, { "name": "Risks", "description": "Create, update, and report on organizational risks with ownership, departments, and compliance remediation status." }, { "name": "Roles", "description": "Create custom roles and resolve permission sets for organization-level access control." }, { "name": "SOA", "description": "Create, auto-fill, review, approve, and export ISO 27001 Statement of Applicability documents.", "x-group": "Statement of Applicability" }, { "name": "Security Penetration Tests", "description": "Create AI-powered penetration test runs, track progress, inspect findings and events, and download markdown or PDF reports." }, { "name": "Task Automations", "description": "Create, version, run, and inspect automated evidence collection workflows attached to compliance tasks." }, { "name": "Task Management", "description": "Manage task items and attachments linked to operational entities such as risks and vendors." }, { "name": "Tasks", "description": "Manage compliance task lifecycle, assignments, review approvals, evidence uploads, policy links, and activity history." }, { "name": "Timelines", "description": "Track audit and compliance readiness timelines, phases, and review milestones for an organization." }, { "name": "Training", "description": "Record security awareness and HIPAA training completion status and generate completion certificates." }, { "name": "Trust Access", "description": "Manage external Trust Center access requests, NDA signing, grants, tokenized document downloads, public FAQs, and reviewer access." }, { "name": "Trust Portal", "description": "Configure the live Trust Center, custom domain, public overview, FAQs, compliance resources, documents, links, and vendor disclosures." }, { "name": "Uploads" }, { "name": "Vendors", "description": "Manage third-party vendors, global vendor search, risk assessment triggers, and Trust Center vendor visibility." } ], "servers": [ { "url": "https://api.trycomp.ai", "description": "Production API Server" } ], "components": { "securitySchemes": { "apikey": { "type": "apiKey", "in": "header", "name": "X-API-Key", "description": "API key for authentication" } }, "schemas": { "UserResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "User ID", "example": "usr_abc123def456" }, "name": { "type": "string", "description": "User name", "example": "John Doe" }, "email": { "type": "string", "description": "User email", "example": "john.doe@company.com" }, "emailVerified": { "type": "boolean", "description": "Whether email is verified", "example": true }, "image": { "type": "object", "description": "User profile image URL", "example": "https://example.com/avatar.jpg", "nullable": true }, "createdAt": { "format": "date-time", "type": "string", "description": "When the user was created", "example": "2024-01-01T00:00:00Z" }, "updatedAt": { "format": "date-time", "type": "string", "description": "When the user was last updated", "example": "2024-01-15T00:00:00Z" }, "lastLogin": { "type": "object", "description": "Last login time", "example": "2024-01-15T12:00:00Z", "nullable": true }, "role": { "type": "object", "description": "Platform role of the user (managed by Better Auth admin plugin)", "example": "user", "nullable": true } }, "required": [ "id", "name", "email", "emailVerified", "image", "createdAt", "updatedAt", "lastLogin", "role" ] }, "BackgroundCheckSummaryDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Background check request ID", "example": "bcr_abc123def456" }, "status": { "type": "string", "description": "Background check status", "enum": [ "invited", "in_progress", "in_review", "completed", "completed_with_flags", "failed", "cancelled" ], "example": "invited" } }, "required": [ "id", "status" ] }, "PeopleResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Member ID", "example": "mem_abc123def456" }, "organizationId": { "type": "string", "description": "Organization ID this member belongs to", "example": "org_abc123def456" }, "userId": { "type": "string", "description": "User ID associated with member", "example": "usr_abc123def456" }, "role": { "type": "string", "description": "Member role", "example": "admin" }, "createdAt": { "format": "date-time", "type": "string", "description": "When the member was created", "example": "2024-01-01T00:00:00Z" }, "department": { "type": "string", "description": "Member department. May be one of the built-in values (none, admin, gov, hr, it, itsm, qms) or a custom department name.", "example": "it" }, "jobTitle": { "type": "object", "description": "Job title for the member", "example": "Software Engineer", "nullable": true }, "isActive": { "type": "boolean", "description": "Whether member is active", "example": true }, "deactivated": { "type": "boolean", "description": "Whether member is deactivated", "example": false }, "fleetDmLabelId": { "type": "object", "description": "FleetDM label ID for member devices", "example": 123, "nullable": true }, "user": { "description": "User information", "allOf": [ { "$ref": "#/components/schemas/UserResponseDto" } ] }, "backgroundCheckRequests": { "description": "Background check requests for this member", "type": "array", "items": { "$ref": "#/components/schemas/BackgroundCheckSummaryDto" } } }, "required": [ "id", "organizationId", "userId", "role", "createdAt", "department", "jobTitle", "isActive", "deactivated", "fleetDmLabelId", "user" ] }, "InviteItemDto": { "type": "object", "properties": { "email": { "type": "string", "example": "user@example.com" }, "roles": { "example": [ "employee" ], "type": "array", "items": { "type": "string" } }, "sendPortalEmail": { "type": "boolean", "example": false } }, "required": [ "email", "roles" ] }, "InvitePeopleDto": { "type": "object", "properties": { "invites": { "type": "array", "items": { "$ref": "#/components/schemas/InviteItemDto" } } }, "required": [ "invites" ] }, "CreatePeopleDto": { "type": "object", "properties": { "userId": { "type": "string", "description": "User ID to associate with this member", "example": "usr_abc123def456" }, "role": { "type": "string", "description": "Role for the member (built-in role name or custom role ID)", "example": "admin" }, "department": { "type": "string", "description": "Member department. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "example": "it", "maxLength": 64 }, "isActive": { "type": "boolean", "description": "Whether member is active", "example": true }, "fleetDmLabelId": { "type": "number", "description": "FleetDM label ID for member devices", "example": 123 }, "jobTitle": { "type": "string", "description": "Job title for the member", "example": "Software Engineer" } }, "required": [ "userId", "role" ] }, "BulkCreatePeopleDto": { "type": "object", "properties": { "members": { "description": "Array of members to create", "example": [ { "userId": "usr_abc123def456", "role": "admin", "department": "it", "isActive": true, "fleetDmLabelId": 123 }, { "userId": "usr_def456ghi789", "role": "member", "department": "hr", "isActive": true } ], "type": "array", "items": { "$ref": "#/components/schemas/CreatePeopleDto" } } }, "required": [ "members" ] }, "UpdatePeopleDto": { "type": "object", "properties": { "userId": { "type": "string", "description": "User ID to associate with this member", "example": "usr_abc123def456" }, "role": { "type": "string", "description": "Role for the member (built-in role name or custom role ID)", "example": "admin" }, "department": { "type": "string", "description": "Member department. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "example": "it", "maxLength": 64 }, "isActive": { "type": "boolean", "description": "Whether to deactivate this member (soft delete)", "example": false }, "fleetDmLabelId": { "type": "number", "description": "FleetDM label ID for member devices", "example": 123 }, "jobTitle": { "type": "string", "description": "Job title for the member", "example": "Software Engineer" }, "name": { "type": "string", "description": "Name of the associated user", "example": "John Doe" }, "email": { "type": "string", "description": "Email of the associated user", "example": "john@example.com" }, "createdAt": { "type": "string", "description": "Member join date (createdAt override)", "example": "2024-01-15T00:00:00.000Z" }, "backgroundCheckExempt": { "type": "boolean", "description": "When true, this member is exempt from the org-level background check requirement and will count as complete in people scores.", "example": false }, "backgroundCheckExemptReason": { "type": "string", "description": "Reason code for the exemption (e.g. \"contractor_with_vendor_check\", \"other\"). Persisted alongside backgroundCheckExempt and cleared when the member becomes non-exempt.", "example": "other" }, "backgroundCheckExemptJustification": { "type": "string", "description": "Free-text justification for the exemption, attached to the audit log. Cleared when the member becomes non-exempt.", "example": "Contractor with existing background check on file from staffing agency." }, "onboardDate": { "type": "object", "description": "Employee onboard date", "example": "2026-01-15T00:00:00.000Z" }, "offboardDate": { "type": "object", "description": "Employee offboard date", "example": "2026-04-30T00:00:00.000Z" } } }, "UploadAttachmentDto": { "type": "object", "properties": { "fileName": { "type": "string", "description": "Name of the file", "example": "document.pdf", "maxLength": 255 }, "fileType": { "type": "string", "description": "MIME type of the file", "example": "application/pdf" }, "fileData": { "type": "string", "description": "Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign (purpose=attachment) and pass `s3Key` — base64 through an LLM is impractically slow and times out. Provide exactly one of fileData or s3Key.", "example": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" }, "s3Key": { "type": "string", "description": "Key of a file already uploaded via /v1/uploads/presign (purpose=attachment). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key.", "example": "org_abc123/uploads/attachment/1700000000000-rbac-matrix.xlsx" }, "description": { "type": "string", "description": "Description of the attachment", "example": "Meeting notes from Q4 planning session", "maxLength": 500 }, "userId": { "type": "string", "description": "User ID of the user uploading the attachment (required for API key auth, ignored for JWT auth)", "example": "usr_abc123def456" } }, "required": [ "fileName", "fileType" ] }, "EmailPreferencesDto": { "type": "object", "properties": { "policyNotifications": { "type": "boolean", "example": true }, "taskReminders": { "type": "boolean", "example": true }, "weeklyTaskDigest": { "type": "boolean", "example": true }, "unassignedItemsNotifications": { "type": "boolean", "example": true }, "taskMentions": { "type": "boolean", "example": true }, "taskAssignments": { "type": "boolean", "example": true } }, "required": [ "policyNotifications", "taskReminders", "weeklyTaskDigest", "unassignedItemsNotifications", "taskMentions", "taskAssignments" ] }, "UpdateEmailPreferencesDto": { "type": "object", "properties": { "preferences": { "$ref": "#/components/schemas/EmailPreferencesDto" } }, "required": [ "preferences" ] }, "AttachmentEntityType": { "type": "string", "enum": [ "task", "vendor", "risk", "comment", "trust_nda", "task_item", "background_check", "employment_onboard", "employment_offboard", "offboarding_checklist" ], "description": "Type of entity the attachment belongs to" }, "CreateAttachmentDto": { "type": "object", "properties": { "fileName": { "type": "string", "description": "Name of the file", "example": "document.pdf", "maxLength": 255 }, "fileType": { "type": "string", "description": "MIME type of the file", "example": "application/pdf" }, "fileData": { "type": "string", "description": "Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign (purpose=attachment) and pass `s3Key` — base64 through an LLM is impractically slow and times out. Provide exactly one of fileData or s3Key.", "example": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" }, "s3Key": { "type": "string", "description": "Key of a file already uploaded via /v1/uploads/presign (purpose=attachment). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key.", "example": "org_abc123/uploads/attachment/1700000000000-rbac-matrix.xlsx" }, "description": { "type": "string", "description": "Description of the attachment", "example": "Meeting notes from Q4 planning session", "maxLength": 500 }, "userId": { "type": "string", "description": "User ID of the user uploading the attachment (required for API key auth, ignored for JWT auth)", "example": "usr_abc123def456" }, "entityId": { "type": "string", "description": "ID of the entity to attach the file to", "example": "tsk_abc123def456" }, "entityType": { "description": "Type of entity the attachment belongs to", "example": "task", "allOf": [ { "$ref": "#/components/schemas/AttachmentEntityType" } ] } }, "required": [ "fileName", "fileType", "entityId", "entityType" ] }, "AttachmentResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the attachment", "example": "att_abc123def456" }, "name": { "type": "string", "description": "Original filename", "example": "document.pdf" }, "type": { "type": "string", "description": "File type/MIME type", "example": "application/pdf" }, "size": { "type": "number", "description": "File size in bytes", "example": 1024000 }, "downloadUrl": { "type": "string", "description": "Signed URL for downloading the file (temporary)", "example": "https://bucket.s3.amazonaws.com/path/to/file.pdf?signature=..." }, "createdAt": { "format": "date-time", "type": "string", "description": "Upload timestamp", "example": "2024-01-15T10:30:00Z" } }, "required": [ "id", "name", "type", "size", "downloadUrl", "createdAt" ] }, "CreateUploadUrlDto": { "type": "object", "properties": { "purpose": { "type": "string", "enum": [ "questionnaire", "policy_pdf", "evidence", "attachment", "document", "general" ], "description": "What the file is for. Controls where the file is stored and which feature is expected to consume the returned s3Key.", "example": "questionnaire" }, "fileName": { "type": "string", "description": "Original filename, used for the stored object name. Non-alphanumeric characters are replaced with underscores.", "example": "vendor-security-questionnaire.xlsx" }, "fileType": { "type": "string", "description": "MIME type of the file (e.g. application/pdf, text/csv). Recorded as metadata and passed to the feature endpoint; the PUT itself is content-type agnostic, so the upload never fails on a header mismatch.", "example": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" } }, "required": [ "purpose", "fileName", "fileType" ] }, "UploadUrlResponseDto": { "type": "object", "properties": { "uploadUrl": { "type": "string", "description": "Presigned S3 URL. Send the raw file bytes with a plain HTTP PUT to this URL — no Content-Type or auth headers are required (the signature is in the URL). Then call the feature endpoint with the s3Key below.", "example": "https://bucket.s3.us-east-1.amazonaws.com/org_x/uploads/...?X-Amz-Signature=..." }, "s3Key": { "type": "string", "description": "The S3 key the file will land at. Pass this to the feature endpoint (e.g. questionnaire upload-and-parse) instead of base64 file data.", "example": "org_abc/uploads/questionnaire/1735000000-questionnaire.xlsx" }, "expiresIn": { "type": "number", "description": "Seconds until the presigned URL expires.", "example": 900 } }, "required": [ "uploadUrl", "s3Key", "expiresIn" ] }, "CreateConnectionDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "providerSlug": { "type": "string", "description": "Provider slug for the integration. Call list-providers first to see the available slugs (e.g. 'aws', 'gcp', 'azure', 'github').", "example": "aws" }, "credentials": { "type": "object", "description": "Provider-specific credential fields. Keys differ by provider — call get-provider-details for the exact shape. For AWS (Cloud Tests) the fields are: connectionName (display name), awsType ('aws-commercial' or 'aws-govcloud'), roleArn (auditor role), externalId (typically your org id), regions (string array), and optionally remediationRoleArn and awsScanMode ('comp_scanners' or 'security_hub'). Omit credentials for OAuth providers — use POST /v1/integrations/oauth/start instead.", "additionalProperties": true, "example": { "connectionName": "Production AWS", "awsType": "aws-commercial", "roleArn": "arn:aws:iam::123456789012:role/CompAI-Auditor", "externalId": "org_abc123", "regions": [ "us-east-1", "us-west-2" ], "remediationRoleArn": "arn:aws:iam::123456789012:role/CompAI-Remediator", "awsScanMode": "comp_scanners" } } }, "required": [ "providerSlug" ] }, "UpdateConnectionDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "metadata": { "type": "object", "description": "Connection metadata to merge into the existing record. Common AWS keys: connectionName, regions (string array), awsScanMode ('comp_scanners' or 'security_hub'). The server shallow-merges this with the existing metadata, so include only the keys you want to change.", "additionalProperties": true, "example": { "connectionName": "Production AWS (renamed)", "regions": [ "us-east-1", "us-west-2" ] } } } }, "UpdateConnectionServicesDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "services": { "type": "array", "description": "Service IDs to enable on this connection. Any service IDs from the provider's manifest that are NOT in this list become disabled. Pass an empty array to disable all services.", "items": { "type": "string" }, "example": [ "s3", "iam", "cloudtrail" ] } }, "required": [ "services" ] }, "RunChecksDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "checkId": { "type": "string", "description": "Specific check ID to run. Omit to run ALL available checks for the connection (matches the provider manifest).", "example": "aws-s3-bucket-public-access" } } }, "SaveVariablesDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "variables": { "type": "object", "description": "Map of variable id → value to persist for this connection. Values can be string, number, boolean, or string[] (the shape is provider-defined — call get-connection-variables to see what each connection accepts). Pass only the variables you want to set; existing ones not included are left untouched.", "additionalProperties": true, "example": { "scan-interval-hours": 24, "enabled-regions": [ "us-east-1", "us-west-2" ], "strict-mode": true } } }, "required": [ "variables" ] }, "RunCheckForTaskDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "connectionId": { "type": "string", "description": "ID of the integration connection that owns the check (call list-connections to find it).", "example": "conn_abc123" }, "checkId": { "type": "string", "description": "ID of the integration check to run (from the provider manifest — call list-checks-for-task to find available ones).", "example": "aws-s3-bucket-public-access" } }, "required": [ "connectionId", "checkId" ] }, "ToggleCheckForTaskDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "connectionId": { "type": "string", "description": "ID of the integration connection whose check is being disconnected from / reconnected to this task.", "example": "conn_abc123" }, "checkId": { "type": "string", "description": "ID of the integration check being toggled.", "example": "aws-s3-bucket-public-access" } }, "required": [ "connectionId", "checkId" ] }, "SetEmployeeSyncProviderDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "provider": { "type": "object", "description": "Provider slug to use for employee sync (must have the \"sync\" capability in its manifest — call list-providers to see options). Pass null or omit the field to disable employee sync for this org.", "example": "google-workspace", "nullable": true } } }, "SetTwoFactorSourceDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Auto-resolved from your API key / session. You can omit this; it is ignored by the server." }, "provider": { "type": "object", "description": "Provider slug whose 2FA check feeds the People-tab 2FA column (must be bound to the 2FA task — call available-2fa-sources for options). Pass null or omit to clear the source.", "example": "google-workspace", "nullable": true } } }, "MarkExceptionDto": { "type": "object", "properties": { "reason": { "type": "string", "description": "Documentation for why this finding does not apply or is being accepted. Minimum 20 non-whitespace characters.", "example": "Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role." }, "reviewedBy": { "type": "string", "description": "Free-text reviewer or approval reference.", "example": "Approved by CISO 2026-Q1" }, "expiresAt": { "type": "string", "description": "ISO date when this exception should auto-expire. Null/missing = never.", "example": "2026-08-13" } }, "required": [ "reason" ] }, "UpdateAwsScanModeDto": { "type": "object", "properties": { "mode": { "type": "string", "description": "Which scan engine to use for this AWS connection.", "enum": [ "comp_scanners", "security_hub" ], "example": "security_hub" } }, "required": [ "mode" ] }, "CreateRiskDto": { "type": "object", "properties": { "title": { "type": "string", "description": "Risk title", "example": "Data breach vulnerability in user authentication system" }, "description": { "type": "string", "description": "Detailed description of the risk", "example": "Weak password requirements could lead to unauthorized access to user accounts" }, "category": { "type": "string", "description": "Risk category", "enum": [ "customer", "fraud", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ], "example": "technology" }, "department": { "type": "string", "description": "Department responsible for the risk. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "example": "it", "maxLength": 64 }, "status": { "type": "string", "description": "Current status of the risk", "enum": [ "open", "pending", "closed", "archived" ], "default": "open", "example": "open" }, "likelihood": { "type": "string", "description": "Likelihood of the risk occurring", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "default": "very_unlikely", "example": "possible" }, "impact": { "type": "string", "description": "Impact if the risk materializes", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "default": "insignificant", "example": "major" }, "residualLikelihood": { "type": "string", "description": "Residual likelihood after treatment", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "default": "very_unlikely", "example": "unlikely" }, "residualImpact": { "type": "string", "description": "Residual impact after treatment", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "default": "insignificant", "example": "minor" }, "treatmentStrategyDescription": { "type": "string", "description": "Description of the treatment strategy", "example": "Implement multi-factor authentication and strengthen password requirements" }, "treatmentStrategy": { "type": "string", "description": "Risk treatment strategy", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "default": "accept", "example": "mitigate" }, "assigneeId": { "type": "string", "description": "ID of the user assigned to this risk", "example": "mem_abc123def456" } }, "required": [ "title", "description", "category", "status", "likelihood", "impact", "residualLikelihood", "residualImpact", "treatmentStrategy" ] }, "UpdateRiskDto": { "type": "object", "properties": { "title": { "type": "string", "description": "Risk title", "example": "Data breach vulnerability in user authentication system" }, "description": { "type": "string", "description": "Detailed description of the risk", "example": "Weak password requirements could lead to unauthorized access to user accounts" }, "category": { "type": "string", "description": "Risk category", "enum": [ "customer", "fraud", "governance", "operations", "other", "people", "regulatory", "reporting", "resilience", "technology", "vendor_management" ], "example": "technology" }, "department": { "type": "string", "description": "Department responsible for the risk. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "example": "it", "maxLength": 64 }, "status": { "type": "string", "description": "Current status of the risk", "enum": [ "open", "pending", "closed", "archived" ], "default": "open", "example": "open" }, "likelihood": { "type": "string", "description": "Likelihood of the risk occurring", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "default": "very_unlikely", "example": "possible" }, "impact": { "type": "string", "description": "Impact if the risk materializes", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "default": "insignificant", "example": "major" }, "residualLikelihood": { "type": "string", "description": "Residual likelihood after treatment", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "default": "very_unlikely", "example": "unlikely" }, "residualImpact": { "type": "string", "description": "Residual impact after treatment", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "default": "insignificant", "example": "minor" }, "treatmentStrategyDescription": { "type": "string", "description": "Description of the treatment strategy", "example": "Implement multi-factor authentication and strengthen password requirements" }, "treatmentStrategy": { "type": "string", "description": "Risk treatment strategy", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "default": "accept", "example": "mitigate" }, "assigneeId": { "type": "string", "description": "ID of the user assigned to this risk", "example": "mem_abc123def456" } } }, "CreateVendorDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Vendor name", "example": "CloudTech Solutions Inc." }, "description": { "type": "string", "description": "Detailed description of the vendor and services provided", "example": "Cloud infrastructure provider offering AWS-like services including compute, storage, and networking solutions for enterprise customers." }, "category": { "type": "string", "description": "Vendor category", "enum": [ "cloud", "infrastructure", "software_as_a_service", "finance", "marketing", "sales", "hr", "other" ], "default": "other", "example": "cloud" }, "status": { "type": "string", "description": "Assessment status of the vendor", "enum": [ "not_assessed", "in_progress", "assessed" ], "default": "not_assessed", "example": "not_assessed" }, "inherentProbability": { "type": "string", "description": "Inherent probability of risk before controls", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "default": "very_unlikely", "example": "possible" }, "inherentImpact": { "type": "string", "description": "Inherent impact of risk before controls", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "default": "insignificant", "example": "moderate" }, "residualProbability": { "type": "string", "description": "Residual probability after controls are applied", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ], "default": "very_unlikely", "example": "unlikely" }, "residualImpact": { "type": "string", "description": "Residual impact after controls are applied", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ], "default": "insignificant", "example": "minor" }, "website": { "type": "string", "description": "Vendor website URL", "example": "https://www.cloudtechsolutions.com" }, "isSubProcessor": { "type": "boolean", "description": "Whether the vendor is a sub-processor", "default": false }, "assigneeId": { "type": "string", "description": "ID of the user assigned to manage this vendor", "example": "mem_abc123def456" } }, "required": [ "name", "description", "category", "status", "inherentProbability", "inherentImpact", "residualProbability", "residualImpact" ] }, "UpdateVendorDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Vendor name" }, "description": { "type": "string", "description": "Vendor description" }, "category": { "type": "string", "description": "Vendor category", "enum": [ "cloud", "infrastructure", "software_as_a_service", "finance", "marketing", "sales", "hr", "other" ] }, "status": { "type": "string", "description": "Assessment status", "enum": [ "not_assessed", "in_progress", "assessed" ] }, "inherentProbability": { "type": "string", "description": "Inherent probability", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ] }, "inherentImpact": { "type": "string", "description": "Inherent impact", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ] }, "residualProbability": { "type": "string", "description": "Residual probability", "enum": [ "very_unlikely", "unlikely", "possible", "likely", "very_likely" ] }, "residualImpact": { "type": "string", "description": "Residual impact", "enum": [ "insignificant", "minor", "moderate", "major", "severe" ] }, "treatmentStrategy": { "type": "string", "description": "Risk treatment strategy", "enum": [ "accept", "avoid", "mitigate", "transfer" ], "default": "accept", "example": "mitigate" }, "treatmentStrategyDescription": { "type": "object", "description": "Description of the treatment strategy", "example": "We isolated the vendor to a dedicated VPC." }, "website": { "type": "string", "description": "Vendor website URL" }, "isSubProcessor": { "type": "boolean", "description": "Whether the vendor is a sub-processor" }, "assigneeId": { "type": "string", "description": "Assignee member ID" } } }, "CreateContextDto": { "type": "object", "properties": { "question": { "type": "string", "description": "The question or topic this context entry addresses", "example": "How do we handle user authentication in our application?" }, "answer": { "type": "string", "description": "The answer or detailed explanation for the question", "example": "We use a hybrid authentication system supporting both API keys and session-based authentication. API keys are used for programmatic access while sessions are used for web interface interactions." }, "tags": { "description": "Tags to categorize and help search this context entry", "example": [ "authentication", "security", "api", "sessions" ], "type": "array", "items": { "type": "string" } } }, "required": [ "question", "answer" ] }, "UpdateContextDto": { "type": "object", "properties": { "question": { "type": "string", "description": "The question or topic this context entry addresses", "example": "How do we handle user authentication in our application?" }, "answer": { "type": "string", "description": "The answer or detailed explanation for the question", "example": "We use a hybrid authentication system supporting both API keys and session-based authentication. API keys are used for programmatic access while sessions are used for web interface interactions." }, "tags": { "description": "Tags to categorize and help search this context entry", "example": [ "authentication", "security", "api", "sessions" ], "type": "array", "items": { "type": "string" } } } }, "FleetPolicyDto": { "type": "object", "properties": { "id": { "type": "number", "description": "Policy ID", "example": 123 }, "name": { "type": "string", "description": "Policy name", "example": "Password Policy" }, "query": { "type": "string", "description": "Policy query", "example": "SELECT * FROM users;" }, "critical": { "type": "boolean", "description": "Whether policy is critical", "example": true }, "description": { "type": "string", "description": "Policy description", "example": "Ensures strong passwords" }, "author_id": { "type": "number", "description": "Author ID", "example": 456 }, "author_name": { "type": "string", "description": "Author name", "example": "John Doe" }, "author_email": { "type": "string", "description": "Author email", "example": "john@example.com" }, "team_id": { "type": "object", "description": "Team ID", "example": 789, "nullable": true }, "resolution": { "type": "string", "description": "Policy resolution", "example": "Update password settings" }, "platform": { "type": "string", "description": "Platform", "example": "darwin" }, "calendar_events_enabled": { "type": "boolean", "description": "Calendar events enabled", "example": false }, "created_at": { "type": "string", "description": "Created at", "example": "2024-01-01T00:00:00Z" }, "updated_at": { "type": "string", "description": "Updated at", "example": "2024-01-15T00:00:00Z" }, "response": { "type": "string", "description": "Policy response", "example": "compliant" } }, "required": [ "id", "name", "query", "critical", "description", "author_id", "author_name", "author_email", "team_id", "resolution", "platform", "calendar_events_enabled", "created_at", "updated_at", "response" ] }, "DeviceResponseDto": { "type": "object", "properties": { "created_at": { "type": "string", "description": "Device created at", "example": "2024-01-01T00:00:00Z" }, "updated_at": { "type": "string", "description": "Device updated at", "example": "2024-01-15T00:00:00Z" }, "software": { "type": "array", "description": "Software list", "items": { "type": "object" } }, "software_updated_at": { "type": "string", "description": "Software updated at", "example": "2024-01-10T00:00:00Z" }, "id": { "description": "Device ID (numeric for Fleet devices, string UUID for device-agent devices)", "oneOf": [ { "type": "number", "example": 123 }, { "type": "string", "example": "clx1abc123" } ] }, "detail_updated_at": { "type": "string", "description": "Detail updated at", "example": "2024-01-10T00:00:00Z" }, "label_updated_at": { "type": "string", "description": "Label updated at", "example": "2024-01-10T00:00:00Z" }, "policy_updated_at": { "type": "string", "description": "Policy updated at", "example": "2024-01-10T00:00:00Z" }, "last_enrolled_at": { "type": "string", "description": "Last enrolled at", "example": "2024-01-01T00:00:00Z" }, "seen_time": { "type": "string", "description": "Last seen time", "example": "2024-01-15T12:00:00Z" }, "refetch_requested": { "type": "boolean", "description": "Refetch requested", "example": false }, "hostname": { "type": "string", "description": "Hostname", "example": "johns-macbook" }, "uuid": { "type": "string", "description": "Device UUID", "example": "abc123def456" }, "platform": { "type": "string", "description": "Platform", "example": "darwin" }, "osquery_version": { "type": "string", "description": "Osquery version", "example": "5.10.2" }, "orbit_version": { "type": "string", "description": "Orbit version", "example": "1.19.0" }, "fleet_desktop_version": { "type": "string", "description": "Fleet desktop version", "example": "1.19.0" }, "scripts_enabled": { "type": "boolean", "description": "Scripts enabled", "example": true }, "os_version": { "type": "string", "description": "OS version", "example": "macOS 14.2.1" }, "build": { "type": "string", "description": "Build", "example": "23C71" }, "platform_like": { "type": "string", "description": "Platform like", "example": "darwin" }, "code_name": { "type": "string", "description": "Code name", "example": "sonoma" }, "uptime": { "type": "number", "description": "Uptime in seconds", "example": 86400 }, "memory": { "type": "number", "description": "Memory in bytes", "example": 17179869184 }, "cpu_type": { "type": "string", "description": "CPU type", "example": "x86_64" }, "cpu_subtype": { "type": "string", "description": "CPU subtype", "example": "x86_64h" }, "cpu_brand": { "type": "string", "description": "CPU brand", "example": "Intel(R) Core(TM) i7-9750H" }, "cpu_physical_cores": { "type": "number", "description": "CPU physical cores", "example": 6 }, "cpu_logical_cores": { "type": "number", "description": "CPU logical cores", "example": 12 }, "hardware_vendor": { "type": "string", "description": "Hardware vendor", "example": "Apple Inc." }, "hardware_model": { "type": "string", "description": "Hardware model", "example": "MacBookPro16,1" }, "hardware_version": { "type": "string", "description": "Hardware version", "example": "1.0" }, "hardware_serial": { "type": "string", "description": "Hardware serial", "example": "C02XW0AAJGH6" }, "computer_name": { "type": "string", "description": "Computer name", "example": "John's MacBook Pro" }, "public_ip": { "type": "string", "description": "Public IP", "example": "203.0.113.1" }, "primary_ip": { "type": "string", "description": "Primary IP", "example": "192.168.1.100" }, "primary_mac": { "type": "string", "description": "Primary MAC", "example": "00:11:22:33:44:55" }, "distributed_interval": { "type": "number", "description": "Distributed interval", "example": 10 }, "config_tls_refresh": { "type": "number", "description": "Config TLS refresh", "example": 3600 }, "logger_tls_period": { "type": "number", "description": "Logger TLS period", "example": 300 }, "team_id": { "type": "object", "description": "Team ID", "example": 1, "nullable": true }, "pack_stats": { "type": "array", "description": "Pack stats", "items": { "type": "object" } }, "team_name": { "type": "object", "description": "Team name", "example": "Engineering", "nullable": true }, "users": { "type": "array", "description": "Users", "items": { "type": "object" } }, "gigs_disk_space_available": { "type": "number", "description": "Disk space available in GB", "example": 250.5 }, "percent_disk_space_available": { "type": "number", "description": "Percent disk space available", "example": 75.2 }, "gigs_total_disk_space": { "type": "number", "description": "Total disk space in GB", "example": 500 }, "disk_encryption_enabled": { "type": "boolean", "description": "Disk encryption enabled", "example": true }, "issues": { "type": "object", "description": "Issues", "additionalProperties": true }, "mdm": { "type": "object", "description": "MDM info", "additionalProperties": true }, "refetch_critical_queries_until": { "type": "object", "description": "Refetch critical queries until", "example": "2024-01-20T00:00:00Z", "nullable": true }, "last_restarted_at": { "type": "string", "description": "Last restarted at", "example": "2024-01-10T08:00:00Z" }, "policies": { "description": "Policies", "type": "array", "items": { "$ref": "#/components/schemas/FleetPolicyDto" } }, "labels": { "type": "array", "description": "Labels", "items": { "type": "object" } }, "packs": { "type": "array", "description": "Packs", "items": { "type": "object" } }, "batteries": { "type": "array", "description": "Batteries", "items": { "type": "object" } }, "end_users": { "type": "array", "description": "End users", "items": { "type": "object" } }, "last_mdm_enrolled_at": { "type": "string", "description": "Last MDM enrolled at", "example": "2024-01-01T00:00:00Z" }, "last_mdm_checked_in_at": { "type": "string", "description": "Last MDM checked in at", "example": "2024-01-15T12:00:00Z" }, "status": { "type": "string", "description": "Device status", "example": "online" }, "display_text": { "type": "string", "description": "Display text", "example": "Johns MacBook Pro" }, "display_name": { "type": "string", "description": "Display name", "example": "John's MacBook Pro" } }, "required": [ "created_at", "updated_at", "software", "software_updated_at", "id", "detail_updated_at", "label_updated_at", "policy_updated_at", "last_enrolled_at", "seen_time", "refetch_requested", "hostname", "uuid", "platform", "osquery_version", "orbit_version", "fleet_desktop_version", "scripts_enabled", "os_version", "build", "platform_like", "code_name", "uptime", "memory", "cpu_type", "cpu_subtype", "cpu_brand", "cpu_physical_cores", "cpu_logical_cores", "hardware_vendor", "hardware_model", "hardware_version", "hardware_serial", "computer_name", "public_ip", "primary_ip", "primary_mac", "distributed_interval", "config_tls_refresh", "logger_tls_period", "team_id", "pack_stats", "team_name", "users", "gigs_disk_space_available", "percent_disk_space_available", "gigs_total_disk_space", "disk_encryption_enabled", "issues", "mdm", "refetch_critical_queries_until", "last_restarted_at", "policies", "labels", "packs", "batteries", "end_users", "last_mdm_enrolled_at", "last_mdm_checked_in_at", "status", "display_text", "display_name" ] }, "MemberResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Member ID", "example": "mem_abc123def456" }, "userId": { "type": "string", "description": "User ID associated with member", "example": "usr_abc123def456" }, "role": { "type": "string", "description": "Member role", "example": "admin" }, "department": { "type": "object", "description": "Member department", "example": "engineering", "nullable": true }, "isActive": { "type": "boolean", "description": "Whether member is active", "example": true }, "fleetDmLabelId": { "type": "object", "description": "FleetDM label ID for member devices", "example": 123, "nullable": true }, "organizationId": { "type": "string", "description": "Organization ID this member belongs to", "example": "org_abc123def456" }, "createdAt": { "format": "date-time", "type": "string", "description": "When the member was created", "example": "2024-01-01T00:00:00Z" } }, "required": [ "id", "userId", "role", "department", "isActive", "fleetDmLabelId", "organizationId", "createdAt" ] }, "DevicesByMemberResponseDto": { "type": "object", "properties": { "data": { "description": "Array of devices assigned to the member", "type": "array", "items": { "$ref": "#/components/schemas/DeviceResponseDto" } }, "count": { "type": "number", "description": "Total number of devices for this member", "example": 3 }, "member": { "description": "Member information", "allOf": [ { "$ref": "#/components/schemas/MemberResponseDto" } ] }, "authType": { "type": "string", "description": "How the request was authenticated", "enum": [ "api-key", "session" ], "example": "api-key" }, "authenticatedUser": { "type": "object", "description": "Authenticated user information (present for session auth)", "example": { "id": "usr_abc123def456", "email": "user@company.com" } } }, "required": [ "data", "count", "member", "authType" ] }, "PolicyResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "The policy ID", "example": "pol_abc123def456" }, "name": { "type": "string", "description": "Name of the policy", "example": "Data Privacy Policy" }, "description": { "type": "string", "description": "Description of the policy", "example": "This policy outlines how we handle and protect personal data", "nullable": true }, "status": { "type": "string", "description": "Status of the policy", "enum": [ "draft", "published", "needs_review" ], "example": "draft" }, "content": { "type": "array", "description": "Content of the policy as TipTap JSON (array of nodes)", "example": [ { "type": "heading", "attrs": { "level": 2, "textAlign": null }, "content": [ { "type": "text", "text": "Purpose" } ] }, { "type": "paragraph", "attrs": { "textAlign": null }, "content": [ { "type": "text", "text": "Verify workforce integrity and grant the right access at start, revoke at end." } ] } ], "items": { "type": "object", "additionalProperties": true } }, "frequency": { "type": "string", "description": "Review frequency of the policy", "enum": [ "monthly", "quarterly", "yearly" ], "example": "yearly", "nullable": true }, "department": { "type": "string", "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.", "example": "it", "nullable": true }, "isRequiredToSign": { "type": "boolean", "description": "Whether this policy requires a signature", "example": true }, "signedBy": { "type": "array", "description": "List of user IDs who have signed this policy", "example": [ "usr_123", "usr_456" ], "items": { "type": "string" } }, "reviewDate": { "format": "date-time", "type": "string", "description": "Review date for the policy", "example": "2024-12-31T00:00:00.000Z", "nullable": true }, "isArchived": { "type": "boolean", "description": "Whether this policy is archived", "example": false }, "archivedAt": { "format": "date-time", "type": "string", "description": "When the policy was archived by framework sync", "example": "2024-02-01T00:00:00.000Z", "nullable": true }, "createdAt": { "format": "date-time", "type": "string", "description": "When the policy was created", "example": "2024-01-01T00:00:00.000Z" }, "updatedAt": { "format": "date-time", "type": "string", "description": "When the policy was last updated", "example": "2024-01-15T00:00:00.000Z" }, "lastArchivedAt": { "format": "date-time", "type": "string", "description": "When the policy was last archived", "example": "2024-02-01T00:00:00.000Z", "nullable": true }, "lastPublishedAt": { "format": "date-time", "type": "string", "description": "When the policy was last published", "example": "2024-01-10T00:00:00.000Z", "nullable": true }, "organizationId": { "type": "string", "description": "Organization ID this policy belongs to", "example": "org_abc123def456" }, "assigneeId": { "type": "string", "description": "ID of the user assigned to this policy", "example": "usr_abc123def456", "nullable": true }, "approverId": { "type": "string", "description": "ID of the user who approved this policy", "example": "usr_xyz789abc123", "nullable": true }, "policyTemplateId": { "type": "string", "description": "ID of the policy template this policy is based on", "example": "plt_template123", "nullable": true } }, "required": [ "id", "name", "description", "status", "content", "frequency", "department", "isRequiredToSign", "signedBy", "reviewDate", "isArchived", "archivedAt", "createdAt", "updatedAt", "lastArchivedAt", "lastPublishedAt", "organizationId", "assigneeId", "approverId", "policyTemplateId" ] }, "RequestPolicyPdfUploadUrlDto": { "type": "object", "properties": { "versionId": { "type": "string", "description": "Optional version ID to attach the PDF to. Omit to attach the PDF at the policy level (legacy path).", "example": "pv_abc123def456" }, "fileName": { "type": "string", "description": "Filename of the PDF (e.g., \"policy-v1.pdf\"). Non-alphanumeric characters will be replaced with underscores when storing in S3.", "example": "acceptable-use-v1.pdf" }, "fileType": { "type": "string", "description": "MIME type of the file. Must be \"application/pdf\" — the presigned URL enforces this at upload time.", "example": "application/pdf" } }, "required": [ "fileName", "fileType" ] }, "PolicyPdfUploadUrlResponseDto": { "type": "object", "properties": { "uploadUrl": { "type": "string", "description": "Presigned S3 URL. PUT the raw file bytes to this URL with header `Content-Type: application/pdf`. No auth headers required — the signature is in the URL.", "example": "https://bucket.s3.us-east-1.amazonaws.com/org_xxx/policies/pol_xxx/...?X-Amz-Signature=..." }, "s3Key": { "type": "string", "description": "The S3 key the file will land at. Pass this back to the confirm endpoint after a successful upload.", "example": "org_abc/policies/pol_xyz/1735000000-acceptable-use-v1.pdf" }, "expiresIn": { "type": "number", "description": "Seconds until the presigned URL expires.", "example": 900 } }, "required": [ "uploadUrl", "s3Key", "expiresIn" ] }, "ConfirmPolicyPdfUploadedDto": { "type": "object", "properties": { "s3Key": { "type": "string", "description": "The exact s3Key returned by the upload-url endpoint.", "example": "org_abc/policies/pol_xyz/1735000000-acceptable-use-v1.pdf" }, "versionId": { "type": "string", "description": "Optional version ID — must match the versionId passed to the upload-url endpoint. Omit if attaching at the policy level.", "example": "pv_abc123def456" } }, "required": [ "s3Key" ] }, "CreatePolicyDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the policy", "example": "Data Privacy Policy" }, "description": { "type": "string", "description": "Description of the policy", "example": "This policy outlines how we handle and protect personal data" }, "status": { "type": "string", "description": "Status of the policy", "enum": [ "draft", "published", "needs_review" ], "example": "draft" }, "content": { "type": "array", "description": "Content of the policy as TipTap JSON (array of nodes)", "example": [ { "type": "heading", "attrs": { "level": 2, "textAlign": null }, "content": [ { "type": "text", "text": "Purpose" } ] }, { "type": "paragraph", "attrs": { "textAlign": null }, "content": [ { "type": "text", "text": "Verify workforce integrity and grant the right access at start, revoke at end." } ] } ], "items": { "type": "object", "additionalProperties": true } }, "frequency": { "type": "string", "description": "Review frequency of the policy", "enum": [ "monthly", "quarterly", "yearly" ], "example": "yearly" }, "department": { "type": "string", "description": "Department this policy applies to. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "example": "it", "maxLength": 64 }, "isRequiredToSign": { "type": "boolean", "description": "Whether this policy requires a signature", "example": true }, "reviewDate": { "type": "string", "description": "Review date for the policy", "example": "2024-12-31T00:00:00.000Z" }, "assigneeId": { "type": "string", "description": "ID of the user assigned to this policy", "example": "usr_abc123def456" }, "approverId": { "type": "string", "description": "ID of the user who approved this policy", "example": "usr_xyz789abc123" }, "policyTemplateId": { "type": "string", "description": "ID of the policy template this policy is based on", "example": "plt_template123" }, "signedBy": { "type": "array", "description": "List of user IDs who have signed this policy", "example": [ "usr_123", "usr_456" ], "items": { "type": "string" } } }, "required": [ "name", "content" ] }, "UpdatePolicyDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the policy", "example": "Data Privacy Policy" }, "description": { "type": "string", "description": "Description of the policy", "example": "This policy outlines how we handle and protect personal data" }, "status": { "type": "string", "description": "Status of the policy", "enum": [ "draft", "published", "needs_review" ], "example": "draft" }, "content": { "type": "array", "description": "Content of the policy as TipTap JSON (array of nodes)", "example": [ { "type": "heading", "attrs": { "level": 2, "textAlign": null }, "content": [ { "type": "text", "text": "Purpose" } ] }, { "type": "paragraph", "attrs": { "textAlign": null }, "content": [ { "type": "text", "text": "Verify workforce integrity and grant the right access at start, revoke at end." } ] } ], "items": { "type": "object", "additionalProperties": true } }, "frequency": { "type": "string", "description": "Review frequency of the policy", "enum": [ "monthly", "quarterly", "yearly" ], "example": "yearly" }, "department": { "type": "string", "description": "Department this policy applies to. Built-in values: none, admin, gov, hr, it, itsm, qms. Custom department names are also accepted.", "example": "it", "maxLength": 64 }, "isRequiredToSign": { "type": "boolean", "description": "Whether this policy requires a signature", "example": true }, "reviewDate": { "type": "string", "description": "Review date for the policy", "example": "2024-12-31T00:00:00.000Z" }, "assigneeId": { "type": "string", "description": "ID of the user assigned to this policy", "example": "usr_abc123def456" }, "approverId": { "type": "string", "description": "ID of the user who approved this policy", "example": "usr_xyz789abc123" }, "policyTemplateId": { "type": "string", "description": "ID of the policy template this policy is based on", "example": "plt_template123" }, "signedBy": { "type": "array", "description": "List of user IDs who have signed this policy", "example": [ "usr_123", "usr_456" ], "items": { "type": "string" } }, "isArchived": { "type": "boolean", "description": "Whether to archive this policy", "example": false }, "displayFormat": { "type": "string", "description": "Display format for this policy", "enum": [ "EDITOR", "PDF" ], "example": "EDITOR" } } }, "CreatePolicyVersionDto": { "type": "object", "properties": { "sourceVersionId": { "type": "string", "description": "Optional version ID to base the new version on", "example": "pv_abc123def456" }, "changelog": { "type": "string", "description": "Optional changelog to associate with the new version", "example": "Initial draft for quarterly updates" } } }, "UpdateVersionContentDto": { "type": "object", "properties": { "content": { "type": "array", "description": "Content of the policy version as TipTap JSON (array of nodes)", "example": [ { "type": "heading", "attrs": { "level": 2, "textAlign": null }, "content": [ { "type": "text", "text": "Purpose" } ] } ], "items": { "type": "object", "additionalProperties": true } } }, "required": [ "content" ] }, "PublishVersionDto": { "type": "object", "properties": { "versionId": { "type": "string", "description": "Version ID to publish. PASS THIS after update-version to publish your edits — omitting it publishes stale draftContent (loses your changes).", "example": "pv_abc123def456" }, "setAsActive": { "type": "boolean", "description": "Whether to set this version as the active version", "example": true }, "changelog": { "type": "string", "description": "Optional changelog to associate with the published version", "example": "Updated access controls section" } } }, "SubmitForApprovalDto": { "type": "object", "properties": { "approverId": { "type": "string", "description": "Member ID of the approver", "example": "mem_abc123def456" } }, "required": [ "approverId" ] }, "AISuggestPolicyRequestDto": { "type": "object", "properties": { "instructions": { "type": "string", "description": "User instructions about what changes to make to the policy", "example": "Update the data retention section to specify a 7-year retention period" }, "chatHistory": { "type": "array", "description": "Chat history for context (array of messages with role and content)", "example": [ { "role": "user", "content": "Update the data retention policy" }, { "role": "assistant", "content": "I can help with that..." } ], "items": { "type": "object", "properties": { "role": { "type": "string", "enum": [ "user", "assistant" ] }, "content": { "type": "string" } } } } }, "required": [ "instructions" ] }, "ExchangeCodeDto": { "type": "object", "properties": {} }, "AuthCodeDto": { "type": "object", "properties": {} }, "RegisterDeviceDto": { "type": "object", "properties": {} }, "CheckInDto": { "type": "object", "properties": {} }, "TaskResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the task", "example": "tsk_abc123def456" }, "title": { "type": "string", "description": "Task title", "example": "Implement user authentication" }, "description": { "type": "string", "description": "Task description", "example": "Add OAuth 2.0 authentication to the platform" }, "status": { "type": "string", "description": "Task status", "example": "in_progress", "enum": [ "todo", "in_progress", "done", "blocked" ] }, "createdAt": { "format": "date-time", "type": "string", "description": "Task creation timestamp", "example": "2024-01-15T10:30:00Z" }, "updatedAt": { "format": "date-time", "type": "string", "description": "Task last update timestamp", "example": "2024-01-15T10:30:00Z" }, "taskTemplateId": { "type": "object", "description": "Task template ID", "example": "frk_tt_68406e353df3bc002994acef", "nullable": true }, "integrationScheduleFrequency": { "type": "string", "description": "Cadence for running the integration check attached to this task", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly" ], "example": "daily" }, "integrationLastRunAt": { "type": "object", "description": "Last successful integration check run timestamp", "nullable": true } }, "required": [ "id", "title", "status", "createdAt", "updatedAt", "integrationScheduleFrequency" ] }, "UpdateAutomationDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Automation name", "example": "GitHub Security Check - Evidence Collection" }, "description": { "type": "string", "description": "Automation description", "example": "Collects evidence about GitHub repository security settings" }, "isEnabled": { "type": "boolean", "description": "Whether the automation is enabled" }, "evaluationCriteria": { "type": "string", "description": "Evaluation criteria for the automation" }, "scheduleFrequency": { "type": "string", "enum": [ "daily", "weekly", "monthly", "quarterly", "yearly" ], "description": "Automation schedule cadence" } } }, "CreateVersionDto": { "type": "object", "properties": { "version": { "type": "number", "description": "Version number for this published script", "example": 1 }, "scriptKey": { "type": "string", "description": "S3 key of the already-generated & published automation script (returned by the publish step).", "example": "org_abc123/tsk_abc123/aut_abc123.v1.js" }, "changelog": { "type": "string", "description": "Optional changelog describing this version" } }, "required": [ "version", "scriptKey" ] }, "AuthorResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "User ID", "example": "usr_abc123def456" }, "name": { "type": "string", "description": "User name", "example": "John Doe" }, "email": { "type": "string", "description": "User email", "example": "john.doe@company.com" }, "image": { "type": "object", "description": "User profile image URL", "example": "https://example.com/avatar.jpg", "nullable": true }, "deactivated": { "type": "boolean", "description": "Whether the user is deactivated", "example": false, "nullable": true } }, "required": [ "id", "name", "email", "image", "deactivated" ] }, "AttachmentMetadataDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the attachment", "example": "att_abc123def456" }, "name": { "type": "string", "description": "Original filename", "example": "document.pdf" }, "type": { "type": "string", "description": "File type/MIME type", "example": "application/pdf" }, "createdAt": { "format": "date-time", "type": "string", "description": "Upload timestamp", "example": "2024-01-15T10:30:00Z" } }, "required": [ "id", "name", "type", "createdAt" ] }, "CommentResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the comment", "example": "cmt_abc123def456" }, "content": { "type": "string", "description": "Comment content", "example": "This task needs to be completed by end of week" }, "author": { "description": "Comment author information", "allOf": [ { "$ref": "#/components/schemas/AuthorResponseDto" } ] }, "attachments": { "description": "Attachment metadata (URLs generated on-demand)", "type": "array", "items": { "$ref": "#/components/schemas/AttachmentMetadataDto" } }, "createdAt": { "format": "date-time", "type": "string", "description": "Comment creation timestamp", "example": "2024-01-15T10:30:00Z" } }, "required": [ "id", "content", "author", "attachments", "createdAt" ] }, "CreateCommentDto": { "type": "object", "properties": { "content": { "type": "string", "description": "Content of the comment", "example": "This task needs to be completed by end of week", "maxLength": 2000 }, "entityId": { "type": "string", "description": "ID of the entity to comment on", "example": "tsk_abc123def456" }, "entityType": { "type": "string", "description": "Type of entity being commented on", "enum": [ "task", "vendor", "risk", "policy", "finding" ], "example": "task" }, "contextUrl": { "type": "string", "description": "Optional URL of the page where the comment was created, used for deep-linking in notifications", "example": "https://app.trycomp.ai/org_abc123/vendors/vnd_abc123?taskItemId=tki_abc123#task-items", "maxLength": 2048 }, "attachments": { "description": "Optional attachments to include with the comment", "type": "array", "items": { "$ref": "#/components/schemas/UploadAttachmentDto" } }, "userId": { "type": "string", "description": "User ID of the comment author (required for API key auth, ignored for JWT auth)", "example": "usr_abc123def456" } }, "required": [ "content", "entityId", "entityType" ] }, "UpdateCommentDto": { "type": "object", "properties": { "content": { "type": "string", "description": "Updated content of the comment", "example": "This task needs to be completed by end of week (updated)", "maxLength": 2000 }, "contextUrl": { "type": "string", "description": "Optional URL of the page where the comment was updated, used for deep-linking in notifications", "example": "https://app.trycomp.ai/org_abc123/risk/rsk_abc123?taskItemId=tki_abc123#task-items", "maxLength": 2048 }, "userId": { "type": "string", "description": "User ID of the comment author (required for API key auth, ignored for JWT auth)", "example": "usr_abc123def456" } }, "required": [ "content" ] }, "DomainVerificationDto": { "type": "object", "properties": { "type": { "type": "string", "description": "Verification type (e.g., TXT, CNAME)" }, "domain": { "type": "string", "description": "Domain for verification" }, "value": { "type": "string", "description": "Verification value" }, "reason": { "type": "string", "description": "Reason for verification status" } }, "required": [ "type", "domain", "value" ] }, "DomainStatusResponseDto": { "type": "object", "properties": { "domain": { "type": "string", "description": "The domain name" }, "verified": { "type": "boolean", "description": "Whether the domain is verified" }, "verification": { "description": "Verification records for the domain", "type": "array", "items": { "$ref": "#/components/schemas/DomainVerificationDto" } }, "cnameTarget": { "type": "string", "description": "The recommended CNAME target for this domain from Vercel", "example": "3a69a5bb27875189.vercel-dns-016.com" }, "misconfigured": { "type": "object", "description": "Whether Vercel's /v6/domains/{d}/config call reports the domain as misconfigured. Null when Vercel could not be reached.", "nullable": true } }, "required": [ "domain", "verified" ] }, "UploadComplianceResourceDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the compliance resource", "example": "org_6914cd0e16e4c7dccbb54426" }, "framework": { "type": "string", "description": "Native compliance framework identifier", "enum": [ "iso_27001", "iso_42001", "gdpr", "hipaa", "soc2_type1", "soc2_type2", "soc3", "pci_dss", "nen_7510", "iso_9001", "pipeda", "ccpa" ], "example": "iso_27001" }, "customFrameworkId": { "type": "string", "description": "Org-authored custom framework ID (alternative to `framework`)", "example": "cfrm_6914cd0e16e4c7dccbb54426" }, "fileName": { "type": "string", "description": "Original file name (PDF only)", "example": "iso-27001-certificate.pdf" }, "fileType": { "type": "string", "description": "MIME type of the file", "example": "application/pdf" }, "fileData": { "type": "string", "description": "Base64 encoded PDF content" } }, "required": [ "organizationId", "fileName", "fileType", "fileData" ] }, "ComplianceResourceResponseDto": { "type": "object", "properties": { "framework": { "type": "string", "enum": [ "iso_27001", "iso_42001", "gdpr", "hipaa", "soc2_type1", "soc2_type2", "soc3", "pci_dss", "nen_7510", "iso_9001", "pipeda", "ccpa" ], "description": "Set for native-framework certificates; null for custom ones", "nullable": true }, "customFrameworkId": { "type": "object", "description": "Set for custom-framework certificates; null for native ones", "nullable": true }, "fileName": { "type": "string" }, "fileSize": { "type": "number", "description": "File size in bytes" }, "updatedAt": { "type": "string", "description": "ISO timestamp when the certificate was last updated" } }, "required": [ "framework", "customFrameworkId", "fileName", "fileSize", "updatedAt" ] }, "ComplianceResourceSignedUrlDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the compliance resource", "example": "org_6914cd0e16e4c7dccbb54426" }, "framework": { "type": "string", "description": "Native compliance framework identifier", "enum": [ "iso_27001", "iso_42001", "gdpr", "hipaa", "soc2_type1", "soc2_type2", "soc3", "pci_dss", "nen_7510", "iso_9001", "pipeda", "ccpa" ], "example": "iso_27001" }, "customFrameworkId": { "type": "string", "description": "Org-authored custom framework ID (alternative to `framework`)", "example": "cfrm_6914cd0e16e4c7dccbb54426" } }, "required": [ "organizationId" ] }, "ComplianceResourceUrlResponseDto": { "type": "object", "properties": { "signedUrl": { "type": "string" }, "fileName": { "type": "string" }, "fileSize": { "type": "number", "description": "File size in bytes" } }, "required": [ "signedUrl", "fileName", "fileSize" ] }, "ListComplianceResourcesDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the compliance resources", "example": "org_6914cd0e16e4c7dccbb54426" } }, "required": [ "organizationId" ] }, "UploadTrustDocumentDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the document", "example": "org_6914cd0e16e4c7dccbb54426" }, "fileName": { "type": "string", "description": "Original file name", "example": "security-overview.pdf" }, "fileType": { "type": "string", "description": "MIME type (optional)", "example": "application/pdf" }, "fileData": { "type": "string", "description": "Base64-encoded file contents (no data URL prefix)" }, "description": { "type": "string", "description": "Optional description shown in the trust portal", "example": "Overview of our security program" } }, "required": [ "organizationId", "fileName", "fileData" ] }, "TrustDocumentResponseDto": { "type": "object", "properties": { "id": { "type": "string", "example": "tdoc_abc123" }, "name": { "type": "string", "example": "security-overview.pdf" }, "description": { "type": "object", "example": "Overview of our security program" }, "createdAt": { "type": "string", "example": "2026-01-02T10:15:00.000Z" }, "updatedAt": { "type": "string", "example": "2026-01-02T10:15:00.000Z" } }, "required": [ "id", "name", "createdAt", "updatedAt" ] }, "TrustDocumentSignedUrlDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the document", "example": "org_6914cd0e16e4c7dccbb54426" } }, "required": [ "organizationId" ] }, "TrustDocumentUrlResponseDto": { "type": "object", "properties": { "signedUrl": { "type": "string" }, "fileName": { "type": "string" } }, "required": [ "signedUrl", "fileName" ] }, "DeleteTrustDocumentDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the document", "example": "org_6914cd0e16e4c7dccbb54426" } }, "required": [ "organizationId" ] }, "UpdateAllowedEmailsDto": { "type": "object", "properties": { "emails": { "description": "Email addresses that bypass NDA signing for trust portal access. Replaces the full list; send an empty array to clear it.", "example": [ "person@example.com" ], "type": "array", "items": { "type": "string" } } }, "required": [ "emails" ] }, "UploadCustomFrameworkBadgeDto": { "type": "object", "properties": { "customFrameworkId": { "type": "string", "description": "Org-authored custom framework ID the badge belongs to", "example": "cfrm_6914cd0e16e4c7dccbb54426" }, "fileName": { "type": "string", "description": "Original file name (PNG, JPEG, or WebP)", "example": "acme-framework-badge.png" }, "fileType": { "type": "string", "description": "MIME type of the image", "example": "image/png" }, "fileData": { "type": "string", "description": "Base64 encoded image content (PNG/JPEG/WebP, max 256KB decoded)" } }, "required": [ "customFrameworkId", "fileName", "fileType", "fileData" ] }, "CustomFrameworkBadgeResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" }, "badgeUrl": { "type": "string", "description": "Signed URL to the uploaded badge for immediate display" } }, "required": [ "success", "badgeUrl" ] }, "CreateAccessRequestDto": { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" }, "company": { "type": "string" }, "jobTitle": { "type": "string" }, "purpose": { "type": "string" }, "requestedDurationDays": { "type": "number", "minimum": 1 } }, "required": [ "name", "email" ] }, "ApproveAccessRequestDto": { "type": "object", "properties": { "durationDays": { "type": "number", "minimum": 1 } } }, "DenyAccessRequestDto": { "type": "object", "properties": { "reason": { "type": "string" } }, "required": [ "reason" ] }, "RevokeGrantDto": { "type": "object", "properties": { "reason": { "type": "string" } }, "required": [ "reason" ] }, "ReclaimAccessDto": { "type": "object", "properties": { "email": { "type": "string" } }, "required": [ "email" ] }, "CreateFindingDto": { "type": "object", "properties": { "taskId": { "type": "string", "description": "Task ID" }, "evidenceSubmissionId": { "type": "string", "description": "Evidence submission ID" }, "evidenceFormType": { "type": "string", "description": "Evidence form type", "enum": [ "board-meeting", "it-leadership-meeting", "risk-committee-meeting", "meeting", "access-request", "whistleblower-report", "penetration-test", "rbac-matrix", "infrastructure-inventory", "employee-performance-evaluation", "network-diagram", "tabletop-exercise", "account-types" ] }, "policyId": { "type": "string", "description": "Policy ID" }, "vendorId": { "type": "string", "description": "Vendor ID" }, "riskId": { "type": "string", "description": "Risk ID" }, "memberId": { "type": "string", "description": "Member ID (person this finding targets)" }, "deviceId": { "type": "string", "description": "Device ID" }, "area": { "type": "string", "description": "Broad area when the finding is not tied to a specific item", "enum": [ "people", "documents", "compliance", "risks", "vendors", "policies", "other" ] }, "type": { "type": "string", "description": "Framework this finding is attributed to (must match a framework the organization has enabled)", "enum": [ "soc2", "iso27001", "pci_dss", "hipaa", "gdpr", "iso9001", "iso42001" ], "default": "soc2" }, "severity": { "type": "string", "description": "Severity", "enum": [ "low", "medium", "high", "critical" ], "default": "medium" }, "content": { "type": "string", "description": "Finding content/message", "maxLength": 5000 } }, "required": [ "type", "content" ] }, "UpdateFindingDto": { "type": "object", "properties": { "status": { "type": "string", "description": "Finding status", "enum": [ "open", "ready_for_review", "needs_revision", "closed" ] }, "type": { "type": "string", "description": "Finding type", "enum": [ "soc2", "iso27001", "pci_dss", "hipaa", "gdpr", "iso9001", "iso42001" ] }, "severity": { "type": "string", "description": "Severity", "enum": [ "low", "medium", "high", "critical" ] }, "content": { "type": "string", "description": "Finding content/message", "maxLength": 5000 }, "revisionNote": { "type": "object", "description": "Auditor note when requesting revision", "maxLength": 2000, "nullable": true } } }, "CreateRoleDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the custom role", "example": "Compliance Lead", "minLength": 2, "maxLength": 50 }, "permissions": { "type": "object", "description": "Permissions for the role. Keys are resource names, values are arrays of allowed actions.", "example": { "control": [ "read", "update" ], "policy": [ "read", "update" ], "risk": [ "read" ] } }, "obligations": { "type": "object", "description": "Obligations for the role. Boolean flags for requirements like compliance.", "example": { "compliance": true } } }, "required": [ "name", "permissions" ] }, "BuiltInObligationsBody": { "type": "object", "properties": { "compliance": { "type": "boolean", "description": "Whether the role must complete compliance tasks.", "example": false } } }, "UpdateBuiltInObligationsDto": { "type": "object", "properties": { "obligations": { "description": "Obligations override for the built-in role.", "example": { "compliance": false }, "allOf": [ { "$ref": "#/components/schemas/BuiltInObligationsBody" } ] } }, "required": [ "obligations" ] }, "UpdateRoleDto": { "type": "object", "properties": { "name": { "type": "string", "description": "New name for the custom role", "example": "Compliance Manager", "minLength": 2, "maxLength": 50 }, "permissions": { "type": "object", "description": "Updated permissions for the role. Keys are resource names, values are arrays of allowed actions.", "example": { "control": [ "read", "update", "delete" ], "policy": [ "read", "update", "delete" ], "risk": [ "read", "update" ] } }, "obligations": { "type": "object", "description": "Updated obligations for the role.", "example": { "compliance": true } } } }, "TriggerAutoAnswerResponseDto": { "type": "object", "properties": { "questionnaireId": { "type": "string", "description": "The questionnaire whose answers are being generated.", "example": "qst_6a179d26c4ad2c1c816ee16d" }, "runId": { "type": "string", "description": "Background run identifier for the generation job (Trigger.dev run id).", "example": "run_cmpotsz153eac0ultc1ya87f5" }, "publicAccessToken": { "type": "string", "description": "Token for tracking the run via Trigger.dev realtime. Optional — MCP/agent clients should poll GET /v1/questionnaire/:id instead.", "example": "pat_..." }, "status": { "type": "string", "description": "Always 'generating' on a successful trigger. Poll GET /v1/questionnaire/:id; answers are ready once answeredQuestions equals totalQuestions.", "example": "generating" }, "totalQuestions": { "type": "number", "description": "Total number of questions in the questionnaire.", "example": 23 }, "answeredQuestions": { "type": "number", "description": "Questions already answered at the moment generation was triggered (answers without a value are (re)generated).", "example": 0 }, "message": { "type": "string", "description": "Human-readable summary of what to do next.", "example": "Generating answers for 23 questions. Poll GET /v1/questionnaire/qst_... until answeredQuestions reaches totalQuestions." } }, "required": [ "questionnaireId", "runId", "publicAccessToken", "status", "totalQuestions", "answeredQuestions", "message" ] }, "ParseQuestionnaireDto": { "type": "object", "properties": {} }, "AnswerSingleQuestionDto": { "type": "object", "properties": { "question": { "type": "string", "description": "Security questionnaire question to answer.", "example": "Do you encrypt customer data at rest?" }, "questionIndex": { "type": "number", "description": "Zero-based index of this question in the questionnaire or page batch.", "example": 0, "minimum": 0 }, "totalQuestions": { "type": "number", "description": "Total number of questions in the current questionnaire or page batch.", "example": 12, "minimum": 1 }, "organizationId": { "type": "string", "description": "Organization ID for validation. The API uses the authenticated active organization and overwrites this value server-side.", "example": "org_abc123" }, "questionnaireId": { "type": "string", "description": "Optional questionnaire record to save the generated answer into. Omit for webpage-only answer generation.", "example": "qst_abc123" } }, "required": [ "question", "questionIndex", "totalQuestions", "organizationId" ] }, "SaveAnswerDto": { "type": "object", "properties": {} }, "DeleteAnswerDto": { "type": "object", "properties": {} }, "ExportByIdDto": { "type": "object", "properties": {} }, "UploadAndParseDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID (set automatically from auth context).", "example": "org_abc123" }, "fileName": { "type": "string", "description": "Name of the questionnaire file.", "example": "vendor-security-questionnaire.xlsx" }, "fileType": { "type": "string", "description": "MIME type of the file (PDF, image, XLSX, CSV, TXT).", "example": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, "fileData": { "type": "string", "description": "Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign and pass `s3Key` — base64 through an LLM is impractically slow. Provide exactly one of fileData or s3Key." }, "s3Key": { "type": "string", "description": "Key of a file already uploaded via /v1/uploads/presign (purpose=questionnaire). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key.", "example": "org_abc/uploads/questionnaire/1735000000-questionnaire.xlsx" } }, "required": [ "organizationId", "fileName", "fileType" ] }, "ExportQuestionnaireDto": { "type": "object", "properties": {} }, "AutoAnswerDto": { "type": "object", "properties": {} }, "SaveManualAnswerDto": { "type": "object", "properties": {} }, "UploadDocumentDto": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "Organization ID that owns the document" }, "fileName": { "type": "string", "description": "File name", "example": "rbac-matrix.xlsx" }, "fileType": { "type": "string", "description": "MIME type of the file", "example": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, "fileData": { "type": "string", "description": "Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign (purpose=document) and pass `s3Key` — base64 through an LLM is impractically slow and times out. Provide exactly one of fileData or s3Key." }, "s3Key": { "type": "string", "description": "Key of a file already uploaded via /v1/uploads/presign (purpose=document). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key." }, "description": { "type": "string", "description": "Optional description" } }, "required": [ "organizationId", "fileName", "fileType" ] }, "ProcessDocumentsDto": { "type": "object", "properties": {} }, "DeleteManualAnswerDto": { "type": "object", "properties": {} }, "DeleteAllManualAnswersDto": { "type": "object", "properties": {} }, "SaveSOAAnswerDto": { "type": "object", "properties": {} }, "AutoFillSOADto": { "type": "object", "properties": {} }, "CreateSOADocumentDto": { "type": "object", "properties": {} }, "EnsureSOASetupDto": { "type": "object", "properties": {} }, "ApproveSOADocumentDto": { "type": "object", "properties": {} }, "DeclineSOADocumentDto": { "type": "object", "properties": {} }, "SubmitSOAForApprovalDto": { "type": "object", "properties": {} }, "ExportSOADocumentDto": { "type": "object", "properties": {} }, "EnsureIsmsSetupDto": { "type": "object", "properties": { "frameworkId": { "type": "string", "description": "ID of the framework to scope the ISMS setup to", "example": "frk_abc123def456" } }, "required": [ "frameworkId" ] }, "LinkIsmsControlsDto": { "type": "object", "properties": { "controlIds": { "description": "IDs of the controls to link to the ISMS document", "example": [ "ctl_abc123def456", "ctl_ghi789jkl012" ], "type": "array", "items": { "type": "string" } } }, "required": [ "controlIds" ] }, "SubmitIsmsForApprovalDto": { "type": "object", "properties": { "approverId": { "type": "string", "description": "Member ID of the approver to submit the ISMS to", "example": "mem_abc123def456" } }, "required": [ "approverId" ] }, "ExportIsmsDocumentDto": { "type": "object", "properties": { "format": { "type": "string", "description": "File format to export the ISMS document as", "enum": [ "pdf", "docx" ], "example": "pdf" }, "versionId": { "type": "string", "description": "Published version to export. Omit to export the document's current published version (or the working draft if it has never been published); provide a version id to download exactly what was approved at that version." } }, "required": [ "format" ] }, "GenerateAllDto": { "type": "object", "properties": { "frameworkId": { "type": "string", "description": "ID of the framework to generate all ISMS profile documents for", "example": "frk_abc123def456" } }, "required": [ "frameworkId" ] }, "TaskItemAssigneeDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Member ID" }, "user": { "type": "object", "description": "User information" } }, "required": [ "id", "user" ] }, "TaskItemCreatorDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Member ID" }, "user": { "type": "object", "description": "User information" } }, "required": [ "id", "user" ] }, "TaskItemUpdaterDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Member ID" }, "user": { "type": "object", "description": "User information" } }, "required": [ "id", "user" ] }, "TaskItemResponseDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Task item ID", "example": "tski_abc123def456" }, "title": { "type": "string", "description": "Task title", "example": "Review vendor contract" }, "description": { "type": "object", "description": "Task description", "nullable": true }, "status": { "type": "string", "description": "Task status", "enum": [ "todo", "in_progress", "in_review", "done", "canceled" ] }, "priority": { "type": "string", "description": "Task priority", "enum": [ "urgent", "high", "medium", "low" ] }, "entityId": { "type": "string", "description": "ID of the entity this task belongs to" }, "entityType": { "type": "string", "description": "Type of entity", "enum": [ "vendor", "risk" ] }, "assignee": { "description": "Assignee information", "nullable": true, "type": "object", "allOf": [ { "$ref": "#/components/schemas/TaskItemAssigneeDto" } ] }, "createdBy": { "description": "Creator information", "allOf": [ { "$ref": "#/components/schemas/TaskItemCreatorDto" } ] }, "updatedBy": { "description": "Last updater information", "nullable": true, "type": "object", "allOf": [ { "$ref": "#/components/schemas/TaskItemUpdaterDto" } ] }, "createdAt": { "format": "date-time", "type": "string", "description": "Creation timestamp" }, "updatedAt": { "format": "date-time", "type": "string", "description": "Last update timestamp" } }, "required": [ "id", "title", "description", "status", "priority", "entityId", "entityType", "assignee", "createdBy", "updatedBy", "createdAt", "updatedAt" ] }, "PaginationMetaDto": { "type": "object", "properties": { "page": { "type": "number", "description": "Current page number" }, "limit": { "type": "number", "description": "Number of items per page" }, "total": { "type": "number", "description": "Total number of items" }, "totalPages": { "type": "number", "description": "Total number of pages" }, "hasNextPage": { "type": "boolean", "description": "Whether there are more pages" }, "hasPrevPage": { "type": "boolean", "description": "Whether there are previous pages" } }, "required": [ "page", "limit", "total", "totalPages", "hasNextPage", "hasPrevPage" ] }, "PaginatedTaskItemResponseDto": { "type": "object", "properties": { "data": { "description": "Array of task items", "type": "array", "items": { "$ref": "#/components/schemas/TaskItemResponseDto" } }, "meta": { "description": "Pagination metadata", "allOf": [ { "$ref": "#/components/schemas/PaginationMetaDto" } ] } }, "required": [ "data", "meta" ] }, "CreateTaskItemDto": { "type": "object", "properties": { "title": { "type": "string", "description": "Task title", "example": "Review vendor contract" }, "description": { "type": "string", "description": "Task description" }, "status": { "type": "string", "description": "Task status", "enum": [ "todo", "in_progress", "in_review", "done", "canceled" ], "default": "todo" }, "priority": { "type": "string", "description": "Task priority", "enum": [ "urgent", "high", "medium", "low" ], "default": "medium" }, "entityId": { "type": "string", "description": "ID of the entity this task belongs to" }, "entityType": { "type": "string", "description": "Type of entity", "enum": [ "vendor", "risk" ], "example": "vendor" }, "assigneeId": { "type": "string", "description": "Assignee member ID" } }, "required": [ "title", "entityId", "entityType" ] }, "UpdateTaskItemDto": { "type": "object", "properties": { "title": { "type": "string", "description": "Task title" }, "description": { "type": "string", "description": "Task description" }, "status": { "type": "string", "description": "Task status", "enum": [ "todo", "in_progress", "in_review", "done", "canceled" ] }, "priority": { "type": "string", "description": "Task priority", "enum": [ "urgent", "high", "medium", "low" ] }, "assigneeId": { "type": "object", "description": "Assignee member ID (set to null to unassign)", "nullable": true } } }, "UploadTaskItemAttachmentDto": { "type": "object", "properties": { "fileName": { "type": "string", "description": "Name of the file", "example": "document.pdf", "maxLength": 255 }, "fileType": { "type": "string", "description": "MIME type of the file", "example": "application/pdf" }, "fileData": { "type": "string", "description": "Base64 encoded file data", "example": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==" }, "entityType": { "type": "string", "description": "Type of entity this task item belongs to (vendor or risk)", "enum": [ "vendor", "risk" ], "example": "vendor" }, "entityId": { "type": "string", "description": "ID of the entity this task item belongs to", "example": "vnd_abc123def456" } }, "required": [ "fileName", "fileType", "fileData", "entityType", "entityId" ] }, "SendTrainingCompletionDto": { "type": "object", "properties": { "memberId": { "type": "string", "description": "The member ID who completed training", "example": "mem_abc123" }, "organizationId": { "type": "string", "description": "Organization ID (deprecated — use auth context)", "example": "org_abc123" } }, "required": [ "memberId" ] }, "SendTrainingCompletionResponseDto": { "type": "object", "properties": { "sent": { "type": "boolean", "description": "Whether the email was sent", "example": true }, "reason": { "type": "string", "description": "Reason if email was not sent", "example": "training_not_complete" } }, "required": [ "sent" ] }, "UploadOrgChartDto": { "type": "object", "properties": { "fileName": { "type": "string", "description": "Original file name" }, "fileType": { "type": "string", "description": "MIME type of the file (e.g. image/png)" }, "fileData": { "type": "string", "description": "Base64-encoded file data" } }, "required": [ "fileName", "fileType", "fileData" ] }, "AddFrameworksDto": { "type": "object", "properties": { "frameworkIds": { "description": "Array of framework editor framework IDs to add", "minItems": 1, "type": "array", "items": { "type": "string" } } }, "required": [ "frameworkIds" ] }, "CreateCustomFrameworkDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Framework name", "example": "Internal Controls" }, "description": { "type": "string", "description": "Framework description" }, "version": { "type": "string", "description": "Version", "example": "1.0" } }, "required": [ "name", "description" ] }, "UpdateCustomFrameworkDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Framework name", "example": "Internal Controls" }, "description": { "type": "string", "description": "Framework description" } } }, "CreateCustomRequirementDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Requirement name", "example": "Access Review" }, "identifier": { "type": "string", "description": "Identifier", "example": "10.3" }, "description": { "type": "string", "description": "Description" } }, "required": [ "name", "identifier", "description" ] }, "LinkRequirementsDto": { "type": "object", "properties": { "requirementIds": { "description": "IDs of existing FrameworkEditorRequirement rows to clone into this framework", "type": "array", "items": { "type": "string" } } }, "required": [ "requirementIds" ] }, "LinkControlsDto": { "type": "object", "properties": { "controlIds": { "description": "Existing org Control IDs to map to the requirement on this framework instance", "type": "array", "items": { "type": "string" } } }, "required": [ "controlIds" ] }, "SyncFrameworkDto": { "type": "object", "properties": {} }, "RollbackFrameworkDto": { "type": "object", "properties": {} }, "RequirementMappingDto": { "type": "object", "properties": { "requirementId": { "type": "string", "description": "Platform requirement ID (exactly one of requirementId / customRequirementId must be set)" }, "customRequirementId": { "type": "string", "description": "Org-custom requirement ID (exactly one of requirementId / customRequirementId must be set)" }, "frameworkInstanceId": { "type": "string", "description": "Framework instance ID" } }, "required": [ "frameworkInstanceId" ] }, "CreateControlDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Control name", "example": "Access Control" }, "description": { "type": "string", "description": "Control description", "example": "Manages user access to systems" }, "policyIds": { "description": "Policy IDs to connect", "type": "array", "items": { "type": "string" } }, "taskIds": { "description": "Task IDs to connect", "type": "array", "items": { "type": "string" } }, "requirementMappings": { "description": "Requirement mappings", "type": "array", "items": { "$ref": "#/components/schemas/RequirementMappingDto" } }, "documentTypes": { "type": "array", "description": "Evidence form types to require on this control", "items": { "type": "string", "enum": [ "board_meeting", "it_leadership_meeting", "risk_committee_meeting", "meeting", "access_request", "whistleblower_report", "penetration_test", "rbac_matrix", "infrastructure_inventory", "employee_performance_evaluation", "network_diagram", "tabletop_exercise", "account_types" ] } } }, "required": [ "name", "description" ] }, "LinkPoliciesDto": { "type": "object", "properties": { "policyIds": { "description": "Policy IDs to link to the control", "type": "array", "items": { "type": "string" } } }, "required": [ "policyIds" ] }, "LinkTasksDto": { "type": "object", "properties": { "taskIds": { "description": "Task IDs to link to the control", "type": "array", "items": { "type": "string" } } }, "required": [ "taskIds" ] }, "LinkRequirementMappingDto": { "type": "object", "properties": { "requirementId": { "type": "string", "description": "Platform requirement ID" }, "customRequirementId": { "type": "string", "description": "Org-custom requirement ID" }, "frameworkInstanceId": { "type": "string", "description": "Framework instance ID" } }, "required": [ "frameworkInstanceId" ] }, "LinkRequirementsToControlDto": { "type": "object", "properties": { "requirements": { "description": "Requirement + framework instance pairs to link", "type": "array", "items": { "$ref": "#/components/schemas/LinkRequirementMappingDto" } } }, "required": [ "requirements" ] }, "LinkDocumentTypesDto": { "type": "object", "properties": { "formTypes": { "type": "array", "description": "Evidence form types to require for this control", "items": { "type": "string", "enum": [ "board_meeting", "it_leadership_meeting", "risk_committee_meeting", "meeting", "access_request", "whistleblower_report", "penetration_test", "rbac_matrix", "infrastructure_inventory", "employee_performance_evaluation", "network_diagram", "tabletop_exercise", "account_types" ] } } }, "required": [ "formTypes" ] }, "CreatePenetrationTestDto": { "type": "object", "properties": { "targetUrl": { "type": "string", "description": "Target URL for the penetration test scan", "example": "https://app.example.com" }, "repoUrl": { "type": "string", "description": "Repository URL containing the target application code", "example": "https://github.com/org/repo" }, "additionalContext": { "type": "string", "description": "Free-text context shared with the testing agent, e.g. remediation notes or accepted-by-design explanations from a previous run. Saved per-finding context notes for the same target are appended automatically. Max 4000 characters.", "maxLength": 4000 } }, "required": [ "targetUrl" ] }, "UpsertFindingContextDto": { "type": "object", "properties": { "runId": { "type": "string", "description": "Penetration test run ID the finding belongs to", "example": "pentest-abc123" }, "context": { "type": "string", "description": "Context for the finding, e.g. an accepted-by-design rationale or remediation details. Shared with the testing agent on future scans of the same target. Max 2000 characters.", "example": "Read access to appConfiguration is accepted by design: the collection only holds non-secret bootstrap configuration and write access is restricted to privileged users.", "maxLength": 2000 } }, "required": [ "runId", "context" ] }, "CreateTemplateItemDto": { "type": "object", "properties": { "title": { "type": "string", "description": "Checklist item title", "example": "Collect access badges" }, "description": { "type": "string", "description": "Guidance text for the admin" }, "evidenceRequired": { "type": "boolean", "description": "Whether evidence upload is required" } }, "required": [ "title" ] }, "UpdateTemplateItemDto": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "evidenceRequired": { "type": "boolean" }, "sortOrder": { "type": "number" }, "isEnabled": { "type": "boolean" } } }, "CompleteChecklistItemDto": { "type": "object", "properties": { "notes": { "type": "string", "description": "Optional notes" }, "fileName": { "type": "string", "description": "Evidence file name" }, "fileType": { "type": "string", "description": "Evidence file MIME type" }, "fileData": { "type": "string", "description": "Base64-encoded evidence file. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign (purpose=evidence) and pass `s3Key` — base64 through an LLM is impractically slow and times out. Provide fileData or s3Key (not both)." }, "s3Key": { "type": "string", "description": "Key of an evidence file already uploaded via /v1/uploads/presign (purpose=evidence). The server fetches the bytes from storage — no base64 needed. Provide fileData or s3Key (not both)." } } } } }, "x-speakeasy-timeout": 120000 }