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

# Manage Articles

> Edit an existing article and control its visibility.

Update an existing article's content or metadata by slug. Only the fields you send are changed.

<Note>
  These endpoints modify **existing** articles — they don't create new ones. Use the [Articles](/docs/api-reference/endpoints/articles) list to find slugs.
</Note>

***

## Show or Hide on Public Feed

`PATCH /cms/articles/{slug}/public-feed`

Toggle whether an article appears on your brand's public feed.

***

## Delete an Article

`DELETE /cms/articles/{slug}`

Permanently delete an article from SnowSEO.


## OpenAPI

````yaml PATCH /v3/cms/articles/{slug}
openapi: 3.0.0
info:
  title: SnowSEO API
  description: API documentation for SnowSEO
  version: 1.0.0
servers:
  - url: https://api.snowseo.com
    description: Production server
security: []
tags:
  - name: Keywords
    description: Keyword research and suggestion end-points
  - name: Onboarding
    description: Brand onboarding and strategy end-points
  - name: Brands
    description: Brand management end-points
  - name: Organizations
    description: Organization and member end-points
  - name: Integrations
    description: Google Search Console and other integrations
  - name: Utilities
    description: Common utility end-points like screenshots and uploads
externalDocs:
  url: https://snowseo.com/docs
  description: Find more info here
paths:
  /v3/cms/articles/{slug}:
    patch:
      tags:
        - CMS
      summary: Update an article
      operationId: updateArticle
      parameters:
        - schema:
            type: string
          in: path
          name: slug
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                teamId:
                  type: string
                content:
                  type: string
                metaData:
                  type: object
                slug:
                  type: string
                status:
                  type: string
                isPublic:
                  type: boolean
                jsonLd:
                  type: string
                  nullable: true
                keywords:
                  type: array
                  items:
                    type: object
                    properties:
                      keyword:
                        type: string
                      type:
                        type: string
                        enum:
                          - primary
                          - secondary
                    required:
                      - keyword
                      - type
                prompts:
                  type: array
                  items:
                    type: object
                    properties:
                      prompt:
                        type: string
                      type:
                        type: string
                        enum:
                          - primary
                          - secondary
                      topic:
                        type: string
                    required:
                      - prompt
                      - type
                revisionSource:
                  type: string
                  enum:
                    - manual
                revisionLabel:
                  type: string
                autoOptimizeState:
                  type: object
                  properties:
                    appliedIds:
                      type: array
                      items:
                        type: string
                    dismissedIds:
                      type: array
                      items:
                        type: string
                    undoData:
                      type: object
                      additionalProperties: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  article:
                    type: object
                    properties:
                      slug:
                        type: string
                      title:
                        type: string
                      status:
                        type: string
                      isPublic:
                        type: boolean
                      updatedAt:
                        type: string
                      lastRefreshedAt:
                        type: string
                        nullable: true
                      cmsSyncDirty:
                        type: boolean
                      publishedSnapshot:
                        type: object
                        nullable: true
                        additionalProperties: true
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string

````