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

# Save an article draft

> Create or update the staged draft of an article. The live article is never modified by this call; use
the draft publish endpoint to promote it.



## OpenAPI

````yaml https://api.gleap.io/api-docs.json put /helpcenter/collections/{helpcenterCollectionId}/articles/{helpcenterArticleId}/draft
openapi: 3.0.0
info:
  title: gleap-server
  version: 14.0.0
  contact: {}
servers:
  - url: https://api.gleap.io/v3
security: []
paths:
  /helpcenter/collections/{helpcenterCollectionId}/articles/{helpcenterArticleId}/draft:
    put:
      tags:
        - Help center articles
      summary: Save an article draft
      description: >-
        Create or update the staged draft of an article. The live article is
        never modified by this call; use

        the draft publish endpoint to promote it.
      operationId: SaveHelpcenterArticleDraft
      parameters:
        - in: path
          name: helpcenterArticleId
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HelpcenterArticleDraftDto'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema: {}
      security:
        - jwt: []
components:
  schemas:
    HelpcenterArticleDraftDto:
      description: >-
        Staged edits to a help center article that are not yet live. There is at
        most one

        working copy per article (unique on `article`). The article keeps
        serving its own

        content until the draft is published.
      properties:
        title: {}
        description: {}
        content: {}
        plainContent: {}
        targetAudience:
          type: string
        tags:
          items:
            type: string
          type: array
        author: {}
        expectedDraftVersion:
          type: number
          format: double
          description: >-
            Optimistic-concurrency token for the draft itself. When provided,
            the upsert only

            applies if the stored draft's `draftVersion` still matches;
            otherwise 409 (mirrors the

            live-article guard) so two people editing the same draft don't
            clobber each other.
        expectedArticleVersion:
          type: number
          format: double
          description: >-
            The live article `version` the sending editor session loaded. Guards
            draft CREATION:

            a tab that loaded the article before someone else's publishes would
            otherwise seed a

            brand-new draft from its outdated editor state — that stale draft
            overlays everyone's

            editor (the article looks "reverted" in the dashboard) and, because
            `baseVersion` used

            to be stamped from the then-current live version, it also publishes
            without tripping

            the staleness guard. When provided and it no longer matches the live
            version, the save

            is rejected with 409 instead (the rejected state is kept as a
            'conflict' version).
      type: object
      additionalProperties: false
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````