Skip to main content
Octavia AI CMS is an API-first, AI-assisted content management system built for teams that need to create, edit, localize, and publish content programmatically. It combines a flexible data model with built-in AI tools for drafting, rewriting, translating, and summarizing — all through a single, predictable REST API. Use it to automate content pipelines, power an in-app editor, or wire a full CMS into a product you already ship.

Octavia AI CMS – Product Overview

Learn what AI CMS does and how it fits into your stack

How this documentation is organised

Everything under the AI CMS tab belongs to one of these areas. If you are looking for a specific endpoint, this is the fastest way to narrow it down.
New to the API? Read Quickstart — it builds the whole content model in about five minutes.

How content fits together

Content and forms are two separate systems. They share one dependency: Language. Build in the order below — each step needs only what is above it.
Tags and Comments attach to an article but nothing depends on them, so they can be added at any time.

Content Management

The full model, the creation order, and which fields are required

Set up in three steps

1

1. Create your account

Sign up to reach the dashboard and activate the CMS.

Sign Up for Free

Start for free — no credit card required.
2

2. Activate the AI CMS service

Enable the AI CMS app for your workspace from the dashboard.

Go to Dashboard

Enable the AI CMS app in your workspace.
3

3. Generate an API key

Create a key scoped to AI CMS, with the smallest role that covers what you need. See API keys.

Make your first request

Every call needs a base URL and an API key header. That is the whole authentication model.
Every endpoint — success or failure — returns the same envelope. Branch on statusCode or success, never on the presence of a body. See Response format.

Prefer an SDK?

Official client libraries exist for JavaScript, Python, PHP, C#, and Go. They send the API key for you, unwrap the envelope, and give you typed errors.

All SDKs

Compare all five and pick one.

JavaScript

Node.js and browser.

Python

Python 3.9+.

PHP

PHP 8.0+.

C#

.NET 6+.

Go

Go 1.21+.

Conventions used in these docs

A few things are true across the whole API, so they are stated once here.
  • Identifiers are 24-character hex strings (MongoDB ObjectIds), passed as path or body fields.
  • Slugs are URL-facing and must be unique. Most create endpoints accept one explicitly; some derive it from the name.
  • Multilingual fields are maps from a language code to a string, e.g. { "en": "Hello", "es": "Hola" }.
  • Arrays matter. category and subCategory on an article take arrays of IDs even when you only have one.
  • Only x-api-key is yours to send. Multi-tenancy headers are injected by the gateway.
Spot something unclear? Check Rate limits & errors — it covers the failures you are most likely to hit.