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

# Create a content generation

> Generate content for a draft. The request body is a discriminated union on `mode`: `generate_draft`, `revise_draft`, `generate_content_outline`, `generate_meta_descriptions`, `generate_title_tags`, `expand_text`, or `shorten_text`.



## OpenAPI

````yaml POST /v4/accounts/{accountId}/drafts/{draftId}/content-generations
openapi: 3.1.0
info:
  title: Conductor API Documentation
  version: 4.0.0
  license:
    name: Conductor terms of service
    url: https://www.conductor.com/legal/
  termsOfService: https://www.conductor.com/legal/
  x-logo:
    url: https://app.conductor.com/images/global/logo_login.png
servers:
  - url: https://api.conductor.com
security:
  - ApiKeyAuth: []
    SigAuth: []
tags:
  - name: Draft Management
    description: Create, retrieve, update, and delete Writing Assistant drafts.
  - name: Content Insights
    description: >-
      Request and retrieve AI-driven content insights and recommendations for a
      draft.
  - name: Content Generation
    description: >-
      Generate and revise content assets — outlines, drafts, meta descriptions,
      title tags, outline expansions, and shortened text.
  - name: Content Guidance
    description: >-
      Validate and guide content against target keywords and optimization
      criteria.
  - name: Content Score
    description: >-
      Evaluate on-page content and return scoring insights across intent
      alignment and topical coverage.
  - name: Content Profile
    description: >-
      Create, retrieve, update, and delete reusable voice, tone, and
      language-rule profiles applied to draft generation.
  - name: Internal Linking
    description: >-
      Get anchor text and URL recommendations for internal linking based on a
      customer's embedded pages.
paths:
  /v4/accounts/{accountId}/drafts/{draftId}/content-generations:
    post:
      tags:
        - Content Generation
      summary: Generate content
      description: >-
        Generate content for a draft. The request body is a discriminated union
        on `mode`: `generate_draft`, `revise_draft`, `generate_content_outline`,
        `generate_meta_descriptions`, `generate_title_tags`, `expand_text`, or
        `shorten_text`.
      operationId: createContentGeneration
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: integer
          description: Account identifier
        - name: draftId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Draft identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentGenerationRequest'
            examples:
              generate_content_outline:
                summary: Generate outline
                value:
                  mode: generate_content_outline
                  additionalInstructions: >-
                    Create a detailed outline with at least 5 main sections,
                    focusing on practical tips and product comparisons
              generate_draft:
                summary: Generate draft
                value:
                  mode: generate_draft
                  voiceAndTone: Friendly and informative
                  audience: Data engineers and technical decision-makers
                  termsToExclude:
                    - cheap
                    - low-quality
                  termsToReplace:
                    - term: expensive
                      replacement: premium
                  additionalInstructions: >-
                    Include implementation guides and platform comparisons with
                    specific recommendations
              revise_draft:
                summary: Revise draft
                value:
                  mode: revise_draft
                  content: '[Current article content here...]'
                  revisionInstructions: >-
                    Add more practical examples and move the benefits section
                    earlier in the article
                  voiceAndTone: Expert but approachable
                  audience: Data engineers and analytics teams
                  termsToExclude:
                    - difficult
                    - complicated
              generate_meta_descriptions:
                summary: Generate meta descriptions
                value:
                  mode: generate_meta_descriptions
                  bodyCopy: >-
                    Comprehensive guide to choosing the best data integration
                    platform for your business, including feature comparisons,
                    deployment options, and top vendor recommendations.
                  suggestedMetaDescriptionsCount: 3
                  minCharactersPerMetaDescription: 140
                  maxCharactersPerMetaDescription: 160
                  year: 2025
                  keyword: best data integration platform
                  metaDescriptions:
                    - >-
                      Find the perfect data integration platform for your
                      business with our expert buying guide.
              generate_title_tags:
                summary: Generate title tags
                value:
                  mode: generate_title_tags
                  keyword: best data integration platform 2025
                  maxCharacters: 60
                  brandName: DataGuide
              expand_text:
                summary: Expand text
                value:
                  mode: expand_text
                  outline: |
                    1. Introduction to Data Integration Approaches
                    2. ETL vs ELT
                    3. Choosing a Platform
                    4. Implementation and Maintenance
                  section:
                    - 2. ETL vs ELT
                  minSentences: 5
                  maxSentences: 7
                  objective: educate and inform readers
                  audience: data engineers and analytics teams
                  primaryKeyword: ETL vs ELT
                  readabilityLevel: 8th grade
                  additionalKeywords:
                    - data pipelines
                    - data warehouse
                    - data transformation
              shorten_text:
                summary: Shorten text
                value:
                  mode: shorten_text
                  text: >-
                    When selecting a data integration platform for your
                    business, there are numerous factors to consider including
                    connector coverage, scalability, data quality, reliability,
                    and overall value for money. Cloud-native platforms remain
                    the most popular choice due to their flexibility and ease of
                    deployment.
                  targetLength: 50
                  preserveKeyPoints: true
      responses:
        '200':
          description: Generated content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentGenerationResponse'
        '401':
          description: >-
            Missing or invalid API key/signature, or an invalid or expired
            session token.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/FastApiDetailError'
        '422':
          description: >-
            Unrecognized mode or prompt label, or the requested generation could
            not be produced.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FastApiDetailError'
components:
  schemas:
    ContentGenerationRequest:
      oneOf:
        - $ref: '#/components/schemas/GenerateDraftInput'
        - $ref: '#/components/schemas/ReviseDraftInput'
        - $ref: '#/components/schemas/GenerateContentOutlineInput'
        - $ref: '#/components/schemas/GenerateMetaDescriptionsInput'
        - $ref: '#/components/schemas/GenerateTitleTagsInput'
        - $ref: '#/components/schemas/ExpandTextInput'
        - $ref: '#/components/schemas/ShortenTextInput'
      discriminator:
        propertyName: mode
        mapping:
          generate_draft:
            $ref: '#/components/schemas/GenerateDraftInput'
          revise_draft:
            $ref: '#/components/schemas/ReviseDraftInput'
          generate_content_outline:
            $ref: '#/components/schemas/GenerateContentOutlineInput'
          generate_meta_descriptions:
            $ref: '#/components/schemas/GenerateMetaDescriptionsInput'
          generate_title_tags:
            $ref: '#/components/schemas/GenerateTitleTagsInput'
          expand_text:
            $ref: '#/components/schemas/ExpandTextInput'
          shorten_text:
            $ref: '#/components/schemas/ShortenTextInput'
    ContentGenerationResponse:
      oneOf:
        - $ref: '#/components/schemas/ContentOutlineResponse'
        - $ref: '#/components/schemas/DraftGenerationResponse'
        - $ref: '#/components/schemas/MetaDescriptionResponse'
        - $ref: '#/components/schemas/TitleTagResponse'
        - $ref: '#/components/schemas/OutlineExpansionResponse'
        - $ref: '#/components/schemas/TextShortenerResponse'
    Error:
      type: object
      description: >-
        Error envelope for failures that apply uniformly across all v4 endpoints
        (e.g. gateway-level authentication failures).
      properties:
        code:
          type: string
          description: Machine-readable error code.
        message:
          type: string
          description: Human-readable error description.
    FastApiDetailError:
      type: object
      description: >-
        Default error body returned by the FastAPI backends (content-generation,
        polaris-api, internal-linking-recommendations) for HTTPException-based
        errors.
      properties:
        detail:
          type: string
    GenerateDraftInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - generate_draft
        - $ref: '#/components/schemas/DraftGenerationRequest'
    ReviseDraftInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - revise_draft
        - $ref: '#/components/schemas/ReviseDraftRequest'
    GenerateContentOutlineInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - generate_content_outline
        - $ref: '#/components/schemas/ContentOutlineRequest'
    GenerateMetaDescriptionsInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - generate_meta_descriptions
        - $ref: '#/components/schemas/MetaDescriptionRequest'
    GenerateTitleTagsInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - generate_title_tags
        - $ref: '#/components/schemas/TitleTagRequest'
    ExpandTextInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - expand_text
        - $ref: '#/components/schemas/OutlineExpansionRequest'
    ShortenTextInput:
      allOf:
        - type: object
          required:
            - mode
          properties:
            mode:
              type: string
              enum:
                - shorten_text
        - $ref: '#/components/schemas/TextShortenerRequest'
    ContentOutlineResponse:
      type: object
      properties:
        outline:
          type: string
          description: Generated outline text
    DraftGenerationResponse:
      type: object
      properties:
        draft:
          type: string
          description: Generated or revised draft content
    MetaDescriptionResponse:
      type: object
      properties:
        descriptions:
          type: array
          items:
            type: string
    TitleTagResponse:
      type: object
      properties:
        titles:
          type: array
          items:
            type: string
    OutlineExpansionResponse:
      type: object
      properties:
        content:
          type: string
          description: Expanded content for the requested section
    TextShortenerResponse:
      type: object
      properties:
        shortenedText:
          type: string
    DraftGenerationRequest:
      type: object
      properties:
        voiceAndTone:
          type: string
        audience:
          type: string
        termsToExclude:
          type: array
          items:
            type: string
        termsToReplace:
          type: array
          items:
            type: object
            properties:
              term:
                type: string
              replacement:
                type: string
        additionalInstructions:
          type: string
    ReviseDraftRequest:
      type: object
      properties:
        content:
          type: string
        revisionInstructions:
          type: string
        voiceAndTone:
          type: string
        audience:
          type: string
        termsToExclude:
          type: array
          items:
            type: string
    ContentOutlineRequest:
      type: object
      properties:
        additionalInstructions:
          type: string
          description: Specific instructions for outline generation
    MetaDescriptionRequest:
      type: object
      properties:
        bodyCopy:
          type: string
        suggestedMetaDescriptionsCount:
          type: integer
        minCharactersPerMetaDescription:
          type: integer
        maxCharactersPerMetaDescription:
          type: integer
        year:
          type: integer
        keyword:
          type: string
        metaDescriptions:
          type: array
          items:
            type: string
    TitleTagRequest:
      type: object
      properties:
        keyword:
          type: string
        maxCharacters:
          type: integer
        brandName:
          type: string
    OutlineExpansionRequest:
      type: object
      required:
        - outline
        - section
      properties:
        outline:
          type: string
        section:
          type: array
          items:
            type: string
        minSentences:
          type: integer
          description: Minimum number of sentences for the expanded section.
        maxSentences:
          type: integer
          description: Maximum number of sentences for the expanded section.
        objective:
          type: string
        audience:
          type: string
        primaryKeyword:
          type: string
        readabilityLevel:
          type: string
        additionalKeywords:
          type: array
          items:
            type: string
    TextShortenerRequest:
      type: object
      required:
        - text
      properties:
        text:
          type: string
        targetLength:
          type: integer
        preserveKeyPoints:
          type: boolean
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: apiKey
      description: API Key as a query parameter
    SigAuth:
      type: apiKey
      in: query
      name: sig
      description: >-
        Request signature computed using API key and secret. Valid for 5 minutes
        after creation.

````