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

# Schedule a Post

> You can schedule a clip for future publishing by making a `POST` request to `https://api.opus.pro/api/publish-schedules`.



## OpenAPI

````yaml POST /api/publish-schedules
openapi: 3.0.0
info:
  title: Clip API
  description: Clip API documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://api.opus.pro
    description: OpusClip Open API Production Server
security: []
tags: []
paths:
  /api/publish-schedules:
    post:
      tags:
        - social-posting
        - enterprise
      description: >-
        Schedule a clip to be published later. The `publishAt` value must be a
        future UTC ISO 8601 timestamp. Each X (formerly Twitter) post costs 1
        credit.
      operationId: PublishScheduleController_createPublishSchedule
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            example:
              projectId: P0000000demo
              clipId: qU3iVMSO77
              postAccountId: postAccountId_xxx1
              subAccountId: subAccountId_xxx1
              postDetail:
                title: My Daughter's Creepy 3 AM Visitor
                custom:
                  description: >-
                    Okay, so my daughter got a doll that can apparently move on
                    its own. Last night at 3 AM, I heard footsteps, went to
                    check, and this thing had moved! Totally thought I was
                    losing my mind. Anyone else's toys play tricks? #CreepyDoll
                    #HauntedHouse #MomLife #ParentingFails #ScaryStories
                  privacy: public
                mediaType: video
              publishAt: '2026-03-01T16:00:00.000Z'
            schema:
              type: object
              required:
                - projectId
                - clipId
                - postAccountId
                - postDetail
                - publishAt
              properties:
                projectId:
                  type: string
                  description: Project ID
                clipId:
                  type: string
                  description: >-
                    Bare clip ID (e.g. `qU3iVMSO77`). **Not** the composite
                    `{projectId}.{clipId}` form returned as `id` by `GET
                    /api/exportable-clips` — pass only the part after the dot.
                postAccountId:
                  type: string
                  description: Unique ID of the connected social account record
                subAccountId:
                  type: string
                  description: >-
                    Sub-account ID used by Facebook pages, Instagram business
                    accounts, or LinkedIn
                publishAt:
                  type: string
                  description: Future publish time in UTC ISO 8601 format
                postDetail:
                  type: object
                  required:
                    - title
                  properties:
                    title:
                      type: string
                      description: Title of the post
                    mediaType:
                      type: string
                      description: >-
                        Media type. Supported values depend on the connected
                        platform
                    custom:
                      type: object
                      properties:
                        description:
                          type: string
                          description: Description of the post, including hashtags
                        privacy:
                          type: string
                          enum:
                            - public
                            - private
                            - unlisted
                          description: Privacy setting for YouTube
      responses:
        '201':
          description: Successfully created a publish schedule
          content:
            application/json:
              example:
                data:
                  scheduleId: 1772177588135sHuZ-FACEBOOK_PAGE
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: object
                    required:
                      - scheduleId
                    properties:
                      scheduleId:
                        type: string
                        description: Unique ID of the created schedule task
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````