Skip to main content
POST
Create a tweet draft for review with the Xquik API

Save a tweet draft before publishing

Create one private tweet draft inside your authenticated Xquik account. Supply the proposed text and optional composition context. The response returns a stable Xquik draft ID for review or deletion. This request does not publish a tweet. It sends nothing to followers and creates no replies, reposts, likes, impressions, or public tweet ID. Xquik drafts are separate from X’s native Unsent posts. Creating a record here does not add anything to the X compose interface.
Free. This endpoint does not consume credits.

Choose the tweet draft fields

Send a JSON object with 1 required field and 2 optional fields. The supported goal values are engagement, followers, authority, and conversation. Match the lowercase value exactly. The API silently omits an unsupported goal. It also omits a non-string goal. Validate this field before sending the request. The API silently truncates a topic longer than 500 characters. It omits a non-string topic. Trim and validate the topic inside your client. The text field behaves differently. Missing, empty, non-string, or oversized text returns 400 invalid_input. Xquik never silently truncates draft text. The 25,000-character storage limit is not a publishing guarantee. Confirm the connected account’s X posting rules before a separate write request.

Read the created draft

A successful request returns 201 Created and one draft object. The API omits optional topic and goal fields when unset or invalid. Do not expect those keys to contain null. The response contains no thread order, media attachment, reply target, schedule, publishing status, or public tweet ID.

Build a tweet draft review workflow

Create a draft when a person or agent must approve text before publishing.
  1. Prepare one exact tweet text string.
  2. Add a short topic when reviewers need context.
  3. Choose one supported composition goal.
  4. Create the Xquik draft once.
  5. Store the returned draft ID.
  6. Retrieve that ID before final approval.
  7. Compare text, context, and timestamps.
  8. Publish approved text through a separate X write route.
  9. Delete the saved draft after retention requirements allow it.
This route provides no edit operation. Create a replacement draft when text must change. Keep the old ID until reviewers approve the replacement. This route also provides no idempotency key. Repeating the same successful request creates another draft record. Store every 201 response before creating again. After a lost response, list and reconcile drafts before retrying. Use List Drafts to reconcile duplicate records. Use Get Draft before publishing or deleting one.

Keep Xquik and native X drafts separate

Native X drafts appear under Unsent posts in the X compose interface. Native thread drafts can contain several connected posts. Native drafts can also carry photos, GIFs, or video. An Xquik draft stores one text string plus optional composition context. It does not mirror native draft features or publish automatically. Keep thread items, media IDs, reply targets, and scheduling instructions in your publishing workflow. Do not assume the draft response contains them.

Recover from draft creation errors

Never retry 400 without changing the body. Never retry 401 without replacing the credential. After 429, keep the submitted text. Retry only after the server’s delay. Reconcile the list when the original request may have succeeded.

Tweet draft creation questions

How can I save a tweet draft through an API?

Send POST /drafts with a JSON text string. Authenticate with an Xquik API key or OAuth bearer token.

Does creating a draft publish the tweet?

No. The request stores private Xquik text only. Publish through a separate write route after approval.

Does the draft appear in X unsent posts?

No. Xquik draft records and native X drafts are separate collections.

Can one draft store a Twitter thread?

No. One draft stores one text string. Create and keep thread structure in your publishing workflow.

Can I attach media or a reply target?

No. Draft fields contain no media or reply target. Add those details during a separate publishing request.

Can I update a saved tweet draft?

No update route exists. Create a replacement, approve it, then delete the old record when safe.

Does creating a tweet draft consume credits?

No. This authenticated draft creation request is free.

Headers

string
Your Xquik API key. Generate one from the dashboard.
string
An OAuth bearer token formatted as Bearer YOUR_TOKEN. Send this header or x-api-key, not both.
string
required
Must be application/json.

Body

string
required
Exact draft text. Send 1 to 25,000 characters. Oversized text returns 400.
string
Optional composition topic. The API silently truncates values longer than 500 characters.
string
Optional goal: engagement, followers, authority, or conversation. The API silently omits other values.

Response

201 Created

string
Unique Xquik draft ID.
string
Exact accepted tweet text.
string
Optional accepted topic. Omitted when unset.
string
Optional accepted goal. Omitted when unset.
string
ISO 8601 creation timestamp.
string
ISO 8601 update timestamp.

400 Invalid input

The text field is missing, empty, non-string, or longer than 25,000 characters.

401 Unauthenticated

Authentication is missing or invalid. Replace the credential before retrying.

429 Rate limited

Too many requests reached the route. Wait for Retry-After before retrying.
Next steps. List Drafts to list saved text, Get Draft to retrieve one record, or Delete Draft to remove it.