> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mka1.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update the cluster default guardrails

> Replace the default guardrails enforced on every enrolled organization, and switch them on or off for the whole cluster. Organization admins can add rules on top of the cluster default but cannot weaken or remove it. Classifier models must be active in the cluster organization's registry; their calls run and are metered as the cluster organization, so tenants need no access to the model and their budgets are not charged.



## OpenAPI

````yaml https://apigw.mka1.com/speakeasy.json put /api/v1/llm/guardrails/cluster-default
openapi: 3.1.1
info:
  title: MKA1 API
  version: 1.1.0
  description: >-
    The MKA1 API is a RESTful API that provides access to the MKA1 platform.
    Learn how to get started with the API and the TypeScript SDK
    [here](https://mka1.apidocumentation.com/guides/getting-started).
  license:
    name: Proprietary
servers:
  - url: https://apigw.mka1.com
    description: MKA1 API Gateway
  - url: /
    description: Relative server URL (configurable via SDK constructor)
security: []
tags:
  - name: Resource Authorization
    description: >-
      Manage permissions for LLM resources. Create resources, grant/revoke
      permissions, and delete resources. Only resource owners can grant, revoke,
      or delete permissions.
    x-displayName: Resource Authorization
  - name: Embeddings
    description: >-
      Text embedding API endpoints for generating vector representations of
      text. Create semantic embeddings for search, clustering, and similarity
      matching using various embedding models.
    x-displayName: Embeddings
  - name: Feedback
    description: >-
      User feedback API for rating and commenting on chat completions. Collect
      thumbs up/down ratings and detailed feedback to improve model responses
      and track user satisfaction.
    x-displayName: Feedback
  - name: Images
    description: >-
      Image generation API endpoints for creating images from text descriptions.
      Generate images with control over size, quality, and style.
    x-displayName: Images
  - name: MCP Vault
    description: >-
      MCP vault API for storing user-owned MCP server configurations and
      encrypted credentials. Agents reference vault IDs so secrets are resolved
      only at tool execution time.
    x-displayName: MCP Vault
  - name: Speech
    description: >-
      Speech API endpoints for audio processing. Convert text to
      natural-sounding speech (TTS) or transcribe speech to text (STT) in
      different languages.
    x-displayName: Speech
  - name: Usage
    description: >-
      Usage tracking and analytics API for monitoring token consumption, request
      counts, and cost analysis. View detailed statistics per user, model, and
      time period.
    x-displayName: Usage
  - name: Extract
    description: >-
      Structured data extraction API for extracting information from files.
      Define JSON schemas to extract structured data from images, PDFs, and
      documents. Supports reusable schema templates.
    x-displayName: Extract
  - name: Text Classification
    description: >-
      Text classification API for categorizing text into predefined labels. Use
      AI models to classify text content for sentiment analysis, topic
      categorization, and content moderation.
    x-displayName: Text Classification
  - name: Responses
    description: >-
      Agent-powered responses API for creating AI agents with autonomous tool
      usage. Build conversational assistants that can use web search, file
      operations, image generation, code execution, and MCP integrations.
      Supports background processing, streaming, and real-time status tracking.
    x-displayName: Responses
  - name: Files
    description: >-
      File management API for uploading, storing, and managing files with
      automatic expiration and S3 integration. Upload files that can be used
      with Assistants, Vector Stores, and other features. Files are stored in S3
      with metadata tracked in PostgreSQL. Supports automatic cleanup of expired
      files.
    x-displayName: Files
  - name: Vector Stores
    description: >-
      Vector store API for storing and searching documents using embeddings.
      Create vector stores, upload files with automatic chunking and embedding
      generation, and perform semantic search. Files are processed
      asynchronously using Temporal workflows for durability. Supports automatic
      cleanup of expired stores and LanceDB for efficient vector storage.
    x-displayName: Vector Stores
  - name: Conversations
    description: >-
      Conversation management API for storing and retrieving conversation state
      across Response API calls. Create conversations, add items (user messages,
      assistant messages, system messages), and maintain conversation history.
      Supports metadata tracking and multi-turn dialogue state management.
    x-displayName: Conversations
  - name: Guardrails
    description: >-
      AI safety guardrails API for configuring content moderation and security
      policies. Set up ban word lists, prompt injection detection, and system
      prompt leakage prevention. Guardrails apply to all requests from an
      account and can be tested before deployment.
    x-displayName: Guardrails
  - name: Models
    description: >-
      Model listing API for discovering available models. Returns model IDs,
      ownership, and metadata for all registered models in the gateway.
    x-displayName: Models
  - name: Skills
    description: >-
      Skills API for managing versioned bundles of instructions and files
      following the Agent Skills standard. Create, version, and download
      reusable skill packages that include SKILL.md manifests for agent
      environments.
    x-displayName: Skills
  - name: Chat Completions
    description: >-
      **Deprecated: Use the Responses API (`/api/v1/llm/responses`) instead.**
      Chat completion endpoints with support for streaming, tool calls, and
      multiple providers.
    x-deprecated: true
    x-displayName: Chat Completions
  - name: Batches
    x-displayName: Batches
  - name: Evals
    x-displayName: Evals
  - name: Fine-Tuning
    x-displayName: Fine-Tuning
  - name: Memory Stores
    x-displayName: Memory Stores
  - name: Prompts
    x-displayName: Prompts
  - name: API Key
    x-displayName: API Key
  - name: Session
    x-displayName: Session
  - name: Organization
    x-displayName: Organization
  - name: Cluster Admin
    x-displayName: Cluster Admin
  - name: Sessions
    description: Create, inspect, access, and terminate sandbox sessions.
    x-displayName: Sessions
  - name: Browser
    description: >-
      Connect to browser sessions through the gateway port proxy. Browser
      sessions expose a Chrome DevTools Protocol endpoint on port 9222.
    x-displayName: Browser
  - name: Execution
    description: Run shell commands and code inside an existing sandbox session.
    x-displayName: Execution
  - name: Workspace
    description: >-
      Inspect the workspace manifest, transfer files or archives, and download
      generated artifacts.
    x-displayName: Workspace
  - name: Sandbox Usage
    description: >-
      Aggregate sandbox usage statistics across sessions, execution, and
      workspace operations.
    x-displayName: Sandbox Usage
  - name: Sandbox Pricing
    description: >-
      Cluster-admin management of the sandbox compute rate card used for
      budgeted spend.
    x-displayName: Sandbox Pricing
  - name: Sandbox GitHub
    description: >-
      Connect a GitHub account, clone its repositories into sandbox sessions,
      and push branches and open pull requests from a session. The GitHub token
      stays in the sandbox service and never enters a session.
    x-displayName: Sandbox GitHub
  - name: Sandbox Environments
    description: >-
      Save reusable session configuration (repositories, environment variables,
      network access, and a setup script) and run the setup script in a session.
    x-displayName: Sandbox Environments
  - name: Sandbox Connectors
    description: >-
      Connect remote MCP servers (Linear, Notion, Sentry and others) to your
      account so Coding Harness sessions started from an environment that lists
      them can call their tools. The sandbox service keeps each connector's
      credential and never puts it in a session.
    x-displayName: Sandbox Connectors
  - name: Agents
    description: Create and manage reusable agent definitions.
    x-displayName: Agents
  - name: Agent Versions
    description: Inspect an agent's configuration history and roll back to a prior version.
    x-displayName: Agent Versions
  - name: Agent Runs
    description: Execute saved agents and inspect persisted run results.
    x-displayName: Agent Runs
  - name: Agent Connectors
    description: >-
      Connect saved agents to external messaging channels such as Telegram,
      including text, photo, and supported document exchange.
    x-displayName: Agent Connectors
  - name: Agent Schedules
    description: Create and manage scheduled or recurring saved agent runs.
    x-displayName: Agent Schedules
  - name: schema-4_other
    x-displayName: other
  - name: Billing
    x-displayName: Billing
  - name: Budgets
    x-displayName: Budgets
  - name: Settings
    x-displayName: Settings
  - name: Compute Jobs
    x-displayName: Compute Jobs
  - name: Compute Services
    x-displayName: Compute Services
  - name: Compute Catalog
    x-displayName: Compute Catalog
  - name: Compute Volumes
    x-displayName: Compute Volumes
  - name: Compute Pricing
    x-displayName: Compute Pricing
  - name: Compute Secrets
    x-displayName: Compute Secrets
  - name: Compute Usage
    x-displayName: Compute Usage
  - name: Compute Tenants
    x-displayName: Compute Tenants
  - description: Create, list, read, update, and delete repositories.
    name: Repositories
    x-displayName: Repositories
  - name: Tracking Experiments
    description: Create and query tenant experiments.
    x-displayName: Tracking Experiments
  - name: Tracking Runs
    description: Record and retrieve run parameters, metrics, and tags.
    x-displayName: Tracking Runs
  - name: analytics.projects
    x-displayName: Projects
    description: Create, list, rename, and archive analytics projects.
  - name: analytics.keys
    x-displayName: Capture keys
    description: Create and revoke project keys for sending events.
  - name: analytics
    x-displayName: Events
    description: Send events and query event counts or unique visitors.
  - name: analytics.events
    x-displayName: Event search
    description: List individual events with their properties, newest first.
  - name: analytics.visitors
    x-displayName: Visitor search
    description: List visitors by their latest activity, with first and last seen times.
  - name: generators
    x-displayName: generators
  - name: generations
    x-displayName: generations
  - name: formats
    x-displayName: formats
  - description: >-
      Flags, environments, evaluation, and the audit log. Administrative
      operations require a cluster administrator; evaluation uses an
      environment-specific evaluation key.
    name: Feature Flags
    x-displayName: Feature Flags
paths:
  /api/v1/llm/guardrails/cluster-default:
    put:
      tags:
        - Guardrails
      summary: Update the cluster default guardrails
      description: >-
        Replace the default guardrails enforced on every enrolled organization,
        and switch them on or off for the whole cluster. Organization admins can
        add rules on top of the cluster default but cannot weaken or remove it.
        Classifier models must be active in the cluster organization's registry;
        their calls run and are metered as the cluster organization, so tenants
        need no access to the model and their budgets are not charged.
      operationId: updateClusterDefaultGuardrails
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateClusterDefaultGuardrailsRequest'
            example:
              enabled: true
              guardrails:
                - mode: prompt_injection
                  enabled: true
                  config:
                    threshold: 0.7
                - mode: leakage
                  enabled: true
                  config:
                    threshold: 0.7
                - mode: classifier
                  enabled: true
                  config:
                    model: meetkai:custom-classifier
                    prompt: >-
                      Block content that expresses hate toward people based on a
                      protected characteristic, threatens or glorifies violence,
                      is sexually explicit or sexualizes minors, or encourages
                      or instructs self-harm. Allow neutral educational, news,
                      medical and support discussion of these topics.
                    on_error: fail_closed
                    rejection_message: >-
                      This request is not allowed by your organization's content
                      policy.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterDefaultGuardrailsResponse'
              example:
                object: guardrails_cluster_default
                enabled: true
                guardrails:
                  - mode: prompt_injection
                    enabled: true
                    config:
                      threshold: 0.7
                  - mode: leakage
                    enabled: true
                    config:
                      threshold: 0.7
                  - mode: classifier
                    enabled: true
                    config:
                      model: meetkai:custom-classifier
                      prompt: >-
                        Block content that expresses hate toward people based on
                        a protected characteristic, threatens or glorifies
                        violence, is sexually explicit or sexualizes minors, or
                        encourages or instructs self-harm. Allow neutral
                        educational, news, medical and support discussion of
                        these topics.
                      on_error: fail_closed
                      rejection_message: >-
                        This request is not allowed by your organization's
                        content policy.
                built_in: false
                settings_unreadable: false
                updated_by: user-cluster-admin-1
                updated_at: '2026-10-16T12:00:00.000Z'
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            from meetkai_mka1 import SDK


            with SDK(
                bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
            ) as sdk:

                res = sdk.guardrails.update_cluster_default_guardrails(enabled=True, guardrails=[
                    {
                        "mode": "prompt_injection",
                        "enabled": True,
                        "config": {
                            "threshold": 0.7,
                        },
                    },
                    {
                        "mode": "leakage",
                        "enabled": True,
                        "config": {
                            "threshold": 0.7,
                        },
                    },
                    {
                        "mode": "classifier",
                        "enabled": True,
                        "config": {
                            "model": "meetkai:custom-classifier",
                            "prompt": "Block content that expresses hate toward people based on a protected characteristic, threatens or glorifies violence, is sexually explicit or sexualizes minors, or encourages or instructs self-harm. Allow neutral educational, news, medical and support discussion of these topics.",
                            "on_error": "fail_closed",
                            "rejection_message": "This request is not allowed by your organization's content policy.",
                        },
                    },
                ])

                # Handle response
                print(res)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { SDK } from "@meetkai/mka1";

            const sdk = new SDK({
              bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
            });

            async function run() {
              const result = await sdk.guardrails.updateClusterDefaultGuardrails({
                enabled: true,
                guardrails: [
                  {
                    mode: "prompt_injection",
                    enabled: true,
                    config: {
                      threshold: 0.7,
                    },
                  },
                  {
                    mode: "leakage",
                    enabled: true,
                    config: {
                      threshold: 0.7,
                    },
                  },
                  {
                    mode: "classifier",
                    enabled: true,
                    config: {
                      model: "meetkai:custom-classifier",
                      prompt: "Block content that expresses hate toward people based on a protected characteristic, threatens or glorifies violence, is sexually explicit or sexualizes minors, or encourages or instructs self-harm. Allow neutral educational, news, medical and support discussion of these topics.",
                      onError: "fail_closed",
                      rejectionMessage: "This request is not allowed by your organization's content policy.",
                    },
                  },
                ],
              });

              console.log(result);
            }

            run();
        - lang: csharp
          label: CSharp (SDK)
          source: >-
            using MeetKai.MKA1;

            using MeetKai.MKA1.Types.Components;

            using System.Collections.Generic;


            var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");


            UpdateClusterDefaultGuardrailsRequest req = new
            UpdateClusterDefaultGuardrailsRequest() {
                Enabled = true,
                Guardrails = new List<GuardrailConfig>() {
                    GuardrailConfig.CreatePromptInjection(
                        new PromptInjectionGuardrail() {
                            Config = new PromptInjectionConfig() {},
                        }
                    ),
                    GuardrailConfig.CreateLeakage(
                        new LeakageGuardrail() {
                            Config = new LeakageConfig() {},
                        }
                    ),
                    GuardrailConfig.CreateClassifier(
                        new ClassifierGuardrail() {
                            Config = new ClassifierConfig() {
                                Model = "meetkai:custom-classifier",
                                Prompt = "Block content that expresses hate toward people based on a protected characteristic, threatens or glorifies violence, is sexually explicit or sexualizes minors, or encourages or instructs self-harm. Allow neutral educational, news, medical and support discussion of these topics.",
                            },
                        }
                    ),
                },
            };


            var res = await
            sdk.Guardrails.UpdateClusterDefaultGuardrailsAsync(req);


            // handle response
components:
  schemas:
    UpdateClusterDefaultGuardrailsRequest:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            Cluster switch. When false, the cluster default applies to no
            organization.
        guardrails:
          type: array
          items:
            $ref: '#/components/schemas/GuardrailConfig'
          description: >-
            Guardrails enforced on every enrolled organization. Classifier
            models are resolved in the cluster organization's registry and
            metered to it.
      required:
        - enabled
        - guardrails
    ClusterDefaultGuardrailsResponse:
      type: object
      properties:
        object:
          const: guardrails_cluster_default
        enabled:
          type: boolean
          description: >-
            Cluster switch. When false, the cluster default applies to no
            organization.
        guardrails:
          type: array
          items:
            $ref: '#/components/schemas/GuardrailConfig'
          description: Guardrails enforced on every enrolled organization
        built_in:
          type: boolean
          description: >-
            True while the cluster runs the built-in default (prompt injection
            and leakage detection) because no operator has saved one
        settings_unreadable:
          type: boolean
          description: >-
            True when the saved cluster default cannot be read: the built-in
            rules shown here are enforced in its place. Save a policy to replace
            it; do not save these rules back unless that is intended
        updated_by:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            User who last changed the cluster default; null while the built-in
            default applies
        updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          description: >-
            When the cluster default was last changed; null while the built-in
            default applies
      required:
        - object
        - enabled
        - guardrails
        - built_in
        - settings_unreadable
        - updated_by
        - updated_at
    GuardrailConfig:
      anyOf:
        - $ref: '#/components/schemas/BanWordsGuardrail'
        - $ref: '#/components/schemas/PromptInjectionGuardrail'
        - $ref: '#/components/schemas/LeakageGuardrail'
        - $ref: '#/components/schemas/ClassifierGuardrail'
      discriminator:
        propertyName: mode
        mapping:
          ban_words: '#/components/schemas/BanWordsGuardrail'
          prompt_injection: '#/components/schemas/PromptInjectionGuardrail'
          leakage: '#/components/schemas/LeakageGuardrail'
          classifier: '#/components/schemas/ClassifierGuardrail'
    BanWordsGuardrail:
      type: object
      properties:
        mode:
          const: ban_words
        enabled:
          type: boolean
          default: true
          description: Whether this guardrail is enabled
        check_output:
          type: boolean
          description: Also apply this guardrail to model output, not just the request
        config:
          $ref: '#/components/schemas/BanWordsConfig'
          description: Banned words configuration
      required:
        - mode
      description: Banned words guardrail
    PromptInjectionGuardrail:
      type: object
      properties:
        mode:
          const: prompt_injection
        enabled:
          type: boolean
          default: true
          description: Whether this guardrail is enabled
        check_output:
          type: boolean
          description: Also apply this guardrail to model output, not just the request
        config:
          $ref: '#/components/schemas/PromptInjectionConfig'
          description: Prompt injection configuration
      required:
        - mode
      description: Prompt injection guardrail
    LeakageGuardrail:
      type: object
      properties:
        mode:
          const: leakage
        enabled:
          type: boolean
          default: true
          description: Whether this guardrail is enabled
        check_output:
          type: boolean
          description: Also apply this guardrail to model output, not just the request
        config:
          $ref: '#/components/schemas/LeakageConfig'
          description: Leakage configuration
      required:
        - mode
      description: Leakage guardrail
    ClassifierGuardrail:
      type: object
      properties:
        mode:
          const: classifier
        enabled:
          type: boolean
          default: true
          description: Whether this guardrail is enabled
        check_output:
          type: boolean
          description: Also apply this guardrail to model output, not just the request
        config:
          $ref: '#/components/schemas/ClassifierConfig'
      required:
        - mode
        - config
    BanWordsConfig:
      type: object
      properties:
        words:
          type: array
          items:
            type: string
          default: []
          description: List of banned words or phrases
        rejection_message:
          type: string
          default: >-
            I'm sorry, but I can't process this request as it contains content
            that isn't allowed. Please rephrase your message.
          description: The message to return when this guardrail is triggered
      description: Configuration for banned words guardrail
    PromptInjectionConfig:
      type: object
      properties:
        threshold:
          type: number
          minimum: 0
          maximum: 1
          default: 0.7
          description: Detection threshold (0-1)
        rejection_message:
          type: string
          default: >-
            I'm sorry, but I can't process this request. Please rephrase your
            message in a different way.
          description: The message to return when this guardrail is triggered
      description: Configuration for prompt injection detection guardrail
    LeakageConfig:
      type: object
      properties:
        threshold:
          type: number
          minimum: 0
          maximum: 1
          default: 0.7
          description: Detection threshold (0-1)
        rejection_message:
          type: string
          default: >-
            I'm sorry, but I can't help with that type of request. Please ask me
            something else.
          description: The message to return when this guardrail is triggered
      description: Configuration for system prompt leakage detection guardrail
    ClassifierConfig:
      type: object
      properties:
        model:
          type: string
          minLength: 1
          description: Exact model ID available in the caller's organization registry
        prompt:
          type: string
          minLength: 1
          maxLength: 16000
          description: >-
            Instructions defining when to block or allow content; content is
            supplied separately
        on_error:
          enum:
            - fail_closed
            - fail_open
          type: string
          default: fail_closed
          description: Stop the request or skip this classifier when evaluation fails
        rejection_message:
          type: string
          default: This request is not allowed by your organization's content policy.
          description: Message returned when classification blocks content
      required:
        - model
        - prompt
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Gateway auth: send `Authorization: Bearer <mka1-api-key>`. For
        multi-user server-side integrations, you can also send `X-On-Behalf-Of:
        <external-user-id>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.