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

# Update content profile

> Updates the properties of an existing content profile.



## OpenAPI

````yaml PUT /v4/accounts/{accountId}/content-profiles/{contentProfileId}
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}/content-profiles/{contentProfileId}:
    put:
      tags:
        - Content Profile
      summary: Update content profile
      description: Updates the properties of an existing content profile.
      operationId: updateContentProfile
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: integer
          description: Account identifier
        - name: contentProfileId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Content profile identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentProfileInput'
            example:
              name: Updated Brand Voice
              description: Updated description
              voiceTone: Authoritative
              audience: Executives
              languageRules:
                - term: cheap
                  type: EXCLUDE
      responses:
        '200':
          description: Updated content profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentProfile'
        '401':
          description: Missing or invalid API key/signature.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Caller does not have access to this account, or the content profile
            belongs to a different account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpringBootErrorResponse'
        '404':
          description: Content profile not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpringBootErrorResponse'
components:
  schemas:
    ContentProfileInput:
      type: object
      description: Fields for creating or updating a content profile.
      properties:
        name:
          type: string
        description:
          type: string
        voiceTone:
          type: string
          description: Freeform voice-and-tone guidance applied to generation.
        audience:
          type: string
          description: Freeform target-audience description.
        languageRules:
          type: array
          items:
            $ref: '#/components/schemas/LanguageRule'
    ContentProfile:
      type: object
      required:
        - id
        - accountId
        - name
      properties:
        id:
          type: string
          format: uuid
        accountId:
          type: integer
        name:
          type: string
        description:
          type: string
          nullable: true
        voiceTone:
          type: string
          nullable: true
          description: Freeform voice-and-tone guidance applied to generation.
        audience:
          type: string
          nullable: true
          description: Freeform target-audience description.
        createdBy:
          type: integer
          description: User ID of the creator.
        created:
          type: string
          format: date-time
        updatedBy:
          type: integer
        updated:
          type: string
          format: date-time
        draftCount:
          type: integer
        languageRules:
          type: array
          items:
            $ref: '#/components/schemas/LanguageRule'
    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.
    SpringBootErrorResponse:
      type: object
      description: >-
        Default error body returned by the Spring Boot backends (sage-history,
        content-guidance, serp-explorer) for unhandled/framework-level errors.
        Not endpoint-specific.
      properties:
        timestamp:
          type: string
          format: date-time
        status:
          type: integer
        error:
          type: string
          description: HTTP reason phrase, e.g. "Bad Request".
        message:
          type: string
          nullable: true
          description: >-
            Often empty; these backends do not consistently populate a detail
            message.
        path:
          type: string
    LanguageRule:
      type: object
      required:
        - term
        - type
      properties:
        term:
          type: string
        type:
          type: string
          enum:
            - EXCLUDE
          description: The rule to apply to term.
        extraTerm:
          type: string
          nullable: true
          description: Reserved for future language-rule types.
  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.

````