account | DynamicAccount | Yes | - | Select the X Ads account to create the post in. |
text | string | No | - | The post’s text. Required unless media is attached. |
media_urls | string or array of string | No | - | Media to upload and attach (list or comma-separated). Up to 4 images, or 1 GIF, or 1 video. Accepts direct URLs, Google Drive share links with sharing set to ‘Anyone with the link’, or files uploaded through Markifact. Use this OR media_keys. |
media_keys | string or array of string | No | - | Already-uploaded media keys to attach (list or comma-separated), e.g. from x_ads_upload_media. Up to 4 images, or 1 GIF, or 1 video. |
card_uri | string | No | - | Card to attach, from a cards response (card://…). |
nullcast | boolean | No | True | true (default) creates a Promoted-only (dark) post that never appears in followers’ timelines; false posts organically, which X only allows for the authenticated user. |
name | string | No | - | Internal name for the post, up to 80 characters. |
conversation_settings | enum (EVERYONE, FOLLOWING, MENTIONED_USERS) | No | - | Who can reply: EVERYONE (default), FOLLOWING, or MENTIONED_USERS. |
video_title | string | No | - | Video posts only: title shown with the video, up to 70 characters. |
video_description | string | No | - | Video posts only: description shown under the video, up to 200 characters. |
video_cta | enum (VISIT_SITE, WATCH_NOW) | No | - | Video posts only: call to action, VISIT_SITE or WATCH_NOW. |
video_cta_value | string | No | - | Video posts only: the URL the call to action opens. |
as_user_id | string | No | - | User id to post on behalf of. Defaults to the connected user; only set this when posting for another handle you have access to. |