> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.hrizn.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Regenerate content

> Re-trigger body generation for existing IdeaCloud-linked content

Re-triggers article body generation for content that is already linked to an IdeaCloud. Use this to refresh an existing article with updated options (title, brand voice, language, or content depth) without creating a new content record.

Question selection is fixed at creation time via [Create content](/api-reference/content/create). This endpoint does not accept `selected_question_ids`.

**Scope required:** `content:write`

## Path parameters

<ParamField path="id" type="string" required>UUID of the content item to regenerate.</ParamField>

## Request body

All fields are optional. Omitted fields keep the values already stored on the content item.

<ParamField body="brand_voice_id" type="string">
  UUID of a brand voice.
</ParamField>

<ParamField body="title" type="string">
  Custom content title.
</ParamField>

<ParamField body="language" type="string">
  Language for generated content. One of: `English`, `Spanish`, `Mandarin Chinese`, `Japanese`, `Korean`, `Arabic`, `Farsi`, `Hebrew`, `French`, `Tagalog`, `Vietnamese`, `Portuguese`, `Russian`.
</ParamField>

<ParamField body="content_depth" type="string">
  Content depth preset that drives the article body. One of `concise`, `steady`, `balanced`, `substantial`, or `in-depth`.
</ParamField>

<ParamField body="content_length" type="integer" deprecated>
  **Deprecated.** Article length is now driven by `content_depth`; this field is accepted for backward compatibility but has no effect.
</ParamField>

<ResponseExample>
  ```json 202 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "data": {
      "id": "b50febaf-657a-4f6a-b951-2898aa079865",
      "status": "generating",
      "message": "Generation typically completes within a few minutes. Configure webhooks to receive real-time status notifications: https://api-docs.hrizn.io/webhooks"
    }
  }
  ```
</ResponseExample>

<Tip>
  Content generation is asynchronous and typically completes within a few minutes. Configure [webhooks](/webhooks) to receive real-time `content.completed` and `content.failed` notifications instead of polling.
</Tip>

<Warning>
  Returns `400` if the content item is not linked to an IdeaCloud. Content created via comparison, model landing, or sales event endpoints cannot be regenerated through this route.
</Warning>


## OpenAPI

````yaml POST /content/{id}/generate
openapi: 3.1.0
info:
  title: Hrizn Public API
  version: 1.2.0
  description: >
    The Hrizn Public API allows partners to programmatically create content,
    manage inventory descriptions, and integrate with the Hrizn platform.


    All endpoints are prefixed with `/public` and require an API key passed via
    the `X-API-Key` header (except the health check).
  contact:
    email: support@hrizn.io
servers:
  - url: https://api.app.hrizn.io/v1/public
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: IdeaClouds
    description: Create and manage AI-powered keyword research
  - name: Content Intelligence
    description: AI-powered content gap analysis and recommendations
  - name: Content
    description: Generate content from IdeaClouds
  - name: Compliance
    description: Run OEM compliance checks on content
  - name: Content Tools
    description: Generate SEO metadata, schemas, and social snippets
  - name: Inventory
    description: Access vehicle data and AI descriptions
  - name: Site
    description: View dealership details and configuration
  - name: Webhooks
    description: Manage webhook subscriptions for real-time events
  - name: Reference
    description: Look up available types, scopes, and events
  - name: Social
    description: >-
      Zernio-backed social posting and reviews across all connected platforms
      (X, Facebook, Instagram, LinkedIn, Google Business Profile)
  - name: Health
    description: Health check (no authentication)
paths:
  /content/{id}/generate:
    post:
      tags:
        - Content
      summary: Regenerate content
      description: >
        Re-triggers article body generation for existing IdeaCloud-linked
        content. Question selection is fixed at creation time. Returns 400 if
        the content is not linked to an IdeaCloud.
      operationId: generateContent
      parameters:
        - $ref: '#/components/parameters/ContentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateArticleInput'
      responses:
        '202':
          description: Generation started
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      status:
                        type: string
                        example: generating
                      message:
                        type: string
                        description: >-
                          Informational message about async processing and
                          webhook configuration
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    ContentId:
      name: id
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Content ID
  schemas:
    GenerateArticleInput:
      type: object
      properties:
        brand_voice_id:
          type: string
        title:
          type: string
          maxLength: 500
        language:
          type: string
          enum:
            - English
            - Spanish
            - Mandarin Chinese
            - Japanese
            - Korean
            - Arabic
            - Farsi
            - Hebrew
            - French
            - Tagalog
            - Vietnamese
            - Portuguese
            - Russian
          description: >-
            Language for generated content. Overrides the language stored on the
            content item.
        content_length:
          type: integer
          minimum: 200
          maximum: 5000
          deprecated: true
          description: >
            **Deprecated.** Article length is now driven by `content_depth`;
            this field is accepted for backward compatibility but has no effect.
        content_depth:
          type: string
          enum:
            - concise
            - steady
            - balanced
            - substantial
            - in-depth
          description: >
            Content depth preset that drives the article body. Defaults to
            `balanced`. Replaces the legacy `content_length` field.
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: validation_error
            message:
              type: string
              example: 'keyword: Required'
            details:
              type: object
            request_id:
              type: string
  responses:
    BadRequest:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: API key lacks required scope
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your Hrizn API key (prefix hzk_)

````