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

# Validate content guidance

> Validate on-page content (title, meta description, body copy) against Content Guidance recommendations for a given request.



## OpenAPI

````yaml POST /v4/accounts/{accountId}/drafts/{draftId}/validate
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}/validate:
    post:
      tags:
        - Content Guidance
      summary: Validate content guidance
      description: >-
        Validate on-page content (title, meta description, body copy) against
        Content Guidance recommendations for a given request.
      operationId: validateContentGuidance
      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:
              type: object
              properties:
                title:
                  type: string
                metaDescription:
                  type: string
                bodyCopy:
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Insight'
              example:
                - type: CONTENT_ANALYSIS_INSIGHT
                  errorCode: null
                  errorMessage: null
                  insightScore: null
                  summary: null
                  status: null
                  insightPresent: true
                  empty: false
                  details:
                    financial data integration: true
                    data pipelines: false
                    drag-and-drop: false
                    key features: false
                    analytics: true
                    customer experiences: true
                    real-time: true
                    use cases: true
                    enable: true
                    data lake: false
                    data sources: true
                    ai-powered: false
                    analytics-ready: true
                    resource-intensive: false
                    data quality: true
                    data-driven: true
                    data integration solution: true
                    data integration tools: true
                    integration: true
                    data volumes: false
                    data integration: true
                    data silos: true
                    data warehouse: false
                    data integration patterns: true
                    data management: true
                    ai-driven: false
                    end-to-end: true
                    low-code: false
                    platform: true
                    database: false
                    cloud-native: true
                    cloud-based: true
                    data ingestion: false
                    api integrations: true
                    data transformation: true
                    pre-built connectors: true
                    target system: true
                    api-based: true
                    subscription-based: true
                    on-premises: true
                    different sources: false
                    data integration platform: true
                    operational efficiency: true
                    transformation: true
                    integrate: true
                    multiple sources: false
                    up-to-date: true
                    enterprise-grade: false
                    no-code: false
                    various sources: false
                - type: HTML_HEADING1_COMMON
                  errorCode: null
                  errorMessage: null
                  insightScore: null
                  summary: null
                  status: null
                  insightPresent: true
                  empty: false
                  details:
                    data integration platform: false
                    data integration for banking: false
                    financial data integration: true
                    data integration: true
                - type: HTML_HEADING2_COMMON
                  errorCode: null
                  errorMessage: null
                  insightScore: null
                  summary: null
                  status: null
                  insightPresent: true
                  empty: false
                  details:
                    data integration use cases: false
                    financial data integration: true
                    benefits of data integration: false
                    data integration tools: false
                - type: HTML_HEADING3_COMMON
                  errorCode: null
                  errorMessage: null
                  insightScore: null
                  summary: null
                  status: null
                  insightPresent: true
                  empty: false
                  details:
                    financial data integration solutions: false
                    data integration challenges: false
                    benefits of data integration: false
                    data integration tools: false
        '400':
          description: Malformed request body. Returns no response body.
        '401':
          description: Missing or invalid API key/signature.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Insight:
      type: object
      required:
        - type
        - status
        - insightPresent
        - empty
      discriminator:
        propertyName: type
        mapping:
          CONTENT_ANALYSIS_INSIGHT:
            $ref: '#/components/schemas/ContentAnalysisInsight'
          PAA_INSIGHT:
            $ref: '#/components/schemas/PaaInsight'
          READABILITY_INSIGHT:
            $ref: '#/components/schemas/ReadabilityInsight'
          JOURNEY_STAGE_INSIGHT:
            $ref: '#/components/schemas/JourneyStageInsight'
          SUBTOPIC_INSIGHT:
            $ref: '#/components/schemas/SubtopicInsight'
          AUDIENCE_INSIGHT:
            $ref: '#/components/schemas/AudienceInsight'
          OBJECTIVE_INSIGHT:
            $ref: '#/components/schemas/ObjectiveInsight'
          CONTENT_TYPE_INSIGHT:
            $ref: '#/components/schemas/ContentTypeInsight'
          CONTENT_LENGTH_INSIGHT:
            $ref: '#/components/schemas/ContentLengthInsight'
          HTML_TITLE_COMMON:
            $ref: '#/components/schemas/HtmlKeywordSerpInsight'
          HTML_META_DESCRIPTION_COMMON:
            $ref: '#/components/schemas/HtmlKeywordSerpInsight'
          HTML_HEADING1_COMMON:
            $ref: '#/components/schemas/HtmlKeywordSerpInsight'
          HTML_HEADING2_COMMON:
            $ref: '#/components/schemas/HtmlKeywordSerpInsight'
          HTML_HEADING3_COMMON:
            $ref: '#/components/schemas/HtmlKeywordSerpInsight'
          BODY_CONTENT_COMMON:
            $ref: '#/components/schemas/HtmlKeywordSerpInsight'
      properties:
        type:
          $ref: '#/components/schemas/InsightType'
        errorCode:
          type: string
          nullable: true
        errorMessage:
          type: string
          nullable: true
        status:
          $ref: '#/components/schemas/ItemStatus'
        summary:
          $ref: '#/components/schemas/InsightSummary'
          nullable: true
        insightPresent:
          type: boolean
        empty:
          type: boolean
        details:
          type: object
          description: Shape varies by insight type; see the concrete *Insight subtypes.
    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.
    ContentAnalysisInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                keywords:
                  type: object
                  properties:
                    items:
                      type: array
                      items:
                        $ref: '#/components/schemas/KeywordItem'
                    maxOccurrence:
                      type: integer
                    presets:
                      type: array
                      items:
                        type: string
                serp:
                  type: object
                  properties:
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          pageMeta:
                            $ref: '#/components/schemas/PageMeta'
                          keywords:
                            type: array
                            items:
                              type: object
                              properties:
                                keyword:
                                  type: string
                                frequency:
                                  type: integer
                                otherKeywords:
                                  type: array
                                  items:
                                    type: string
    PaaInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                paaQuestions:
                  type: array
                  items:
                    type: object
                    properties:
                      question:
                        type: string
                      response:
                        type: string
                        nullable: true
                      changeType:
                        $ref: '#/components/schemas/ChangeType'
                whyImportantMessage:
                  type: string
    ReadabilityInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                serp:
                  type: object
                  properties:
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          pageMeta:
                            $ref: '#/components/schemas/PageMeta'
                          metricValue:
                            $ref: '#/components/schemas/ReadabilityMetric'
                    topPageMetricValue:
                      $ref: '#/components/schemas/ReadabilityMetric'
                    averageMetricValue:
                      $ref: '#/components/schemas/ReadabilityMetric'
                own:
                  type: object
                  nullable: true
                userDefinedTarget:
                  type: object
                  nullable: true
                whyImportantMessage:
                  type: string
    JourneyStageInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                journeyStage:
                  type: string
                journeyStages:
                  type: array
                  items:
                    type: string
    SubtopicInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                chatResponseId:
                  type: string
                subtopics:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      changeType:
                        $ref: '#/components/schemas/ChangeType'
    AudienceInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                audience:
                  type: string
    ObjectiveInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                objective:
                  type: string
    ContentTypeInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                contentType:
                  type: string
                contentTypes:
                  type: array
                  items:
                    type: string
    ContentLengthInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              properties:
                serp:
                  type: object
                  properties:
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          pageMeta:
                            $ref: '#/components/schemas/PageMeta'
                          metricValue:
                            type: integer
                            description: Word count.
                    topPageMetricValue:
                      type: integer
                    averageMetricValue:
                      type: number
                whyImportantMessage:
                  type: string
                range:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      value:
                        type: integer
    HtmlKeywordSerpInsight:
      allOf:
        - $ref: '#/components/schemas/Insight'
        - type: object
          properties:
            details:
              type: object
              description: >-
                Shared shape for HTML_TITLE_COMMON,
                HTML_META_DESCRIPTION_COMMON, HTML_HEADING1/2/3_COMMON, and
                BODY_CONTENT_COMMON.
              properties:
                keywords:
                  type: object
                  properties:
                    numOfSerps:
                      type: integer
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          keyword:
                            type: string
                          numOfOccurrence:
                            type: integer
                          ownMatched:
                            type: boolean
                          changeType:
                            $ref: '#/components/schemas/ChangeType'
                serp:
                  type: array
                  items:
                    $ref: '#/components/schemas/HtmlSerpPage'
    InsightType:
      type: string
      enum:
        - PAA_INSIGHT
        - BODY_CONTENT_COMMON
        - CONTENT_ANALYSIS_INSIGHT
        - HTML_HEADING1_COMMON
        - HTML_HEADING2_COMMON
        - HTML_HEADING3_COMMON
        - HTML_META_DESCRIPTION_COMMON
        - HTML_TITLE_COMMON
        - CONTENT_LENGTH_INSIGHT
        - READABILITY_INSIGHT
        - OBJECTIVE_INSIGHT
        - AUDIENCE_INSIGHT
        - JOURNEY_STAGE_INSIGHT
        - CONTENT_TYPE_INSIGHT
        - SUBTOPIC_INSIGHT
        - OPPORTUNITIES_SNIPPET
        - MSV_SNIPPET
    ItemStatus:
      type: string
      description: Processing status for an individual insight or snippet item.
      enum:
        - COMPLETED
        - COMPLETED_WITH_ERRORS
        - ERROR
    InsightSummary:
      type: object
      properties:
        note:
          type: string
          nullable: true
        text:
          type: string
          nullable: true
    KeywordItem:
      type: object
      properties:
        keyword:
          type: string
        numOfOccurrence:
          type: integer
        avgFrequency:
          type: integer
        topPageFrequency:
          type: integer
          nullable: true
        ownFrequency:
          type: integer
          nullable: true
        presets:
          type: array
          items:
            type: string
            enum:
              - IMPORTANT
              - SUPPORTING
              - ADDITIONAL
        otherKeywords:
          type: array
          nullable: true
          items:
            type: string
        changeType:
          $ref: '#/components/schemas/ChangeType'
    PageMeta:
      type: object
      properties:
        rank:
          type: integer
        url:
          type: string
          format: uri
        favicon:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        collected:
          type: boolean
    ChangeType:
      type: string
      nullable: true
      description: User-applied change to an insight item. Null when untouched.
      enum:
        - USER_ADDED
        - HIDDEN
        - RESTORED
    ReadabilityMetric:
      type: object
      properties:
        score:
          type: number
        label:
          type: string
        description:
          type: string
        marker:
          type: string
          enum:
            - LOWER
            - EQUAL
            - HIGHER
    HtmlSerpPage:
      type: object
      properties:
        favicon:
          type: string
          nullable: true
        rank:
          type: integer
        url:
          type: string
          format: uri
        status:
          $ref: '#/components/schemas/PageStatus'
        title:
          $ref: '#/components/schemas/HtmlFeatureValue'
          nullable: true
        features:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/HtmlFeature'
    PageStatus:
      type: string
      description: Collection status for an HTML SERP page.
      enum:
        - COLLECTED
        - ERROR
    HtmlFeatureValue:
      type: object
      properties:
        template:
          type: string
        xpath:
          type: string
        value:
          type: string
    HtmlFeature:
      type: object
      properties:
        type:
          type: string
          enum:
            - metaDescription
            - h1
            - h2
            - h3
            - title
        xpath:
          type: string
        innerText:
          $ref: '#/components/schemas/HtmlTemplatedString'
        attributes:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/HtmlTemplatedString'
    HtmlTemplatedString:
      type: object
      properties:
        template:
          type: string
        value:
          type: string
  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.

````