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 - does not consume credits

Choose the Tweet Draft Fields

Send a JSON object with one required field and two optional fields. The supported goal values are engagement, followers, authority, and conversation. Match the lowercase value exactly. An unsupported goal is silently omitted. A non-string goal is also omitted. Validate this field before sending the request. A topic longer than 500 characters is silently truncated. A non-string topic is omitted. 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 canonical draft object. Optional topic and goal fields are omitted 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

Draft creation supports a human or agent approval checkpoint.
  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. Persist every 201 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, preserve the submitted text. Retry only after the server’s delay. Reconcile the list when the original request may have succeeded.

Answer 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 preserve thread structure in your publishing workflow.

Can I Attach Media or a Reply Target?

No. The canonical 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. Values longer than 500 characters are silently truncated.
string
Optional goal: engagement, followers, authority, or conversation. Other values are silently omitted.

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 inventory saved text, Get Draft to retrieve one record, or Delete Draft to remove it.