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

# Create Post

> Creates a post in an X Ads account, by default a Promoted-only (dark) post that never appears in followers' timelines

Creates a post in an X Ads account, by default a Promoted-only (dark) post that never appears in followers' timelines. Attach media by URL or media\_key and an optional card. Promote the returned post id with x\_ads\_create\_ad.

| | |
| - | - |
| **App** | X Ads |
| **Operation ID** | `x_ads_create_post` |
| **Type** | Action |
| **Connection** | `x_ads` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `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://...). A card already carries its own image or video, so do not also pass media\_urls or media\_keys: X accepts a post with both but then refuses to promote it. |
| `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. |

## Output

**Type**: `Dict`

Returns the created post with full details including its id.

**Fields**: dynamic (depend on the inputs)


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