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

# Publish a draft post now

> Publishes a post in `draft` or `scheduled` status immediately. The post is accepted
with status `publishing` and delivery runs in the background (so slow reel/video uploads
do not block the request); the terminal status arrives via the `post.published`/
`post.partial`/`post.failed` webhooks and by polling GET /posts/{pid}. Use this to publish
a post that was saved as a draft, or to publish a scheduled post ahead of its time.
Consumes 1 post credit.



## OpenAPI

````yaml /api-reference/openapi.json post /posts/{pid}/publish
openapi: 3.0.0
info:
  description: >-
    Unified social media inbox API. Read and respond to comments, DMs, reviews,
    and mentions across Instagram, Facebook, Threads, Google Business Profile,
    TikTok, LinkedIn, and YouTube through a single REST API. X/Twitter and
    Trustpilot coming soon.
  title: SocialAPI.AI
  contact:
    name: SocialAPI.AI Support
    email: support@social-api.ai
  license:
    name: MIT
  version: '1.0'
servers:
  - url: https://api.social-api.ai/v1
security: []
paths:
  /posts/{pid}/publish:
    post:
      tags:
        - Posts
      summary: Publish a draft post now
      description: >-
        Publishes a post in `draft` or `scheduled` status immediately. The post
        is accepted

        with status `publishing` and delivery runs in the background (so slow
        reel/video uploads

        do not block the request); the terminal status arrives via the
        `post.published`/

        `post.partial`/`post.failed` webhooks and by polling GET /posts/{pid}.
        Use this to publish

        a post that was saved as a draft, or to publish a scheduled post ahead
        of its time.

        Consumes 1 post credit.
      parameters:
        - description: Post ID
          name: pid
          in: path
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Post accepted, publishing in the background
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.PostResponse'
        '207':
          description: Some accounts published, some failed (fast completion)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.PostResponse'
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.ErrorResponse'
        '404':
          description: Post not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.ErrorResponse'
        '409':
          description: Post is not in a publishable state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.ErrorResponse'
        '422':
          description: publishing.delivery.all_failed (fast completion)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.PostResponse'
        '429':
          description: Monthly post limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_endpoints.ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    api_endpoints.PostResponse:
      type: object
      properties:
        created_at:
          type: string
          example: '2026-03-14T09:00:00Z'
        hidden:
          type: boolean
          example: false
        id:
          type: string
          example: p_01HZ9X3Q4R5M6N7P8V2K0W1J
        media:
          type: array
          items:
            $ref: '#/components/schemas/api_endpoints.MediaInput'
        media_ids:
          description: 'Deprecated: use media.'
          type: array
          items:
            type: string
        published_at:
          type: string
          example: '2026-04-01T10:00:05Z'
        retry_count:
          type: integer
          example: 0
        scheduled_at:
          type: string
          example: '2026-04-01T10:00:00Z'
        status:
          type: string
          enum:
            - draft
            - scheduled
            - publishing
            - published
            - partial
            - failed
            - cancelled
          example: published
        targets:
          type: array
          items:
            $ref: '#/components/schemas/api_endpoints.PostTargetResponse'
        text:
          type: string
          example: Check out our new product launch!
        title:
          type: string
          example: Exciting News
        updated_at:
          type: string
          example: '2026-03-14T09:00:00Z'
        visibility:
          type: string
          enum:
            - public
            - private
            - connections_only
            - logged_in
          example: public
    api_endpoints.ErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/api_endpoints.ErrorBody'
    api_endpoints.MediaInput:
      type: object
      properties:
        source:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
        source_type:
          type: string
          enum:
            - url
            - media_id
            - platform_attachment_id
          example: media_id
        type:
          type: string
          enum:
            - image
            - video
            - audio
            - file
          example: image
    api_endpoints.PostTargetResponse:
      type: object
      properties:
        account_id:
          type: string
          example: acc_01HZ9X3Q4R5M6N7P8V2K0W1J
        board_id:
          type: string
          example: '8828'
        error:
          $ref: '#/components/schemas/api_endpoints.PostTargetErrorResponse'
        first_comment:
          type: string
        media:
          type: array
          items:
            $ref: '#/components/schemas/api_endpoints.MediaInput'
        media_ids:
          description: 'Deprecated: use media.'
          type: array
          items:
            type: string
        media_type:
          type: string
          enum:
            - feed
            - reel
            - stories
            - carousel
          example: reel
        metadata:
          type: object
          additionalProperties: {}
        metrics:
          $ref: '#/components/schemas/api_endpoints.PostTargetMetricsResponse'
        metrics_synced_at:
          type: string
          example: '2026-04-01T12:00:00Z'
        page_id:
          type: string
          example: sapi_page_01HZ9X3Q4R5M6N7P8V2K0W1J
        permalink:
          type: string
          example: https://www.instagram.com/p/ABC123/
        platform:
          type: string
          enum:
            - instagram
            - facebook
            - threads
            - tiktok
            - linkedin
            - google
            - zalo
          example: instagram
        platform_post_id:
          type: string
          example: '17895695668004550'
        published_at:
          type: string
          example: '2026-04-01T10:00:05Z'
        scheduled_at:
          type: string
          example: '2026-04-01T10:00:00Z'
        status:
          type: string
          enum:
            - pending
            - publishing
            - published
            - failed
          example: published
        text:
          type: string
        title:
          type: string
        visibility:
          type: string
          example: public
    api_endpoints.ErrorBody:
      type: object
      properties:
        code:
          type: string
          example: resource.not_found
        message:
          type: string
          example: Account not found
        meta:
          type: object
          additionalProperties: {}
    api_endpoints.PostTargetErrorResponse:
      type: object
      properties:
        category:
          type: string
          enum:
            - validation
            - auth
            - rate_limit
            - platform
            - system
          example: validation
        caused_by:
          type: string
          enum:
            - user
            - platform
            - system
          example: user
        code:
          type: string
          example: platform.tiktok.media_required
        message:
          type: string
          example: Video posts require at least one media URL
    api_endpoints.PostTargetMetricsResponse:
      type: object
      properties:
        comments:
          type: integer
          example: 23
        extra:
          type: object
          additionalProperties: {}
        likes:
          type: integer
          example: 142
        saves:
          type: integer
          example: 31
        shares:
          type: integer
          example: 8
  securitySchemes:
    BearerAuth:
      description: >-
        Prefix your API key with "Bearer ". Example: `Authorization: Bearer
        sapi_key_...`
      type: apiKey
      name: Authorization
      in: header

````