Skip to main content
POST
Create a Twitter post
This endpoint has platform-specific fields and publishing rules. See the full scheduling guide for a complete walkthrough including media upload, publishing modes, and examples.

X-specific fields

Publishing modes

Example request

Notes

  • Standard X posts support up to 280 characters.
  • Accounts with X Premium can publish posts up to 25,000 characters.
  • Caption-only posts (no media) are supported.
  • Supports up to 4 images or 1 video. Images and videos cannot be mixed.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
brand_id
integer

The id of the brand to which the post belongs.

Required range: x >= 0
auto_publish
boolean

Whether the post should be auto published.

status
enum<string>

The current status of the post.

Available options:
AUTOPUBLISHING,
DRAFT,
EXPIRED,
FAILED,
IMPORTED,
MISSING_APPROVALS,
PARTIALLY_FAILED,
POSTED,
SCHEDULED,
SKIPPED,
USERS_NOTIFIED
tweet_status
string
media_ids
integer[]

The list of the media ids attached to the post.

Required range: x >= 0
timestamp
string<date-time> | null

The scheduled date & time for publishing the post.

replies
object[]
Maximum array length: 24
alt_text_media_map
object | null

Mapping for the alt text of each media in the post

approval_policy
enum<string>

The approval policy of the approval request

Available options:
APPROVAL_REQUIRED,
APPROVAL_NOT_REQUIRED
approval_requests
object[]

The list of approval requests associated with the post.

auto_numbering_enabled
boolean
board_ids
integer[]

The list of the board ids associated with the post.

Required range: x >= 0
callback_socket_id
string
campaign_ids
integer[]

The list of the campaign ids associated with the post.

Required range: x >= 0
content_tag_ids
integer[]

The list of the content tag ids associated with the post.

Required range: x >= 0
creation_source
enum<string>

To identify the user or the application that created the post.

Available options:
RSS_FEED
duplicate_to_brand_ids
integer[]
write-only

The list of duplicate to brand ids.

Maximum array length: 55
Required range: x >= 0
post_group_id
string<uuid>

The id of the post group associated with the post.

rss_feed_id
integer | null

Foreign key reference to the RSS feed table.

rss_guid
string | null

The unique identifier coming from RSS Feed.

rss_publish_date
string<date-time> | null

The timestamp of when an RSS feed item was published

sort_index
number

The sorted index for unscheduled posts.

subtitle_content
string | null

Raw SRT subtitle file content as text

subtitle_metadata
object | null

Subtitle metadata including language code and filename

Response

Created

brand_id
integer

The id of the brand to which the post belongs.

Required range: x >= 0
auto_publish
boolean

Whether the post should be auto published.

status
enum<string>

The current status of the post.

Available options:
AUTOPUBLISHING,
DRAFT,
EXPIRED,
FAILED,
IMPORTED,
MISSING_APPROVALS,
PARTIALLY_FAILED,
POSTED,
SCHEDULED,
SKIPPED,
USERS_NOTIFIED
tweet_status
string
media_ids
integer[]

The list of the media ids attached to the post.

Required range: x >= 0
timestamp
string<date-time> | null

The scheduled date & time for publishing the post.

replies
object[]
Maximum array length: 24
alt_text_media_map
object | null

Mapping for the alt text of each media in the post

approval_policy
enum<string>

The approval policy of the approval request

Available options:
APPROVAL_REQUIRED,
APPROVAL_NOT_REQUIRED
approval_requests
object[]

The list of approval requests associated with the post.

approval_status
string
read-only

The approval status of the post.

auto_numbering_enabled
boolean
auto_publish_error
enum<string>
read-only
Available options:
ACCOUNT_RESTRICTED,
AGAINST_COMMUNITY_STANDARDS,
APPROVED_PUBLISHING_DATES_HAVE_NO_OVERLAP,
AUTO_PUBLISH_LIMIT_EXCEEDED,
DUPLICATE_POST,
FLAGGED_AS_SPAM,
INTERNAL,
INVALID_ACCOUNT_TYPE,
INVALID_AUTH,
INVALID_DESCRIPTION,
INVALID_IMAGE,
INVALID_PIN_BOARD,
INVALID_PRODUCT_TAGS,
INVALID_TARGETING,
INVALID_TITLE,
INVALID_VIDEO_THUMBNAIL,
MEDIA_CONTAINER_EXPIRED,
MISSING_AUTH,
OUTSIDE_OF_APPROVED_PUBLISHING_DATES,
PAGE_PUBLISHING_AUTH_REQUIRED,
PLATFORM_ERROR,
REJECTED,
TEXT_LENGTH_EXCEEDED
board_ids
integer[]

The list of the board ids associated with the post.

Required range: x >= 0
callback_socket_id
string
campaign_ids
integer[]

The list of the campaign ids associated with the post.

Required range: x >= 0
content_tag_ids
integer[]

The list of the content tag ids associated with the post.

Required range: x >= 0
created_at
string<date-time>
read-only

The time when the post was created.

creation_source
enum<string>

To identify the user or the application that created the post.

Available options:
RSS_FEED
has_scheduled_time
boolean
read-only

Indicates if the post has a scheduled timestamp

id
integer
read-only

A unique id for the post.

Required range: x >= 0
live_post_url
string<url>
read-only

Link to the live published post.

media
object[]
read-only

The list of media attached to the post.

num_of_approvals_required
integer
read-only

The number of approvals required to approve the request.

Link to the live published post

post_group_id
string<uuid>

The id of the post group associated with the post.

rss_feed_id
integer | null

Foreign key reference to the RSS feed table.

rss_guid
string | null

The unique identifier coming from RSS Feed.

rss_publish_date
string<date-time> | null

The timestamp of when an RSS feed item was published

sort_index
number

The sorted index for unscheduled posts.

source_id
string | null
read-only
subtitle_content
string | null

Raw SRT subtitle file content as text

subtitle_error_message
string | null
read-only

Error message if subtitle upload failed

subtitle_metadata
object | null

Subtitle metadata including language code and filename

subtitle_upload_status
string | null
read-only

Computed status: SUCCESS if no error, FAILED if error exists

updated_at
string<date-time>
read-only

The time when the post was last updated.