---
title: "Create Guardrail"
method: POST
path: "/admin/api/v1/guardrails"
tags: ["Agent Configuration"]
---

# Create Guardrail

`POST /admin/api/v1/guardrails`

Create a new guardrail row.

Slug is derived from ``name`` and made unique with numeric
suffixes on collision. Empty post normalization slug returns 422.

## Request body

- StandaloneGuardrailCreate — Body for POST /admin/api/v1/guardrails.
  - `name` string, required
  - `enabled` boolean
  - `position` 'input' | 'output', required
  - `sortOrder` integer
  - `guardrail` union, required
    - SimpleBanListConfig
      - `config_id` 'ban_list'
      - `api_key` string
      - `reject_message` string
      - `banned_words` string[], required — A list of strings (words or phrases) to block
    - SimplePIIConfig
      - `config_id` 'detect_pii'
      - `api_key` string
      - `reject_message` string
      - `pii_entities` string[], required — List of PII entity types to detect
    - SimpleNSFWTextConfig
      - `config_id` 'nsfw_text'
      - `api_key` string
      - `reject_message` string
      - `threshold` number, required — Sensitivity level for NSFW content
    - SimpleToxicLanguageConfig
      - `config_id` 'toxic_language'
      - `api_key` string
      - `reject_message` string
      - `threshold` number, required — Sensitivity level for toxic language
    - SimpleGibberishTextConfig
      - `config_id` 'gibberish_text'
      - `api_key` string
      - `reject_message` string
      - `threshold` number, required — Sensitivity level for gibberish detection
    - SimpleBiasCheckConfig
      - `config_id` 'bias_check'
      - `api_key` string
      - `reject_message` string
      - `threshold` number, required — Sensitivity level for bias detection
    - SimpleCompetitionCheckConfig
      - `config_id` 'competition_check'
      - `api_key` string
      - `reject_message` string
      - `competitors` string[], required — Names of competitor companies or products
    - SimpleCorrectLanguageConfig
      - `config_id` 'correct_language'
      - `api_key` string
      - `reject_message` string
      - `expected_languages` string[], required — Valid ISO language codes (e.g., en, fr, es)
    - SimpleRestrictToTopicConfig
      - `config_id` 'restrict_to_topic'
      - `api_key` string
      - `reject_message` string
      - `valid_topics` string[] — Topics the agent is allowed to discuss
      - `invalid_topics` string[] — Topics the agent must refuse

## Response `201`

Successful Response

- StandaloneMutationResponseStandaloneGuardrailRead
  - `data` StandaloneGuardrailRead, required — GET response and the data payload of POST/PATCH/DELETE responses.
    - `id` string, uuid, required
    - `slug` string, required
    - `name` string, required
    - `enabled` boolean, required
    - `position` 'input' | 'output', required
    - `sortOrder` integer, required
    - `guardrail` union, required
      - SimpleBanListConfig
        - `config_id` 'ban_list'
        - `api_key` string
        - `reject_message` string
        - `banned_words` string[], required — A list of strings (words or phrases) to block
      - SimplePIIConfig
        - `config_id` 'detect_pii'
        - `api_key` string
        - `reject_message` string
        - `pii_entities` string[], required — List of PII entity types to detect
      - SimpleNSFWTextConfig
        - `config_id` 'nsfw_text'
        - `api_key` string
        - `reject_message` string
        - `threshold` number, required — Sensitivity level for NSFW content
      - SimpleToxicLanguageConfig
        - `config_id` 'toxic_language'
        - `api_key` string
        - `reject_message` string
        - `threshold` number, required — Sensitivity level for toxic language
      - SimpleGibberishTextConfig
        - `config_id` 'gibberish_text'
        - `api_key` string
        - `reject_message` string
        - `threshold` number, required — Sensitivity level for gibberish detection
      - SimpleBiasCheckConfig
        - `config_id` 'bias_check'
        - `api_key` string
        - `reject_message` string
        - `threshold` number, required — Sensitivity level for bias detection
      - SimpleCompetitionCheckConfig
        - `config_id` 'competition_check'
        - `api_key` string
        - `reject_message` string
        - `competitors` string[], required — Names of competitor companies or products
      - SimpleCorrectLanguageConfig
        - `config_id` 'correct_language'
        - `api_key` string
        - `reject_message` string
        - `expected_languages` string[], required — Valid ISO language codes (e.g., en, fr, es)
      - SimpleRestrictToTopicConfig
        - `config_id` 'restrict_to_topic'
        - `api_key` string
        - `reject_message` string
        - `valid_topics` string[] — Topics the agent is allowed to discuss
        - `invalid_topics` string[] — Topics the agent must refuse
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `reload` StandaloneReloadResult, required — Reload outcome attached to every admin mutation response. ``reloaded`` means DB committed and runtime now uses the new config. ``restart_required`` means DB committed and process restart is needed. ``reload_failed`` means DB rolled back and runtime is unchanged.
    - `status` 'reloaded' | 'restart_required' | 'reload_failed', required — Outcome of a reload triggered by an admin mutation.
    - `message` string, required
    - `error` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/idun-group/apis/idun-agent-engine-server.md) · [All operations](https://skmtc.net/idun-group/apis/idun-agent-engine-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/idun-group/idun-agent-engine-server/versions/8909cd73cc1c/schema)
