Account actions

Post a tweet

Post a tweet, quote tweet, long tweet, poll, community tweet or scheduled tweet from your account.

Poll example: {"text": "Tabs or spaces?", "poll": {"choices": ["Tabs", "Spaces"], "duration_minutes": 1440}}.

Reference: https://www.twittrapi.com/docs/account-actions/client-create

post/client/create

Request

  • Base URL: https://api.twittrapi.com
  • URL: https://api.twittrapi.com/client/create
  • Auth: API key in header X-API-KEY

Query parameters

format'raw' | 'simple'

raw (default): X's JSON passed through. simple: flat camelCase JSON with a fixed schema and a {data, nextCursor, previousCursor, hasNextPage} envelope. Same price. The header X-Response-Format: simple does the same.

Request body

cookiestring required

Cookie header of your own logged-in X session: auth_token=...; ct0=... (guest_id is used when present). How to copy it: /docs/x-session.

proxystring required

Your proxy, format http://user:pass@host:port. The requests to X go out through it. Used only for this request.

textstring required

Tweet text. Over 280 characters it is sent as a long post (note tweet).

media_idsstring[]

Media IDs from /client/media or /client/media/video.

possibly_sensitiveboolean

Mark the media as sensitive.

conversation_control_modestring

Who can reply: only_follows, only_verified or only_mentioned. Not used for community tweets.

quote_urlstring

URL of a tweet to quote.

community_idstring

Post into this community.

is_note_tweetboolean

Force a long post even for short text.

schedule_timeinteger

Unix time in seconds. When set, the tweet is scheduled instead of posted; only text and media are used.

pollstring

{choices, duration_minutes}: adds a text poll. choices: 2 to 4 strings, each 1 to 25 characters. duration_minutes: 5 to 10080 (7 days), default 1440 (1 day). Cannot be combined with media_ids, quote_url, schedule_time or community_id, and the text must stay within 280 characters (no long post).

Response

Wrapper built by the API: {"status_code": <X status>, "response": "<X response body as a string>"}. The HTTP status is X's status when X answered 4xx or 5xx, otherwise 200. Parse response a second time to get X's JSON.

With format=simple: {data: Tweet}: the tweet you just posted. With schedule_time: {data: {success: true, scheduledTweetId}}. When X reports an error inside the wrapper (for example a tweet that is already liked), the usual wrapper is returned unchanged.

RawPassthrough required

X's own JSON (raw format, the default), passed through unchanged. The shape is X's and can change; see https://www.twittrapi.com/docs/response-format.

Changes

No recorded changes to this operation across all 1 revision of this API.