Skip to main content
POST
/
categories
/
create
Create category
curl --request POST \
  --url https://api.octaviatech.app/cms/categories/create \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "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
}
'
{
  "success": true,
  "statusCode": 201,
  "message": "Created",
  "data": {
    "id": "{{objectId}}",
    "slug": "surgery"
  }
}
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:
"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)

Authorizations

x-api-key
string
header
required

Body

application/json
name
object
required

Category name in multiple languages

slug
string

URL-friendly unique identifier

description
object

Optional description in multiple languages

icon
string<uri>

Optional icon URL

banner
string<uri>

Optional banner URL

order
integer

Optional ordering index

Required range: x >= 0
isActive
boolean

Whether category is active

Response

Created