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

# Create Category

> How to create a multilingual category in Octavia AI CMS.

Octavia AI CMS allows you to create **multilingual categories** to organize your content effectively.\
Each category can include names and descriptions in multiple languages using the **standard multilingual format**.

Example:

```json theme={null}
"name": {
  "en": "Technology",
  "es": "Tecnología",
  ...
}
```

***

## Rules

* ✅ Keys must be **lowercase ISO 639-1** codes (e.g., `en`, `es`, `fr`)
* ✅ At least one language (your default locale) is required
* ✅ Values must be plain **strings**
* ❌ Do **not** send a single string for multilingual fields
* ❌ Do **not** use uppercase or invalid codes (e.g., `EN`, `eng`)

***

## Validation & Behavior

* **Slug** must be unique within your workspace
* **Name** and **description** fields support multilingual format
* **Thumbnail** and **isPrivate** fields are optional
* **Language fallback** applies when fetching data (if a requested language doesn’t exist, the default is returned)


## OpenAPI

````yaml POST /categories/create
openapi: 3.1.0
info:
  title: Blog API
  version: 1.0.0
servers:
  - url: https://api.octaviatech.app/cms
    description: Production
security:
  - ApiKeyAuth: []
tags: []
paths:
  /categories/create:
    post:
      tags:
        - Categories
      summary: Create category
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - name
              properties:
                name:
                  type: object
                  description: Category name in multiple languages
                  additionalProperties: false
                  properties:
                    en:
                      type: string
                    es:
                      type: string
                slug:
                  type: string
                  description: URL-friendly unique identifier
                description:
                  type: object
                  description: Optional description in multiple languages
                  additionalProperties: false
                  properties:
                    en:
                      type: string
                    es:
                      type: string
                icon:
                  type: string
                  format: uri
                  description: Optional icon URL
                banner:
                  type: string
                  format: uri
                  description: Optional banner URL
                order:
                  type: integer
                  minimum: 0
                  description: Optional ordering index
                isActive:
                  type: boolean
                  description: Whether category is active
            examples:
              Create Category:
                value:
                  name:
                    en: Surgery
                    es: Cirugía
                  slug: surgery
                  description:
                    en: Surgical topics
                    es: Temas quirúrgicos
                  icon: https://cdn.example.com/icons/scalpel.svg
                  banner: https://cdn.example.com/banners/surgery.jpg
                  order: 1
                  isActive: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              examples:
                Created:
                  value:
                    success: true
                    statusCode: 201
                    message: Created
                    data:
                      id: '{{objectId}}'
                      slug: surgery
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                Unauthorized:
                  value:
                    success: false
                    statusCode: 401
                    message: Unauthorized
                    data: null
        '403':
          description: Forbidden
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    success: false
                    statusCode: 403
                    message: Forbidden
                    data: null
        '409':
          description: Conflict (slug exists)
          content:
            application/json:
              examples:
                Conflict:
                  value:
                    success: false
                    statusCode: 409
                    message: Slug already exists
                    data: null
        '422':
          description: Validation error
          content:
            application/json:
              examples:
                Validation:
                  value:
                    success: false
                    statusCode: 422
                    message: Validation failed
                    data: null
        '500':
          description: Server error
          content:
            application/json:
              examples:
                ServerError:
                  value:
                    success: false
                    statusCode: 500
                    message: Internal server error
                    data: null
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````