> ## Documentation Index
> Fetch the complete documentation index at: https://social-b97141fb-auto-generate-llmstxt.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a scheduled post

> Create a new scheduled post for the authenticated user



## OpenAPI

````yaml https://raw.githubusercontent.com/AmityCo/apidocs/refs/heads/develop/bundled.json post /api/v1/posts/schedule
openapi: 3.0.0
info:
  title: Social+ Cloud SDK
  description: >
    ## Using Social+ APIs


    Our API documentation explains all API endpoints used in Social+ Cloud. All
    APIs, with the exception of some authentication APIs, require an access
    token for authentication and authorization. APIs can be used either in Admin
    or User context. When used in user context, you will only be able to fetch
    data related to that user only.

    For Administrators who are using our API documentation in making
    server-to-server API calls, you need an Admin Access token to connect to the
    Social+ server. Refer to

    [this
    documentation](https://docs.social.plus/console/settings#admin-api-access-token)

    for the instructions on how to generate an admin access token.


    All backend endpoints that support Social+ Cloud SDK are included here. To
    easily differentiate the type of each endpoint, we added a prefix in each
    endpoint's path.


    - REST API Endpoint: **`/v1, /v2, /v3, /v4, or /v5 ...`**

    - Webhook Event: **`/webhook ...`**


    ---


    ## **Schema Definitions**


    This section provides detailed descriptions of the key schemas used in
    Social+ Cloud. Understanding these schemas is essential for effectively
    integrating our features into your applications. Each schema entry includes
    a concise description and highlights its core functionality and
    relationships within the platform. These definitions will help you grasp the
    structure and purpose of various components, ensuring a seamless and
    efficient development experience.


    ### **User**


    A User represents an individual who interacts with the Social+ Cloud. Users
    can create profiles, join communities, post content, comment, react, and
    engage with other users.


    ### **Role**


    A Role defines the permissions and access levels for Users within the
    Social+ Cloud. Roles can be assigned to manage and moderate content,
    ensuring a controlled and safe environment for all users.


    ### **Channel**


    A Channel is a primary structure used to implement various chat messaging
    capabilities within an application. Channels serve as containers for
    Subchannels, enabling a hierarchical organization of conversations. This
    structure allows developers to manage and navigate different chat threads
    efficiently.


    ### **Subchannel**


    A Subchannel is a subdivision within a Channel for specific conversation
    threads. Subchannels host all messages and interactions, providing organized
    discussions within a larger channel. Users can individually create, update,
    delete, and manage subchannels. Moderation actions, such as banning and
    muting, are applied at the channel level, affecting all subchannels.


    ### **ChannelUser**


    A ChannelUser represents an individual user within a specific Channel. This
    schema tracks user participation, roles, and permissions within the channel.
    Each ChannelUser can interact in subchannels, participate in discussions,
    and engage with other members. Users can be assigned roles with varying
    permissions, such as admin, moderator, or member, allowing for tailored
    access and control. Moderation actions like banning or muting a ChannelUser
    affect their participation across all subchannels within the channel.


    ### **Message**


    A Message facilitates real-time communication among channel users. Messages
    can contain up to 20,000 characters or weigh up to 100KB for custom content.
    For larger binary data, such as files, it's recommended to upload the data
    to a cloud storage service like AWS S3 and include the URL in the message.
    The SDK supports various message types, including text and image, built on a
    standard message layer.


    ### **Community**


    A Community is a feature that allows users to share their posts and comments
    and engage with each other within the app. Communities provide a dedicated
    space for discussing specific topics or interests.


    ### **CommunityUser**


    A CommunityUser represents an individual user within a specific Community.
    This schema tracks user participation, roles, and interactions within the
    community. CommunityUsers can join public or private communities,
    participate in discussions, and engage with other members. Each user can
    have different roles with varying permissions, such as admin, moderator, or
    member, which control their access and actions within the community.
    Moderation actions, like banning or muting, can be applied to CommunityUsers
    to maintain a safe and respectful environment.


    ### **CommunityCategory**


    A CommunityCategory helps organize and manage communities by categorizing
    them into specific groups. This categorization allows users to easily sort
    and filter communities based on their interests or needs.


    ### **Post**


    A Post is a piece of content created and shared by a user within a network
    or community. Posts can include text, images, videos, or other elements.
    Users can create, view, and interact with posts in a social feed, which can
    be displayed in chronological order and customized using various settings.
    Post types supported by Social+ include text, image, video, file, live
    stream, poll, and custom posts. The parent post serves as a container for
    text data, while each multimedia element (e.g., image, video) is treated as
    a separate child post. Both parent and child posts support reactions and
    comments, allowing users to engage comprehensively with content.


    ### **Comment**


    A Comment in Social+ Cloud is a user-generated response to specific content,
    such as a post or story. Comments enable users to engage in conversations,
    express thoughts, opinions, and emotions, fostering a sense of community
    around the content.


    **Comment Reference Types:**


    - **Post Type Comment:** Designed for regular posts like text updates,
    photos, or videos. These comments are associated with the post and displayed
    beneath it, promoting conversation and interaction.

    - **Story Type Comment:** Similar to post type comments but associated with
    stories, driving user engagement and discussion around short-lived content.

    - **Content Type Comment:** Intended for content-specific such as articles
    or specialized content, providing a more organized and contextual commenting
    experience.


    ### **Reaction**


    A Reaction is a user interaction on messages, posts, or comments, such as
    like, dislike, or love. The type of reactions is customizable. Currently,
    reactions are supported for Posts, Messages, and Comments.


    **Reaction Reference Types:**


    - **Comment Reference Type:** Allows users to query reactions on a specific
    comment, showing how others have responded to it.

    - **Post Reference Type:** Allows users to query reactions on a specific
    post, highlighting user engagement with the post.

    - **Story Reference Type:** Allows users to query reactions on a specific
    story, showing user reactions to the story.


    ### **File**


    A File in Social+ Cloud supports file upload and download, enabling
    file-sharing within applications. It handles various file types, including
    images, videos, audio, and documents, with a maximum size of 1 GB. This
    functionality allows users to share files directly in chats or social feeds,
    enhancing engagement and interaction.


    ### **Follow**


    A Follow schema in Social+ Cloud defines one-directional relationships
    between users, essential for social networking features. When user A follows
    user B, user A can see user B's updates in their feed, but user B does not
    need to reciprocate. This schema helps manage visibility and accessibility
    of user-generated content in user feeds.


    ---


    ## Select Region Endpoint


    Before making server-to-server API calls, be sure to select the correct API
    endpoint for your region in the **Servers** dropdown below.
  version: 4.118.0
servers:
  - url: https://apix.us.amity.co
    description: API Endpoint for US Region
  - url: https://apix.eu.amity.co
    description: API Endpoint for EU Region
  - url: https://apix.sg.amity.co
    description: API Endpoint for SG Region
security: []
paths:
  /api/v1/posts/schedule:
    post:
      tags:
        - Post
      summary: Create a scheduled post
      description: Create a new scheduled post for the authenticated user
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - scheduledAt
                - postData
              properties:
                scheduledAt:
                  type: string
                  format: date-time
                  description: When the post should be published
                  example: '2025-08-15T10:00:00Z'
                postData:
                  type: object
                  properties:
                    data:
                      type: object
                      description: Body of a post
                      properties:
                        title:
                          type: string
                          description: Title of a post.
                          maxLength: 150
                        text:
                          type: string
                          maxLength: 50000
                          description: Text content of the post.
                          example: example text
                        fileId:
                          type: string
                          maxLength: 100
                          description: File ID for image/file post.
                          example: 57b916d38eaf8010caddfb7759a2d06c
                        pollId:
                          type: string
                          maxLength: 100
                          description: Poll ID for create poll post.
                          example: 53a9fd8b5aaa1af6c5a1bbd245ce4a9b1627373735551
                        streamId:
                          type: string
                          maxLength: 100
                          description: Video streaming ID for create live streaming post.
                          example: 81559bcc3a5bb3b6bbd69a83b89d337e
                        roomId:
                          type: string
                          maxLength: 100
                          description: Room ID for room post.
                    attachments:
                      type: array
                      maxItems: 10
                      description: Array of attachments.
                      items:
                        type: object
                        description: Attachment info
                        required:
                          - fileId
                          - type
                        properties:
                          fileId:
                            type: string
                            maxLength: 100
                            example: 57b916d38eaf8010caddfb7759a2d06c
                            description: File ID for attachment.
                          type:
                            type: string
                            description: Attachment type.
                            enum:
                              - image
                              - file
                              - video
                          displayMode:
                            type: string
                            enum:
                              - fill
                              - fit
                            default: fit
                            description: Display mode for the clip.
                            example: fit
                          isMuted:
                            type: boolean
                            default: false
                            description: Whether the video should be muted or not.
                            example: false
                    dataType:
                      type: string
                      example: upstra.customtype
                      description: >-
                        Accept "liveStream", "poll", "room" or Custom type.
                        Custom type must be in dot separated string format or
                        system defined format (ex. "some.customtype",
                        "com.foo.bar").
                    targetType:
                      type: string
                      enum:
                        - user
                        - community
                        - content
                      default: user
                      description: 'Where to create post to (default: user).'
                    targetId:
                      type: string
                      maxLength: 900
                      example: public_user_id
                      description: >-
                        Resource public ID depends on target type (ex. target
                        type is community, target ID will be community public
                        ID).
                    metadata:
                      type: object
                      description: Additional properties to support custom fields.
                      example:
                        anything: you want
                    links:
                      type: array
                      maxItems: 100
                      description: >-
                        Array of URL links extracted from content with metadata
                        for link preview rendering
                      items:
                        type: object
                        required:
                          - url
                        properties:
                          index:
                            type: number
                            minimum: 0
                            description: >-
                              Starting position of the URL in the original text
                              content
                          length:
                            type: number
                            minimum: 1
                            description: >-
                              Length of the URL string in the original text
                              content
                          url:
                            type: string
                            maximum: 2000
                            description: The complete URL found in the content
                          renderPreview:
                            type: boolean
                            default: false
                            description: >-
                              Flag indicating whether to render a rich preview
                              for this link
                          domain:
                            type: string
                            maximum: 2000
                            description: >-
                              Domain name extracted from the URL (e.g.,
                              'example.com')
                          title:
                            type: string
                            maximum: 2000
                            description: >-
                              Title of the linked page, typically extracted from
                              Open Graph or meta tags
                          imageUrl:
                            type: string
                            maximum: 2000
                            description: >-
                              URL of the preview image for the link, typically
                              extracted from Open Graph tags
                    postId:
                      type: string
                      maxLength: 900
                      example: postidiwant
                      description: For specify public post ID on post creation.
                    tags:
                      type: array
                      minItems: 0
                      maxItems: 5
                      description: Tags for the post
                      items:
                        type: string
                        maxLength: 24
                        description: Tag string
                    hashtags:
                      type: array
                      minItems: 0
                      maxItems: 30
                      description: Hashtags for the post
                      items:
                        type: string
                        maxLength: 100
                        example: tech_news
                      example:
                        - tech_news
                        - startup_life
                        - product_launch
                        - innovation_2025
                    mentionees:
                      type: array
                      maxItems: 2
                      description: >-
                        The object of the mentions type and user who get a
                        notification from the post (optional, max 2 items).
                      items:
                        type: object
                        required:
                          - type
                        properties:
                          type:
                            type: string
                            example: user
                            description: >
                              Type: * `user` - need to specify userIds and
                              notification mentions individual user
                            enum:
                              - user
                          userIds:
                            type: array
                            example:
                              - userId1
                              - userId2
                            description: Array of UserId (required if type is 'user').
                            items:
                              type: string
                    createdAt:
                      type: string
                      description: The date/time when a post is created.
                      format: date-time
                      example: '2022-07-07T04:24:20.444Z'
                    isDiscoverable:
                      type: boolean
                      description: >-
                        Set whether the post is discoverable in search and
                        hashtag feeds (optional, default: true).
                      default: true
                    eventId:
                      type: string
                      maxLength: 24
                      description: Event reference for room posts.
                      example: 507f1f77bcf86cd799439011
                  required:
                    - data
      responses:
        '201':
          description: Scheduled post created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier for the scheduled post
        '400':
          description: Bad Request error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  code:
                    type: number
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      detail:
                        oneOf:
                          - type: array
                            items:
                              type: string
                          - type: object
              example:
                status: error
                code: 400000
                message: Bad Request.
        '500':
          description: Unexpected error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  code:
                    type: number
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      detail:
                        oneOf:
                          - type: array
                            items:
                              type: string
                          - type: object
              example:
                status: error
                code: 500000
                message: Unexpected error
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````