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

# Create a changelog update



## OpenAPI

````yaml /api/openapi.yaml post /update
openapi: 3.1.0
info:
  title: Sleekplan API
  version: '1.0'
  description: >-
    The Sleekplan API is organized around REST. It has predictable
    resource-oriented URLs, accepts JSON request bodies, returns JSON-encoded
    responses, and uses standard HTTP response codes and authentication.


    Use the Sleekplan API for operations within your workspace — read, create,
    update, or delete posts, comments, changelog updates, users, and more. The
    API key you use to authenticate the request determines what you can access.


    ## Rate limits


    Sleekplan enforces a multi-level rate limit based on client IP and
    authenticated user. If you exceed the limit you receive a `429 Too Many
    Requests` response.


    ## Authentication


    The API uses API key authentication. Get your key from **Settings →
    Developer** in the Sleekplan dashboard. Three ways to pass it:


    - **Basic auth** — `-u YOUR_API_KEY:` (note the trailing colon — no
    password)

    - **Bearer token** — `Authorization: Bearer YOUR_API_KEY`

    - **Query parameter** — `?api_key=YOUR_API_KEY`


    All requests must be HTTPS. Treat your API key as a secret — never commit it
    or expose it client-side.


    ```sh

    curl https://api.sleekplan.com/v1/posts \
      -u YOUR_API_KEY:
    ```


    ## Errors


    Sleekplan uses conventional HTTP status codes. `2xx` indicates success;
    `4xx` indicates a client error (bad parameters, auth, etc.); `5xx` indicates
    a server error.


    Successful responses:


    ```json

    {
      "status": "success",
      "data": { }
    }

    ```


    Error responses:


    ```json

    {
      "status": "error",
      "message": "Error message"
    }

    ```


    | HTTP status | Code | Description |

    |---|---|---|

    | **OK** | 200 | Request succeeded. |

    | **Bad Request** | 400 | Request was malformed or missing a required
    parameter. |

    | **Unauthorized** | 401 | No valid API key provided. |

    | **Request Failed** | 402 | Parameters were valid but the request failed. |

    | **Forbidden** | 403 | API key lacks permission for this request. |

    | **Not Found** | 404 | Requested resource does not exist. |

    | **Too Many Requests** | 429 | Rate limit exceeded. |
  contact:
    url: https://sleekplan.com/contact/
    email: support@sleekplan.com
    name: Sleekplan
  termsOfService: https://sleekplan.com/terms/
servers:
  - url: https://api.sleekplan.com/v1
    description: API Version 1
security:
  - BearerAuth: []
  - BasicAuth: []
  - ApiKeyQuery: []
paths:
  /update:
    post:
      tags:
        - Update
      summary: Create a changelog update
      operationId: create-update
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - title
              properties:
                title:
                  type: string
                  description: Update title. Plain text only.
                description:
                  type: string
                  description: Plain text or Markdown — never HTML.
                type:
                  type: string
                  description: Category ID. Optional.
                segment:
                  type: string
                  description: >-
                    Segment ID. Restricts the update to a specific user segment
                    for email + in-app announcements.
                created:
                  type: string
                  format: date
                  default: now
                  description: Creation date. Past or future.
                settings:
                  type: object
                  properties:
                    link:
                      type: string
                      format: uri
                    link_text:
                      type: string
                    link_color:
                      type: string
                draft:
                  type: boolean
                  default: false
                notify:
                  type: boolean
                  default: true
                  description: Send email notifications to subscribers.
                notify_delay:
                  type: boolean
                  default: false
                  description: >-
                    Bundle the day's updates into a digest sent the next morning
                    at 10AM UTC.
                announcement:
                  type: boolean
                  default: false
                  description: Trigger in-app announcement popups.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  data:
                    type: object
                    properties:
                      changelog_id:
                        type: integer
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    BasicAuth:
      type: http
      scheme: basic
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key

````