curl --request POST \
--url https://api.superx.so/v1/posts/draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"brief": "We cut churn from 6.2% to 3.8% by replacing the onboarding video with a 3-step checklist."
}
'{
"data": {
"drafts": [
{
"text": "Most founders think they need better retention strategies.\n\nThey do not.\n\nThey need simpler onboarding.",
"mirrored": {
"source": "you"
}
}
],
"credits_charged": 3
}
}{
"error": {
"code": "mirror_rejected",
"message": "That post cannot be used as a mirror (url). Pass the plain text of a substantial post with no links and no engagement bait."
}
}{
"error": {
"code": "invalid_api_key",
"message": "Unknown or revoked API key"
}
}{
"error": {
"code": "writes_main_account_only",
"message": "Accounts shared with you are read-only through the API. Drafting works on your own main and linked accounts."
}
}{
"error": {
"code": "account_not_found",
"message": "No account with that id belongs to this key"
}
}{
"error": {
"code": "creator_style_pending",
"message": "Style guide for @naval is being prepared, retry in about a minute."
}
}{
"error": {
"code": "ai_credits_exhausted",
"message": "Not enough AI credits. Resets in 5 hours.",
"credits_required": 9,
"credits_remaining": 2,
"reset_at": 1790812800
}
}{
"error": {
"code": "internal_error",
"message": "Failed to fetch posts"
}
}{
"error": {
"code": "generation_failed",
"message": "Drafting failed and no credits were spent. Try again shortly."
}
}Write post drafts in your voice
Writes post drafts from a brief, in the account’s own voice. Nothing
is scheduled and nothing is stored: the response is text for you to
review and edit, then send to POST /v1/scheduled-posts to save a
draft or schedule it.
Every draft copies the SHAPE of a proven post, never its content.
Pass one in mirror (the text of a post from GET /v1/inspiration
works well), or leave mirror out and a proven shape is picked for
you, optionally biased toward a collection.
Voice: mine (default) writes as the account in account_id, from
that account’s own posts, style guide and rules (your main account
when account_id is omitted), creator writes in a creator’s style,
and hybrid keeps the account’s substance with the creator’s flavor.
The creator’s style guide is prepared in the
background the first time you name them; that first call returns
409 creator_style_pending and the retry a minute later succeeds.
Costs AI credits per draft (drafts that fail are refunded), and a
call takes roughly 20 to 40 seconds. Idempotency-Key is NOT
supported: generation is not idempotent, and a replay would produce
different text anyway.
curl --request POST \
--url https://api.superx.so/v1/posts/draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"brief": "We cut churn from 6.2% to 3.8% by replacing the onboarding video with a 3-step checklist."
}
'{
"data": {
"drafts": [
{
"text": "Most founders think they need better retention strategies.\n\nThey do not.\n\nThey need simpler onboarding.",
"mirrored": {
"source": "you"
}
}
],
"credits_charged": 3
}
}{
"error": {
"code": "mirror_rejected",
"message": "That post cannot be used as a mirror (url). Pass the plain text of a substantial post with no links and no engagement bait."
}
}{
"error": {
"code": "invalid_api_key",
"message": "Unknown or revoked API key"
}
}{
"error": {
"code": "writes_main_account_only",
"message": "Accounts shared with you are read-only through the API. Drafting works on your own main and linked accounts."
}
}{
"error": {
"code": "account_not_found",
"message": "No account with that id belongs to this key"
}
}{
"error": {
"code": "creator_style_pending",
"message": "Style guide for @naval is being prepared, retry in about a minute."
}
}{
"error": {
"code": "ai_credits_exhausted",
"message": "Not enough AI credits. Resets in 5 hours.",
"credits_required": 9,
"credits_remaining": 2,
"reset_at": 1790812800
}
}{
"error": {
"code": "internal_error",
"message": "Failed to fetch posts"
}
}{
"error": {
"code": "generation_failed",
"message": "Drafting failed and no credits were spent. Try again shortly."
}
}Authorizations
A SuperX API key ("sxk_..."), created in the SuperX app under Account > API / MCP / CLI. Keys are server-side secrets.
Body
What the post should say: the data, angle, or notes to write from.
1 - 2000How many drafts to write. Each one costs credits.
1 <= x <= 3Whose voice to write in. mine is the voice of the account in account_id: its own posts, style guide and rules. Omit account_id and that is your main account.
mine, creator, hybrid X handle to borrow style from, for example @naval. Required when voice is creator or hybrid, rejected when voice is mine.
Plain text of a proven post whose shape to copy. Only the form is reused, never the content. Pick a mirror with room for your data: a two-line aphorism squeezes the facts out. Omit to have a shape picked for you.
50 - 1500Format collection id to bias the picked shape toward, for example numbered_list or contrarian_take. Used only when mirror is omitted; an id that is unknown or not usable as a mirror fails with 400 invalid_collection, which lists the ids that do work.
Extra style instructions for this batch.
500Any account you own, meaning your main account (the default when omitted) or one linked to it. With voice: mine the drafts use this account's own posts and style guide. An account shared with you returns 403 writes_main_account_only.
Response
The generated drafts. Nothing was scheduled or stored.
Show child attributes
Show child attributes