---
title: "Create a post across one or more connected platforms"
method: POST
path: "/posts"
tags: ["Posts"]
---

# Create a post across one or more connected platforms

`POST /posts`

## Request

- Base URL: `https://socialrobot.io/api/v1`
- URL: `https://socialrobot.io/api/v1/posts`
- Auth: API key in header `x-api-key`

Create a single scheduled item that can target multiple connected social accounts at once.

## Headers

- `x-api-key` string, required: The API key to use for the request

## Request body

- object
  - `scheduledFor` union, required
    - object
      - `publish` 'DRAFT', required
    - object
      - `publish` 'NOW', required
    - object
      - `publish` 'SCHEDULE', required
      - `date` union, required
        - string
        - string
  - `instagramTargets` union[], required
    - union
      - object
        - `accountId` string, required
        - `caption` string, required
        - `location` object
          - `id` string
          - `name` string, required
          - `address` string
          - `lat` number
          - `lng` number
        - `userTags` object[]
          - `username` string, required
          - `x` number, required
          - `y` number, required
        - `hashtags` string[]
        - `collaborators` object[]
          - `username` string, required
        - `firstComment` string
        - `isAiGenerated` boolean
        - `mediaType` 'IMAGE', required
        - `mediaUrl` string, required
        - `altText` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
        - `isStory` boolean
      - object
        - `accountId` string, required
        - `caption` string, required
        - `location` object
          - `id` string
          - `name` string, required
          - `address` string
          - `lat` number
          - `lng` number
        - `userTags` object[]
          - `username` string, required
          - `x` number, required
          - `y` number, required
        - `hashtags` string[]
        - `collaborators` object[]
          - `username` string, required
        - `firstComment` string
        - `isAiGenerated` boolean
        - `mediaType` 'VIDEO', required
        - `mediaUrl` string, required
        - `coverUrl` string
        - `thumbOffset` integer
        - `shareToFeed` boolean
        - `trialReel` object
          - `enabled` boolean
          - `graduationStrategy` 'MANUAL' | 'SS_PERFORMANCE'
        - `isStory` boolean
        - `isReel` boolean
      - object
        - `accountId` string, required
        - `caption` string, required
        - `location` object
          - `id` string
          - `name` string, required
          - `address` string
          - `lat` number
          - `lng` number
        - `userTags` object[]
          - `username` string, required
          - `x` number, required
          - `y` number, required
        - `hashtags` string[]
        - `collaborators` object[]
          - `username` string, required
        - `firstComment` string
        - `isAiGenerated` boolean
        - `mediaType` 'CAROUSEL', required
        - `medias` union[], required
          - union
            - object
              - …
            - object
              - …
        - `isStory` boolean, required
        - `isReel` boolean, required
  - `pinterestTargets` union[], required
    - union
      - object
        - `accountId` string, required
        - `boardId` string, required
        - `title` string
        - `description` string
        - `altText` string
        - `link` union
          - string, uri
          - ''
        - `dominantColor` string
        - `boardSectionId` string
        - `isStandard` boolean
        - `mediaType` 'IMAGE', required
        - `medias` object, required
          - `mediaType` 'IMAGE', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
            - `transform` object
              - …
      - object
        - `accountId` string, required
        - `boardId` string, required
        - `title` string
        - `description` string
        - `altText` string
        - `link` union
          - string, uri
          - ''
        - `dominantColor` string
        - `boardSectionId` string
        - `isStandard` boolean
        - `mediaType` 'VIDEO', required
        - `medias` object, required
          - `mediaType` 'VIDEO', required
          - `medias` object[], required
            - `mediaUrl` string, uri, required
            - `coverImageUrl` string, uri
            - `coverImageContentType` string
            - `coverImageKeyFrameTime` number
  - `twitterTargets` object[], required
    - `accountId` string, required
    - `caption` string, required
    - `medias` object[], required
      - `mediaType` 'IMAGE' | 'VIDEO' | 'GIF', required
      - `mediaUrl` string, required
      - `altText` string
      - `transform` object
        - `crop` object, required
          - `x` number, required
          - `y` number, required
          - `width` number, required
          - `height` number, required
        - `aspect` string, required
        - `width` integer, required
        - `height` integer, required
        - `fit` 'cover' | 'contain', required
        - `userEdited` boolean, required
    - `segments` object[]
      - `caption` string, required
      - `medias` object[], required
        - `mediaType` 'IMAGE' | 'VIDEO' | 'GIF', required
        - `mediaUrl` string, required
        - `altText` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
  - `linkedinTargets` object[], required
    - `accountId` string, required
    - `visibility` 'PUBLIC' | 'CONNECTIONS'
    - `caption` string, required
    - `documentTitle` string
    - `firstComment` string
    - `captionMentions` object[]
      - `type` 'person' | 'organization', required
      - `urn` string, required
      - `displayText` string, required
      - `start` integer, required
      - `length` integer, required
      - `imageUrl` string
    - `firstCommentMentions` object[]
      - `type` 'person' | 'organization', required
      - `urn` string, required
      - `displayText` string, required
      - `start` integer, required
      - `length` integer, required
      - `imageUrl` string
    - `poll` object
      - `question` string, required
      - `options` string[], required
      - `duration` 'ONE_DAY' | 'THREE_DAYS' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS'
    - `article` object
      - `source` string, uri, required
      - `title` string, required
      - `description` string
      - `thumbnailUrl` string, uri
      - `thumbnailAltText` string
    - `geoLocations` object[]
      - `urn` string, required
      - `displayText` string, required
    - `medias` union
      - object
        - `mediaType` 'IMAGE', required
        - `medias` object[], required
          - `mediaUrl` string, uri, required
          - `altText` string
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
      - object
        - `mediaType` 'VIDEO', required
        - `medias` object[], required
          - `mediaUrl` string, uri, required
          - `altText` string
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
          - `videoMetadata` object, required
            - `title` string
            - `description` string
            - `aspectRatioWidth` number
            - `aspectRatioHeight` number
      - object
        - `mediaType` 'DOCUMENT', required
        - `medias` object[], required
          - `mediaUrl` string, uri, required
          - `title` string
  - `blueskyTargets` object[], required
    - `accountId` string, required
    - `caption` string, required
    - `embed` union
      - object
        - `mediaType` 'IMAGE', required
        - `medias` object[], required
          - `alt` string
          - `url` string, uri, required
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
      - object
        - `mediaType` 'VIDEO', required
        - `medias` object[], required
          - `alt` string
          - `url` string, uri, required
  - `tiktokTargets` object[], required
    - `accountId` string, required
    - `caption` string, required
    - `privacyLevel` 'PUBLIC' | 'FRIENDS' | 'FOLLOWERS' | 'PRIVATE'
    - `disableComment` boolean
    - `autoAddMusic` boolean
    - `disableDuet` boolean
    - `disableStitch` boolean
    - `commercialContent` object
      - `isCommercialContent` boolean
      - `yourBrand` boolean
      - `brandedContent` boolean
    - `photoCoverIndex` integer
    - `isAigc` boolean
    - `videoCoverTimestampMs` integer
    - `medias` union, required
      - object
        - `mediaType` 'IMAGE', required
        - `medias` object[], required
          - `mediaUrl` string, uri, required
          - `transform` object
            - `crop` object, required
              - …
            - `aspect` string, required
            - `width` integer, required
            - `height` integer, required
            - `fit` 'cover' | 'contain', required
            - `userEdited` boolean, required
      - object
        - `mediaType` 'VIDEO', required
        - `medias` object[], required
          - `mediaUrl` string, uri, required
    - `postMode` 'DIRECT_POST' | 'UPLOAD'
    - `title` string
    - `videoDurationSec` number
  - `mastodonTargets` object[], required
    - `accountId` string, required
    - `caption` string, required
    - `visibility` 'public' | 'unlisted' | 'private' | 'direct'
    - `sensitive` boolean
    - `spoilerText` string
    - `language` string
    - `poll` object
      - `options` object[], required
        - `title` string, required
      - `expiresIn` number, required
      - `multiple` boolean
      - `hideTotals` boolean
    - `medias` object[], required
      - `name` string, required
      - `mediaUrl` string, required
      - `size` number, required
      - `mediaType` 'IMAGE' | 'VIDEO', required
      - `alt` string
      - `transform` object
        - `crop` object, required
          - `x` number, required
          - `y` number, required
          - `width` number, required
          - `height` number, required
        - `aspect` string, required
        - `width` integer, required
        - `height` integer, required
        - `fit` 'cover' | 'contain', required
        - `userEdited` boolean, required
  - `threadsTargets` object[], required
    - `accountId` string, required
    - `caption` string, required
    - `medias` object[], required
      - `mediaType` 'IMAGE' | 'VIDEO', required
      - `mediaUrl` string, required
      - `altText` string
      - `transform` object
        - `crop` object, required
          - `x` number, required
          - `y` number, required
          - `width` number, required
          - `height` number, required
        - `aspect` string, required
        - `width` integer, required
        - `height` integer, required
        - `fit` 'cover' | 'contain', required
        - `userEdited` boolean, required
    - `userTags` unknown[]
      - unknown
    - `hashtags` string[]
    - `linkAttachment` string, uri
    - `topicTag` string
    - `poll` object
      - `options` string[], required
    - `segments` object[]
      - `caption` string, required
      - `medias` object[], required
        - `mediaType` 'IMAGE' | 'VIDEO', required
        - `mediaUrl` string, required
        - `altText` string
        - `transform` object
          - `crop` object, required
            - `x` number, required
            - `y` number, required
            - `width` number, required
            - `height` number, required
          - `aspect` string, required
          - `width` integer, required
          - `height` integer, required
          - `fit` 'cover' | 'contain', required
          - `userEdited` boolean, required
  - `facebookTargets` object[], required
    - `accountId` string, required
    - `caption` string
    - `medias` object[], required
      - `mediaUrl` string, required
      - `mediaType` 'IMAGE' | 'VIDEO', required
      - `altText` string
      - `transform` object
        - `crop` object, required
          - `x` number, required
          - `y` number, required
          - `width` number, required
          - `height` number, required
        - `aspect` string, required
        - `width` integer, required
        - `height` integer, required
        - `fit` 'cover' | 'contain', required
        - `userEdited` boolean, required
    - `isReel` boolean
    - `isSlideshow` boolean
    - `isStory` boolean
    - `slideshowDuration` number
    - `slideshowTransition` number
    - `coverUrl` string
    - `location` object
      - `id` string, required
      - `name` string, required
      - `address` string
      - `lat` number
      - `lng` number

## Response `200`

Post created successfully

- object
  - `id` string, required

## Other responses

- `400`: Invalid request data
- `401`: Unauthorized - Invalid or missing API key
- `403`: Forbidden - plan limit, ownership, or quota exceeded (see error message for upgrade link)
- `429`: Too many requests - daily API quota exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/socialrobot/apis/socialrobot-io-scheduler-api.md) · [All operations](https://skmtc.dev/socialrobot/apis/socialrobot-io-scheduler-api/llms.txt) · [OpenAPI document](https://skmtc.dev/socialrobot/apis/socialrobot-io-scheduler-api/revisions/c2e9cdf5e75e?raw)
