curl --request POST \
--url https://api.superx.so/v1/engage/reply-draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"post_id": "1899000000000000000",
"thoughts": "agree, and we saw the same thing after switching onboarding",
"tone": "concise"
}
'{
"data": {
"reply": "had the exact same thing, it was positioning the whole time",
"post_id": "1899000000000000000",
"author_handle": "levelsio"
},
"meta": {
"credits_charged": 2,
"account_id": "1178367350552305665"
},
"note": "The draft is text. Nothing is posted or sent; a person reviews and posts it."
}Draft one reply to a post
Writes ONE reply draft in the account’s own voice, using the same engine, prompts and voice settings as the Generate Reply button in the SuperX app.
The draft is text. A person posts it. No endpoint in this API posts a reply, and this one does not either: it returns wording for someone to read, edit and send from X or from the SuperX app. Sending replies that read as inauthentic can get an X account suspended under X’s inauthentic-behavior rules and a SuperX account terminated. AI output must be reviewed and meaningfully edited by a person before it is posted.
Name the post exactly one of two ways:
post_idreads the post LIVE, so the draft sees the real text, the real author and the quoted post if there is one. That read costs one live lookup on top of the credit, from the same allowance the/v1/x/*endpoints use.postsupplies the text (and optionally the author) yourself, and nothing is read live.
Add conversation (oldest first) when the post sits in a thread, and
quoted_post when it quotes something you already have. thoughts is
what the person wants the reply to convey: ask them for it rather than
inventing an opinion on their behalf. tone picks the register.
Costs AI credits, measured from the models’ real cost and typically 2
(the reply write plus the shared post-editor pass that runs after it).
Needs a key with the write scope. Accounts shared with you work
here: the draft changes nothing on the account, and the credits come
from the key owner’s pool.
curl --request POST \
--url https://api.superx.so/v1/engage/reply-draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"post_id": "1899000000000000000",
"thoughts": "agree, and we saw the same thing after switching onboarding",
"tone": "concise"
}
'{
"data": {
"reply": "had the exact same thing, it was positioning the whole time",
"post_id": "1899000000000000000",
"author_handle": "levelsio"
},
"meta": {
"credits_charged": 2,
"account_id": "1178367350552305665"
},
"note": "The draft is text. Nothing is posted or sent; a person reviews and posts it."
}Authorizations
A SuperX API key ("sxk_..."), created in the SuperX app under Account > API / MCP / CLI. Keys are server-side secrets.
Body
Exactly one of post_id and post is required.
An X post id. The API reads the post live, which costs one live lookup on top of the credit.
^[0-9]{1,25}$A post, supplied by you rather than read from X.
Show child attributes
Show child attributes
The thread so far, OLDEST FIRST, so the reply fits the conversation.
10Show child attributes
Show child attributes
The post that the post being replied to quotes. Filled in automatically when you pass post_id.
Show child attributes
Show child attributes
What the person wants the reply to convey. Ask them; do not invent an opinion for them.
2000engaging, humorous, creative, sarcastic, inspirational, concise