Reply Post With Media

POST/tw-v2/interaction/reply-post-with-media

Description

Reply to an existing tweet with media attachments. Creates a tweet in the conversation thread with up to 4 images or 1 video. Supports text content up to 280 characters for non-premium users, or 25,000 characters for premium users.

Request Body

ParameterTypeRequiredDescription
authTokenstringrequiredAccount authentication token (auth_token cookie value)
textstringrequiredThe text content of the reply (max 280 characters for non-premium, 25,000 for premium)
tweetIdstringrequiredThe ID of the tweet to reply to
mediaarrayrequiredArray of media objects (1-4 items). Each object must use exactly one source: {url: string}, {data: string, type: string}, or {media_id: string}.
proxystringrequiredProxy in format 'hostname:port@username:password' (required for better success rates)
disableLinkPreviewbooleanoptionalWhen true, disables link preview cards for tweets containing URLs (defaults to false)

Media Input

Each item in media can be one of:

  • { "url": "https://example.com/image.jpg" }: TweetAPI fetches and uploads the media.
  • { "data": "<base64>", "type": "image/png" }: TweetAPI uploads base64 media with the provided MIME type.
  • { "media_id": "1971008286821380096" }: attach a caller-managed Twitter media ID directly.

When using media_id, upload and finalize the media with the same Twitter/X account first, wait for video or GIF processing to finish, then pass the returned media_id_string. TweetAPI does not pre-validate ownership, expiry, processing state, or media category.

Code Examples

const body = {
  authToken: 'YOUR_AUTH_TOKEN',
  text: 'Hello, world!',
  tweetId: '1234567890',
  media: [{"url":"https://example.com/link-94089/profile-29900/image.jpg"}]
};

const response = await fetch('https://api.tweetapi.com/tw-v2/interaction/reply-post-with-media', {
  method: 'POST',
  headers: {
    'X-API-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(body)
});

const data = await response.json();
console.log(data);

Response

Success Response (200 OK)

200
{
  "data": {
    "id": "9009315671521078699",
    "action": "reply",
    "timestamp": "2025-10-02T09:20:27.494Z",
    "success": true,
    "metadata": {
      "tweet_id": "2001657645798024876",
      "author_username": "username",
      "text": "Sample post text 53382 for documentation.",
      "created_at": "Thu Oct 02 09:20:27 +0000 2025",
      "url": "https://example.com/link-94089/profile-41921/username/status/2001999095998341221",
      "in_reply_to_tweet_id": "2007004865909078001",
      "in_reply_to_username": "sample_user_23211"
    }
  }
}

API Playground

POST/tw-v2/interaction/reply-post-with-media

Sensitive Credentials Required

Requires your Twitter authToken. Use a test account.

Press ⌘ + Enter to execute

curl -X POST "https://api.tweetapi.com/tw-v2/interaction/reply-post-with-media" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Response

Click "Try It!" to see the response