> ## 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.

# API Keys

> Create and manage API keys for Octavia AI CMS.

API keys let your apps call **AI CMS** securely. Keys are scoped to your **team** and **service** and can be configured with roles, expiry, and status controls.

<Info>
  Keep keys secret and prefer server-side usage. You can edit, disable/enable,
  or revoke a key at any time.
</Info>

***

## Create an API key

Follow these steps in the Octavia dashboard. (Replace the screenshots with your own — two images are expected here.)

<Steps>
  <Step title="1) Open API Keys">
    Go to <strong>Dashboard → Settings → API Keys</strong> and click <strong>New API Key</strong>.

    <Frame>
      <img src="https://mintcdn.com/octavia/LT-bWfYdyrzVwGqr/images/cms/apikey-step-1.png?fit=max&auto=format&n=LT-bWfYdyrzVwGqr&q=85&s=201ebb06ca64449f73b07d08d7194c94" alt="Open API keys in dashboard" width="1471" height="827" data-path="images/cms/apikey-step-1.png" />
    </Frame>
  </Step>

  <Step title="2) Name, scope, role & expiration">
    Give the key a clear name (e.g., <em>cms-backend-prod</em>), choose <strong>AI CMS</strong> as the service scope, assign a <strong>Role</strong>, and set <strong>Expiration</strong>:

    <ul>
      <li><strong>Expiration</strong>: either a specific end date or <em>lifetime (no expiry)</em>.</li>
      <li><strong>Status</strong>: you can toggle a key <em>Active</em>/<em>Inactive</em> anytime after creation.</li>
    </ul>

    Click <strong>Create</strong> and copy the key once — it’s shown only at creation time.

    <Frame>
      <img src="https://mintcdn.com/octavia/LT-bWfYdyrzVwGqr/images/cms/apikey-step-2.png?fit=max&auto=format&n=LT-bWfYdyrzVwGqr&q=85&s=bb053f20b2c6c7e03bca87a32d5dae05" alt="Create scoped API key for AI CMS" width="1473" height="826" data-path="images/cms/apikey-step-2.png" />
    </Frame>
  </Step>
</Steps>

<Note>
  You can edit a key’s <strong>role</strong>, change its{" "}
  <strong>expiration</strong> (switch between date-bound and lifetime), or{" "}
  <strong>disable</strong>/<strong>enable</strong> it later from the same page.
</Note>

***

## Roles & permissions (AI CMS)

Choose the smallest role that meets your use case.
If your backend services require unrestricted access, use **Super Admin**. For public websites and read-only pages, use **Read-only**.

| **Role**                              | **Intended Use**                                     | **CMS Access (Summary)**                                                                                                                                                                                   |
| ------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Super Admin**                       | Platform owners / unrestricted backend systems       | **Unlimited access.** Full control over all CMS resources, users, settings, billing, API keys, and administrative actions. Recommended only for trusted backend integrations that require complete access. |
| **Admin**                             | Team or project administrators                       | Manage articles, media, categories, tags, and translations. Can publish/unpublish content and manage team members, but cannot modify billing or API keys unless explicitly granted.                        |
| **Managing Editor (Editor-in-Chief)** | Editorial leads overseeing content strategy          | Approve and publish articles, oversee editorial workflows, and manage categories and translations. Cannot modify team or billing settings.                                                                 |
| **Publisher**                         | Publishing and release managers                      | Handle publishing, scheduling, and visibility of content. Can manage release timelines and locales but cannot alter user or team settings.                                                                 |
| **Editor**                            | Reviewers and content editors                        | Create, edit, and localize articles; review submissions; manage media assets. Cannot publish or access administrative settings.                                                                            |
| **Writer**                            | Authors and contributors                             | Create and edit their own drafts, upload media, and submit content for editorial review. Cannot publish or delete articles.                                                                                |
| **Read-only**                         | Public websites, caching layers, and analytics tools | **View-only access.** Can read published articles, media, categories, and translations, but has **no write or modification permissions**.                                                                  |

<Tip>
  • **Super Admin** is recommended only when your backend integration explicitly
  needs full, unrestricted control.
</Tip>

<Tip>• For public websites and CDN/cache fetches, prefer **Read-only**.</Tip>

***

## Managing keys

* **Rotate & edit**: Rename keys, change roles, update expiration (date ↔ lifetime), and flip **Active/Inactive** status anytime.
* **Revoke**: Permanently delete a key to invalidate it immediately across all clients.
* **Audit**: Use the dashboard to review last-used timestamps and quickly identify unused keys.

***

## Related guides

<CardGroup cols={2}>
  <Card title="Authentication" icon="shield" href="/api-reference/ai-cms/authentication" arrow="true">
    Header format and auth requirements for AI CMS.
  </Card>

  <Card title="Base URL" icon="server" href="/api-reference/ai-cms/base-url" arrow="true">
    Endpoint root for all AI CMS requests.
  </Card>
</CardGroup>
