---
title: "Adds a AI content-safety category preset to specified project (upsert by name)"
method: POST
path: "/apiops/projects/{projectName}/ai-topic-category-presets/{entryName}/"
tags: ["AiPromptDecoratorPresetProject", "AiTopicCategoryPresetProject", "AiPrivacyPresetProject", "AiPromptGuardPresetProject", "AiPromptTemplateProject", "AiDlpPresetProject"]
---

# Adds a AI content-safety category preset to specified project (upsert by name)

`POST /apiops/projects/{projectName}/ai-topic-category-presets/{entryName}/`

## Request

- Base URL: `http://167.86.118.166:32080`
- URL: `http://167.86.118.166:32080/apiops/projects/{projectName}/ai-topic-category-presets/{entryName}/`
- Auth: none declared
- TypeScript: <https://skmtc.dev/apinizer/apis/apinizer-management-apis/docs/apiops/projects/:projectName/ai-topic-category-presets/:entryName/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a project-owned entry. If the project already owns one with this name it is updated; a visible-but-not-owned row (built-in/admin-shared) does NOT block creation — the project gets its own copy.

## Path parameters

- `projectName` string, required
- `entryName` string, required

## Request body

- AiTopicCategoryPresetDTO
  - `id` string
  - `projectId` string
  - `name` string
  - `code` string
  - `displayName` string
  - `displayNameTr` string
  - `group` string
  - `topicText` string
  - `topicTextTr` string
  - `description` string
  - `descriptionTr` string
  - `llamaGuardCode` string
  - `gdprArticle9` boolean
  - `taxonomyVersion` string
  - `enabled` boolean
  - `builtIn` boolean

## Response `200`

successful operation!

- ApiOpsResponseSuccess
  - `status` 'SUCCESS' | 'FAILURE'
  - `resultMessage` string
  - `resultList` string[]
  - `resultCount` integer
  - `deploymentResult` DeploymentResult
    - `envName` string
    - `podName` string
    - `podIp` string
    - `success` boolean
    - `detail` string
    - `responseTime` integer
    - `detailList` unknown[]
      - unknown
    - `firstFromApiResultList` unknown
  - `unresolvedReferences` string[]
  - `advisories` ApiOpsAdvisoryDTO[]
    - `level` string
    - `key` string
    - `params` object

## Other responses

- `401`: not authorized for this operation!
- `500`: internal error!

## Changes

- **2026-09-22** `c036734f4714`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apinizer/apis/apinizer-management-apis/changes/apiops/projects/:projectName/ai-topic-category-presets/:entryName/post.md)

---

[API](https://skmtc.dev/apinizer/apis/apinizer-management-apis.md) - [All operations](https://skmtc.dev/apinizer/apis/apinizer-management-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/apinizer/apis/apinizer-management-apis/revisions/e083046b24cd?raw)
