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

# Update Author

> How to update an existing author profile in Octavia AI CMS.

Updating an author lets you refresh or localize their profile information without affecting their associated articles.\
Only the fields you include in the request will be updated — all others remain unchanged.\
The only required field is **`id`**, which identifies the author to modify.

You can use this to update multilingual fields such as `name` or `bio`, or adjust metadata like `isPrivate`, `isActive`, and `slug`.

***

## Rules

* ✅ Only the provided fields will be updated
* ✅ `id` is required to identify the author
* ✅ Multilingual fields must follow the standard multilingual format
* ✅ You can safely update fields like `bio`, `email`, or `slug`
* ❌ Do not assign the same `slug` to multiple authors
* ❌ Deactivating an author (`isActive: false`) will remove them from new article assignments

***

## Validation & Behavior

* Updating an author does **not** affect already published articles
* Use `isActive: false` to hide an author from public listings while preserving their data
* Multilingual updates merge with existing data — you can add new locales without overwriting existing ones
* All updates are logged with timestamps for audit and tracking


## OpenAPI

````yaml PUT /authors/update
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:
  /authors/update:
    put:
      tags:
        - Authors
      summary: Update author
      description: Partial update. Provide only fields to change, plus `id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - id
              properties:
                id:
                  type: string
                  pattern: ^[a-fA-F0-9]{24}$
                  example: '{{objectId}}'
                name:
                  type: object
                  additionalProperties: false
                  properties:
                    en:
                      type: string
                    es:
                      type: string
                slug:
                  type: string
                bio:
                  type: object
                  additionalProperties: false
                  properties:
                    en:
                      type: string
                      description: HTML string
                    es:
                      type: string
                      description: HTML string
                avatar:
                  type: string
                  format: uri
                role:
                  type: string
                socials:
                  type: object
                  additionalProperties: false
                  properties:
                    website:
                      type: string
                      format: uri
                    twitter:
                      type: string
                      format: uri
                    instagram:
                      type: string
                      format: uri
                    linkedin:
                      type: string
                      format: uri
                    github:
                      type: string
                      format: uri
                email:
                  type: string
                  format: email
                isActive:
                  type: boolean
                order:
                  type: integer
                  minimum: 0
            examples:
              Update Author:
                value:
                  id: '{{objectId}}'
                  name:
                    en: John Carter (updated)
                    es: Juan Carter (actualizado)
                  role: Senior Editor
                  order: 2
      responses:
        '201':
          description: Updated
          content:
            application/json:
              examples:
                Updated:
                  value:
                    success: true
                    statusCode: 201
                    message: Author updated
                    data:
                      id: '{{objectId}}'
        '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
        '404':
          description: Not found
          content:
            application/json:
              examples:
                NotFound:
                  value:
                    success: false
                    statusCode: 404
                    message: Not found
                    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

````