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

# Push Content Draft To CMS

> Write the document to the connected CMS as an unpublished draft, creating the item or updating the existing one. Nothing goes live until you call the publish endpoint. Calls the CMS provider synchronously.



## OpenAPI

````yaml /v2/openapi.json post /content/{id}/cms/draft
openapi: 3.0.0
info:
  title: Promptwatch API v2
  description: >-
    API v2 for customer integrations with Promptwatch monitoring platform. This
    version provides improved structure, additional endpoints, and enhanced
    functionality.
  version: 2.0.0
  contact:
    name: Promptwatch Support
    email: team@promptwatch.com
    url: https://promptwatch.com
  license:
    name: Commercial
    url: https://promptwatch.com/terms-and-conditions
servers:
  - url: https://server.promptwatch.com/api/v2
    description: Promptwatch API v2
security: []
tags:
  - name: Authentication
    description: API key validation and authentication
  - name: Content
    description: >-
      AI content generation and optimization. Create content asynchronously and
      poll for results.
  - name: Content Gap
    description: Content gap analysis and recommendations
  - name: Publishing
    description: >-
      Publish content to a connected CMS, or record a live URL, and track the
      published page
  - name: Models
    description: Available LLM models
  - name: Monitors
    description: Monitor management and CRUD operations
  - name: Page Tracker
    description: Track URLs and inspect citation stats, responses, and prompts
  - name: Prompts
    description: Prompt management and operations
  - name: Query Fanouts
    description: ChatGPT query fanout keywords
  - name: Responses
    description: LLM response data and analytics
  - name: Tags
    description: Tag management for prompts
  - name: Topics
    description: Topic management for prompts
  - name: Actions
    description: Action items (GEO suggestions and tasks)
  - name: Personas
    description: Persona configuration for monitors
  - name: Brands
    description: Brand management for competitive analysis
  - name: Visibility
    description: Brand visibility time series and competitor heatmaps
  - name: Citations
    description: Citation analytics from AI responses
  - name: Analytics
    description: Visitor analytics, AI crawler logs, sentiment, and brand visibility trends
  - name: Projects
    description: Project management (organization-level keys only)
  - name: Sitemap
    description: Sitemap crawl progress and discovered URLs
  - name: Site Health
    description: >-
      Crawled pages with SEO issues (titles, meta descriptions, H1, thin
      content)
  - name: Socials
    description: >-
      Social media citations (Reddit posts and YouTube videos) found in LLM
      responses
paths:
  /content/{id}/cms/draft:
    post:
      tags:
        - Publishing
      summary: Push Content Draft To CMS
      description: >-
        Write the document to the connected CMS as an unpublished draft,
        creating the item or updating the existing one. Nothing goes live until
        you call the publish endpoint. Calls the CMS provider synchronously.
      operationId: pushContentDraft
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: Content document identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                connectionId:
                  type: string
                  format: uuid
                  description: Connection identifier from GET /cms/connections
                slug:
                  type: string
                  description: >-
                    Slug for the CMS item. Defaults to a slug derived from the
                    title, and is locked once the item has been live.
              required:
                - connectionId
              additionalProperties: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  publishRecordId: 6ba7b825-9dad-11d1-80b4-00c04fd430c8
                  externalItemId: 65f1c0a1b2c3d4e5f6a7b8c9
                  status: STAGED
                  slug: how-to-rank-in-chatgpt
                properties:
                  publishRecordId:
                    type: string
                    format: uuid
                    description: Publish record identifier
                  externalItemId:
                    type: string
                    description: Item identifier in the CMS
                  status:
                    type: string
                    enum:
                      - DRAFT
                      - STAGED
                      - PUBLISHED
                      - UPDATED
                      - FAILED
                    description: Lifecycle state of the CMS publish record
                  slug:
                    type: string
                    description: Slug the CMS stored for the item
                required:
                  - publishRecordId
                  - externalItemId
                  - status
                  - slug
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message: CMS connection not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - CONTENT_NOT_FOUND
                      - CONTENT_NOT_COMPLETED
                      - CONTENT_INVALID_PUBLICATION_URL
                      - CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                      - CMS_INTEGRATIONS_CONNECTION_CREDENTIALS_MISSING
                      - CMS_INTEGRATIONS_CONNECTION_DISABLED
                      - CMS_INTEGRATIONS_DOCUMENT_NOT_FOUND
                      - CMS_INTEGRATIONS_DOCUMENT_NO_CONTENT
                      - CMS_INTEGRATIONS_FIELD_MAPPING_STALE
                      - CMS_INTEGRATIONS_REQUIRED_MAPPING_MISSING
                      - CMS_INTEGRATIONS_STAGED_DRAFT_NOT_FOUND
                      - CMS_INTEGRATIONS_PUBLISH_FAILED
                      - API_KEY_READ_ONLY
                      - INTERNAL_ERROR
                    example: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message:
                    type: string
                    description: Human-readable error message
                    example: CMS connection not found
                required:
                  - code
                  - message
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  error: Unauthorized
                  message: Missing or invalid X-API-Key header.
                properties:
                  error:
                    type: string
                    description: Error category (often aligned with HTTP semantics)
                  code:
                    type: string
                    description: Optional machine-readable code
                  message:
                    type: string
                    description: Human-readable explanation
                  details:
                    type: object
                    description: Optional structured detail (e.g. validation)
                    additionalProperties: true
                required:
                  - error
                  - message
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message: CMS connection not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - CONTENT_NOT_FOUND
                      - CONTENT_NOT_COMPLETED
                      - CONTENT_INVALID_PUBLICATION_URL
                      - CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                      - CMS_INTEGRATIONS_CONNECTION_CREDENTIALS_MISSING
                      - CMS_INTEGRATIONS_CONNECTION_DISABLED
                      - CMS_INTEGRATIONS_DOCUMENT_NOT_FOUND
                      - CMS_INTEGRATIONS_DOCUMENT_NO_CONTENT
                      - CMS_INTEGRATIONS_FIELD_MAPPING_STALE
                      - CMS_INTEGRATIONS_REQUIRED_MAPPING_MISSING
                      - CMS_INTEGRATIONS_STAGED_DRAFT_NOT_FOUND
                      - CMS_INTEGRATIONS_PUBLISH_FAILED
                      - API_KEY_READ_ONLY
                      - INTERNAL_ERROR
                    example: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message:
                    type: string
                    description: Human-readable error message
                    example: CMS connection not found
                required:
                  - code
                  - message
                additionalProperties: false
        '412':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message: CMS connection not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - CONTENT_NOT_FOUND
                      - CONTENT_NOT_COMPLETED
                      - CONTENT_INVALID_PUBLICATION_URL
                      - CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                      - CMS_INTEGRATIONS_CONNECTION_CREDENTIALS_MISSING
                      - CMS_INTEGRATIONS_CONNECTION_DISABLED
                      - CMS_INTEGRATIONS_DOCUMENT_NOT_FOUND
                      - CMS_INTEGRATIONS_DOCUMENT_NO_CONTENT
                      - CMS_INTEGRATIONS_FIELD_MAPPING_STALE
                      - CMS_INTEGRATIONS_REQUIRED_MAPPING_MISSING
                      - CMS_INTEGRATIONS_STAGED_DRAFT_NOT_FOUND
                      - CMS_INTEGRATIONS_PUBLISH_FAILED
                      - API_KEY_READ_ONLY
                      - INTERNAL_ERROR
                    example: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message:
                    type: string
                    description: Human-readable error message
                    example: CMS connection not found
                required:
                  - code
                  - message
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message: CMS connection not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - CONTENT_NOT_FOUND
                      - CONTENT_NOT_COMPLETED
                      - CONTENT_INVALID_PUBLICATION_URL
                      - CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                      - CMS_INTEGRATIONS_CONNECTION_CREDENTIALS_MISSING
                      - CMS_INTEGRATIONS_CONNECTION_DISABLED
                      - CMS_INTEGRATIONS_DOCUMENT_NOT_FOUND
                      - CMS_INTEGRATIONS_DOCUMENT_NO_CONTENT
                      - CMS_INTEGRATIONS_FIELD_MAPPING_STALE
                      - CMS_INTEGRATIONS_REQUIRED_MAPPING_MISSING
                      - CMS_INTEGRATIONS_STAGED_DRAFT_NOT_FOUND
                      - CMS_INTEGRATIONS_PUBLISH_FAILED
                      - API_KEY_READ_ONLY
                      - INTERNAL_ERROR
                    example: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message:
                    type: string
                    description: Human-readable error message
                    example: CMS connection not found
                required:
                  - code
                  - message
                additionalProperties: false
        '502':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message: CMS connection not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - CONTENT_NOT_FOUND
                      - CONTENT_NOT_COMPLETED
                      - CONTENT_INVALID_PUBLICATION_URL
                      - CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                      - CMS_INTEGRATIONS_CONNECTION_CREDENTIALS_MISSING
                      - CMS_INTEGRATIONS_CONNECTION_DISABLED
                      - CMS_INTEGRATIONS_DOCUMENT_NOT_FOUND
                      - CMS_INTEGRATIONS_DOCUMENT_NO_CONTENT
                      - CMS_INTEGRATIONS_FIELD_MAPPING_STALE
                      - CMS_INTEGRATIONS_REQUIRED_MAPPING_MISSING
                      - CMS_INTEGRATIONS_STAGED_DRAFT_NOT_FOUND
                      - CMS_INTEGRATIONS_PUBLISH_FAILED
                      - API_KEY_READ_ONLY
                      - INTERNAL_ERROR
                    example: CMS_INTEGRATIONS_CONNECTION_NOT_FOUND
                  message:
                    type: string
                    description: Human-readable error message
                    example: CMS connection not found
                required:
                  - code
                  - message
                additionalProperties: false
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authentication. Get yours from the Promptwatch dashboard
        under Settings > API Keys.

````