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

# Create post

> Schedules a post to one or more channels, or publishes it now when `publishAt` is omitted (it goes out within about a minute). Validates platform rules up front: media requirements, TikTok privacy, Reddit subreddit.

Requires the `publish` scope.



## OpenAPI

````yaml /openapi.json post /posts
openapi: 3.1.0
info:
  title: Autoadify API
  version: 1.0.0
  description: Schedule and publish social posts, manage your media library and more.
servers:
  - url: https://api.autoadify.com/v1
security:
  - apiKey: []
tags:
  - name: Account
    description: The API key making the request.
  - name: Channels
    description: Connected social accounts.
  - name: Posts
    description: Schedule, publish and manage posts.
  - name: Media
    description: The media library.
paths:
  /posts:
    post:
      tags:
        - Posts
      summary: Create post
      description: >-
        Schedules a post to one or more channels, or publishes it now when
        `publishAt` is omitted (it goes out within about a minute). Validates
        platform rules up front: media requirements, TikTok privacy, Reddit
        subreddit.


        Requires the `publish` scope.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePostRequest'
      responses:
        '201':
          description: The post, scheduled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Post'
        '401':
          description: Missing, invalid, expired or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            The key lacks the scope this endpoint needs (`forbidden_scope`), or
            the plan has no API access (`plan_required`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: >-
            The same post was created in the last 5 minutes (`duplicate_post`,
            with `details.postId`), or the plan's monthly post limit is reached
            (`limit_reached`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Invalid body or a platform rule isn't met.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Rate limit (`rate_limited`) or monthly quota (`quota_exceeded`)
            reached. `details.resetsAt` says when to retry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreatePostRequest:
      type: object
      properties:
        content:
          type: string
          minLength: 1
          maxLength: 63206
          description: >-
            The post text, used on every channel unless contentByPlatform
            overrides it.
        channelIds:
          minItems: 1
          maxItems: 20
          type: array
          items:
            type: string
          description: Channel ids from list_channels / GET /v1/channels.
        publishAt:
          description: >-
            When to publish, ISO 8601 with a UTC offset (e.g.
            2026-10-12T09:00:00+05:30). Omit to publish now (goes out within
            about a minute).
          type: string
          format: date-time
        mediaIds:
          default: []
          description: >-
            Ids of READY images or videos from the media library, in display
            order.
          maxItems: 10
          type: array
          items:
            type: string
        contentByPlatform:
          default: {}
          description: >-
            Per-platform text replacing content there, keyed by platform, e.g. {
            "X": "short version", "LINKEDIN": "long version" }.
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 63206
        reddit:
          description: Required when posting to a Reddit channel.
          type: object
          properties:
            subreddit:
              type: string
              minLength: 1
              maxLength: 100
              description: Subreddit name without r/.
            title:
              description: Post title; defaults to the first line of the text.
              type: string
              maxLength: 300
          required:
            - subreddit
        tiktok:
          description: >-
            Required for TikTok unless the channel has saved posting defaults.
            privacyLevel: PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS,
            FOLLOWER_OF_CREATOR or SELF_ONLY.
          type: object
          properties:
            privacyLevel:
              type: string
            allowComment:
              type: boolean
            allowDuet:
              type: boolean
            allowStitch:
              type: boolean
            brandOrganicToggle:
              type: boolean
            brandContentToggle:
              type: boolean
            videoMadeWithAi:
              type: boolean
          required:
            - privacyLevel
      required:
        - content
        - channelIds
    Post:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
          enum:
            - scheduled
            - publishing
            - published
            - failed
        content:
          type: string
        scheduledAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        publishedAt:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        createdAt:
          type: string
          format: date-time
        source:
          type: string
          description: '"api" for posts created here, "app" for the Autoadify app.'
        channels:
          type: array
          items:
            type: object
            properties:
              channelId:
                type: string
              platform:
                type: string
              status:
                type: string
                enum:
                  - draft
                  - scheduled
                  - publishing
                  - published
                  - failed
              content:
                description: >-
                  This channel's own text, or null when it uses the post's
                  content.
                type:
                  - string
                  - 'null'
              platformPostId:
                type:
                  - string
                  - 'null'
              url:
                description: >-
                  Live post URL, when the platform's URL can't be built from
                  platformPostId.
                type:
                  - string
                  - 'null'
              publishedAt:
                anyOf:
                  - type: string
                    format: date-time
                  - type: 'null'
              error:
                description: Why this channel failed.
                type:
                  - string
                  - 'null'
            required:
              - channelId
              - platform
              - status
              - content
              - platformPostId
              - url
              - publishedAt
              - error
            additionalProperties: false
        media:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                type: string
              url:
                type:
                  - string
                  - 'null'
            required:
              - id
              - type
              - url
            additionalProperties: false
        reddit:
          type: object
          properties:
            subreddit:
              type: string
            title:
              type:
                - string
                - 'null'
          required:
            - subreddit
            - title
          additionalProperties: false
      required:
        - id
        - status
        - content
        - scheduledAt
        - publishedAt
        - createdAt
        - source
        - channels
        - media
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - unauthorized
                - forbidden_scope
                - plan_required
                - reauth_required
                - not_found
                - validation_failed
                - limit_reached
                - duplicate_post
                - conflict
                - rate_limited
                - quota_exceeded
                - internal_error
            message:
              type: string
              description: Human-readable; safe to show to a user.
            details:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
          required:
            - code
            - message
          additionalProperties: false
      required:
        - error
      additionalProperties: false
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: >-
        An API key from Autoadify → Settings → API & MCP, sent as
        `Authorization: Bearer aak_live_…`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.