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."}
Engage
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_id reads 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.
post supplies 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.
POST
/
v1
/
engage
/
reply-draft
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."}
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SuperX","colors":{"primary":"#F4503B","light":"#FB7359","dark":"#D93820"},"logo":{"light":"https://mintcdn.com/superx/ZOrKRYsYXbBhitoI/logo/light.svg?fit=max\u0026auto=format\u0026n=ZOrKRYsYXbBhitoI\u0026q=85\u0026s=d465c38938c34f6ab75cfc50d0039be2","dark":"https://mintcdn.com/superx/ZOrKRYsYXbBhitoI/logo/dark.svg?fit=max\u0026auto=format\u0026n=ZOrKRYsYXbBhitoI\u0026q=85\u0026s=b717e05282be47857b4c42e3c9f28b15"},"favicon":"https://mintcdn.com/superx/ZOrKRYsYXbBhitoI/favicon.png?fit=max\u0026auto=format\u0026n=ZOrKRYsYXbBhitoI\u0026q=85\u0026s=05aaa6612cdd959e0edb14d963806660","appearance":{"default":"system"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superx","hasAudioNarration":false,"actualSubdomain":"superx","customDomains":["docs.superx.so"],"gitSource":{"type":"github","owner":"superx-so","repo":"superx-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ac68ff611e54a617d7548d2","collectionId":"371386e6-3679-44e4-aa28-f1b7adee5865","liveDeploymentHistoryId":"6ac68ff611e54a617d7548d2","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac68ff611e54a617d7548d2","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":106},{"language":"default","tag":"Signals","count":12},{"language":"default","tag":"Documentation","count":10},{"language":"default","tag":"Articles","count":10},{"language":"default","tag":"Scheduling","count":10},{"language":"default","tag":"Audience","count":9},{"language":"default","tag":"Contact Lists","count":9},{"language":"default","tag":"Datasets","count":8},{"language":"default","tag":"Context","count":7},{"language":"default","tag":"Engage","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/engage/draft-one-reply-to-a-post","slug":"/api-reference/engage/draft-one-reply-to-a-post","pageMetadata":{"title":"Draft one reply to a post","description":"Writes ONE reply draft in the account's own voice, using the same\nengine, prompts and voice settings as the Generate Reply button in the\nSuperX app.\n\n**The draft is text. A person posts it.** No endpoint in this API\nposts a reply, and this one does not either: it returns wording for\nsomeone to read, edit and send from X or from the SuperX app. Sending\nreplies that read as inauthentic can get an X account suspended under\nX's inauthentic-behavior rules and a SuperX account terminated. AI\noutput must be reviewed and meaningfully edited by a person before it\nis posted.\n\nName the post exactly one of two ways:\n\n- `post_id` reads the post LIVE, so the draft sees the real text, the\n real author and the quoted post if there is one. That read costs one\n live lookup on top of the credit, from the same allowance the\n `/v1/x/*` endpoints use.\n- `post` supplies the text (and optionally the author) yourself, and\n nothing is read live.\n\nAdd `conversation` (oldest first) when the post sits in a thread, and\n`quoted_post` when it quotes something you already have. `thoughts` is\nwhat the person wants the reply to convey: ask them for it rather than\ninventing an opinion on their behalf. `tone` picks the register.\n\nCosts AI credits, measured from the models' real cost and typically 2\n(the reply write plus the shared post-editor pass that runs after it).\nNeeds a key with the `write` scope. Accounts shared with you work\nhere: the draft changes nothing on the account, and the credits come\nfrom the key owner's pool.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/engage/reply-draft","href":"/api-reference/engage/draft-one-reply-to-a-post","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Writes ONE reply draft in the account’s own voice, using the same\\nengine, prompts and voice settings as the Generate Reply button in the\\nSuperX app.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"The draft is text. A person posts it.\"\n }), \" No endpoint in this API\\nposts a reply, and this one does not either: it returns wording for\\nsomeone to read, edit and send from X or from the SuperX app. Sending\\nreplies that read as inauthentic can get an X account suspended under\\nX’s inauthentic-behavior rules and a SuperX account terminated. AI\\noutput must be reviewed and meaningfully edited by a person before it\\nis posted.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Name the post exactly one of two ways:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"post_id\"\n }), \" reads the post LIVE, so the draft sees the real text, the\\nreal author and the quoted post if there is one. That read costs one\\nlive lookup on top of the credit, from the same allowance the\\n\", _jsx(_components.code, {\n children: \"/v1/x/*\"\n }), \" endpoints use.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"post\"\n }), \" supplies the text (and optionally the author) yourself, and\\nnothing is read live.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Add \", _jsx(_components.code, {\n children: \"conversation\"\n }), \" (oldest first) when the post sits in a thread, and\\n\", _jsx(_components.code, {\n children: \"quoted_post\"\n }), \" when it quotes something you already have. \", _jsx(_components.code, {\n children: \"thoughts\"\n }), \" is\\nwhat the person wants the reply to convey: ask them for it rather than\\ninventing an opinion on their behalf. \", _jsx(_components.code, {\n children: \"tone\"\n }), \" picks the register.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Costs AI credits, measured from the models’ real cost and typically 2\\n(the reply write plus the shared post-editor pass that runs after it).\\nNeeds a key with the \", _jsx(_components.code, {\n children: \"write\"\n }), \" scope. Accounts shared with you work\\nhere: the draft changes nothing on the account, and the credits come\\nfrom the key owner’s pool.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Draft one reply to a post","description":"Writes ONE reply draft in the account's own voice, using the same\nengine, prompts and voice settings as the Generate Reply button in the\nSuperX app.\n\n**The draft is text. A person posts it.** No endpoint in this API\nposts a reply, and this one does not either: it returns wording for\nsomeone to read, edit and send from X or from the SuperX app. Sending\nreplies that read as inauthentic can get an X account suspended under\nX's inauthentic-behavior rules and a SuperX account terminated. AI\noutput must be reviewed and meaningfully edited by a person before it\nis posted.\n\nName the post exactly one of two ways:\n\n- `post_id` reads the post LIVE, so the draft sees the real text, the\n real author and the quoted post if there is one. That read costs one\n live lookup on top of the credit, from the same allowance the\n `/v1/x/*` endpoints use.\n- `post` supplies the text (and optionally the author) yourself, and\n nothing is read live.\n\nAdd `conversation` (oldest first) when the post sits in a thread, and\n`quoted_post` when it quotes something you already have. `thoughts` is\nwhat the person wants the reply to convey: ask them for it rather than\ninventing an opinion on their behalf. `tone` picks the register.\n\nCosts AI credits, measured from the models' real cost and typically 2\n(the reply write plus the shared post-editor pass that runs after it).\nNeeds a key with the `write` scope. Accounts shared with you work\nhere: the draft changes nothing on the account, and the credits come\nfrom the key owner's pool.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/engage/reply-draft","href":"/api-reference/engage/draft-one-reply-to-a-post","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Engage"],"operationId":"draftEngageReply","summary":"Draft one reply to a post","description":"Writes ONE reply draft in the account's own voice, using the same\nengine, prompts and voice settings as the Generate Reply button in the\nSuperX app.\n\n**The draft is text. A person posts it.** No endpoint in this API\nposts a reply, and this one does not either: it returns wording for\nsomeone to read, edit and send from X or from the SuperX app. Sending\nreplies that read as inauthentic can get an X account suspended under\nX's inauthentic-behavior rules and a SuperX account terminated. AI\noutput must be reviewed and meaningfully edited by a person before it\nis posted.\n\nName the post exactly one of two ways:\n\n- `post_id` reads the post LIVE, so the draft sees the real text, the\n real author and the quoted post if there is one. That read costs one\n live lookup on top of the credit, from the same allowance the\n `/v1/x/*` endpoints use.\n- `post` supplies the text (and optionally the author) yourself, and\n nothing is read live.\n\nAdd `conversation` (oldest first) when the post sits in a thread, and\n`quoted_post` when it quotes something you already have. `thoughts` is\nwhat the person wants the reply to convey: ask them for it rather than\ninventing an opinion on their behalf. `tone` picks the register.\n\nCosts AI credits, measured from the models' real cost and typically 2\n(the reply write plus the shared post-editor pass that runs after it).\nNeeds a key with the `write` scope. Accounts shared with you work\nhere: the draft changes nothing on the account, and the credits come\nfrom the key owner's pool.\n","requestBody":"661f08c9-1ae3-49bc-b811-e937d755ef93","responses":{"200":"8e2b3af4-3285-499d-80b0-390c6b8afe98","400":"a91e2650-e6e3-470e-84b9-b9518881c6cb","401":"9833ea99-8118-4cde-a715-c157c7c5f844","403":"f0ab8a87-514b-4dbd-89c9-b77a1679f91e","404":"17ec4130-2855-4790-895d-2bad42cd5886","422":"6e332691-c745-475a-bcc6-da5c47efc72e","429":"bb5ec209-ec43-4dbd-a6ae-1b54f8da6b2b","500":"b5a36981-cd05-4c19-97dc-e5183d0b9e5c","502":"a1373e1a-2749-4d26-a726-cde92e720666","503":"5eda9c95-af0e-44b6-b035-2d42660e0489"},"method":"post","type":"path","servers":["3d538a38-214d-4480-97a3-9a44d5c3102b"],"security":["d3f7d345-7007-489f-b114-dac4df3cb92f"],"path":"/v1/engage/reply-draft","baseUrlOptions":["https://api.superx.so"],"title":"Draft one reply to a post","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Exactly one of post_id and post is required.","properties":{"post_id":{"type":"string","pattern":"^[0-9]{1,25}$","description":"An X post id. The API reads the post live, which costs one live lookup on top of the credit.","uniqueKey":"post_id","typeLabel":"string"},"post":{"type":"object","required":["text"],"description":"A post, supplied by you rather than read from X.","properties":{"text":{"type":"string","minLength":1,"maxLength":4000,"isRequired":true,"uniqueKey":"post.text","typeLabel":"string"},"author_name":{"type":"string","maxLength":200,"description":"The author's display name.","uniqueKey":"post.author_name","typeLabel":"string"},"author_handle":{"type":"string","maxLength":200,"description":"The author's handle. A leading @ is accepted and stripped.","uniqueKey":"post.author_handle","typeLabel":"string"}},"uniqueKey":"post","typeLabel":"object"},"conversation":{"type":"array","maxItems":10,"description":"The thread so far, OLDEST FIRST, so the reply fits the conversation.","items":{"type":"object","required":["text"],"description":"A post, supplied by you rather than read from X.","properties":{"text":{"type":"string","minLength":1,"maxLength":4000,"isRequired":true,"uniqueKey":"conversation.items.[INDEX].text","typeLabel":"string"},"author_name":{"type":"string","maxLength":200,"description":"The author's display name.","uniqueKey":"conversation.items.[INDEX].author_name","typeLabel":"string"},"author_handle":{"type":"string","maxLength":200,"description":"The author's handle. A leading @ is accepted and stripped.","uniqueKey":"conversation.items.[INDEX].author_handle","typeLabel":"string"}},"uniqueKey":"conversation.items.[INDEX]","typeLabel":"object"},"uniqueKey":"conversation","typeLabel":"object[]"},"quoted_post":{"type":"object","description":"The post that the post being replied to quotes. Filled in automatically when you pass post_id.","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":4000,"isRequired":true,"uniqueKey":"quoted_post.text","typeLabel":"string"},"author_name":{"type":"string","maxLength":200,"description":"The author's display name.","uniqueKey":"quoted_post.author_name","typeLabel":"string"},"author_handle":{"type":"string","maxLength":200,"description":"The author's handle. A leading @ is accepted and stripped.","uniqueKey":"quoted_post.author_handle","typeLabel":"string"}},"uniqueKey":"quoted_post","typeLabel":"object"},"thoughts":{"type":"string","maxLength":2000,"description":"What the person wants the reply to convey. Ask them; do not invent an opinion for them.","uniqueKey":"thoughts","typeLabel":"string"},"tone":{"type":"string","enum":["engaging","humorous","creative","sarcastic","inspirational","concise"],"uniqueKey":"tone","typeLabel":"enum\u003cstring>"},"account_id":{"type":"string","uniqueKey":"account_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"by_post_id":{"title":"by_post_id","value":{"post_id":"1899000000000000000","thoughts":"agree, and we saw the same thing after switching onboarding","tone":"concise"}},"by_text":{"title":"by_text","value":{"post":{"text":"Most founders think they have a traffic problem.","author_name":"Pieter Levels","author_handle":"levelsio"},"tone":"engaging"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"8e2b3af4-3285-499d-80b0-390c6b8afe98":{"description":"The reply draft.","headers":{"X-Credits-Charged":{"description":"AI credits kept for this call. Sent on every endpoint that settles its charge before answering, which is all of them except the ones that answer 202 and finish in the background.","schema":{"type":"integer"}},"X-Credits-Remaining":{"description":"AI credits left in the account's pool, bonus credits included.","schema":{"type":"integer"}},"X-Credits-Reset":{"description":"Unix timestamp (seconds) when the AI credit pool refills.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"reply":{"type":"string","description":"The draft reply. Nothing was posted or sent.","uniqueKey":"data.reply","typeLabel":"string"},"post_id":{"oneOf":[{"type":"string","description":"The post replied to, when you named one by id.","uniqueKey":"data.post_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The post replied to, when you named one by id.","uniqueKey":"data.post_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.post_id","typeLabel":"string | null"},"author_handle":{"oneOf":[{"type":"string","description":"The author replied to, without the @, when it is known.","uniqueKey":"data.author_handle.oneOf.0","typeLabel":"string"},{"type":"null","description":"The author replied to, without the @, when it is known.","uniqueKey":"data.author_handle.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.author_handle","typeLabel":"string | null"}},"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","description":"What the call cost and which account it ran as.","properties":{"credits_charged":{"type":"integer","description":"AI credits kept for this call, settled from the models' real cost.","uniqueKey":"meta.credits_charged","typeLabel":"integer"},"account_id":{"type":"string","description":"The X account the call ran as.","uniqueKey":"meta.account_id","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"},"note":{"type":"string","uniqueKey":"note","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"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."},"examples":{"Example":{"title":"Example","value":{"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."}}},"exampleType":"examples"}},"exampleType":"examples"},"a91e2650-e6e3-470e-84b9-b9518881c6cb":{"description":"A parameter is missing, malformed, or out of range.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_parameter","message":"since must be a UTC ISO-8601 timestamp"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_parameter","message":"since must be a UTC ISO-8601 timestamp"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9833ea99-8118-4cde-a715-c157c7c5f844":{"description":"Missing/malformed Authorization header (`unauthorized`) or an unknown/revoked key (`invalid_api_key`).","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"invalid_api_key","message":"Unknown or revoked API key"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_api_key","message":"Unknown or revoked API key"}}}},"exampleType":"examples"}},"exampleType":"examples"},"f0ab8a87-514b-4dbd-89c9-b77a1679f91e":{"description":"Read-only key (`insufficient_scope`), an account shared with you (`writes_main_account_only`; shared accounts are read-only through the API, your own linked accounts are not), or a lapsed subscription (legacy string envelope).","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"oneOf.0.error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Legacy shape used ONLY by the shared subscription middleware: a plain\nstring `error` field. Seen on `403` when the subscription has lapsed\n(string starts with \"subscription_required:\") and on `500` when\nsubscription verification fails (string starts with \"internal_error:\").\n","required":["error"],"properties":{"error":{"type":"string","example":"subscription_required: The SuperX API requires an active subscription","isRequired":true,"uniqueKey":"oneOf.1.error","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"insufficient_scope","message":"This API key is read-only. Create a key with the write scope to use this endpoint."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"insufficient_scope","message":"This API key is read-only. Create a key with the write scope to use this endpoint."}}}},"exampleType":"examples"}},"exampleType":"examples"},"17ec4130-2855-4790-895d-2bad42cd5886":{"description":"No public post with that id, or it is protected or deleted.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"post_not_found","message":"No public post with that id."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"post_not_found","message":"No public post with that id."}}}},"exampleType":"examples"}},"exampleType":"examples"},"6e332691-c745-475a-bcc6-da5c47efc72e":{"description":"The post was read but carries no text to reply to. Supply the text yourself with `post`.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"post_has_no_text","message":"That post carries no text to reply to. Supply the text yourself with `post` instead."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"post_has_no_text","message":"That post carries no text to reply to. Supply the text yourself with `post` instead."}}}},"exampleType":"examples"}},"exampleType":"examples"},"bb5ec209-ec43-4dbd-a6ae-1b54f8da6b2b":{"description":"Rate limited (`rate_limited`, honor `Retry-After`), the AI credit pool\nis used up (`ai_credits_exhausted`, with the credit counters), or a\ndaily cap on the action was hit (`ai_action_limited`).\n\nOn `ai_action_limited`, `error.scope` says which ceiling. `account`\nis one of your own: the plan's daily cap for a metered action, the\nonce-an-hour limit on style guide regeneration (where `reset_at` is an\nhour after the last run rather than midnight), the 3 live style-guide\nattempts a day, or the 20 page reads a day shared with the SuperX app.\n`platform` is the platform-wide fair-use ceiling on live-data actions,\nshared with every SuperX account: a `platform` refusal is not about\nthis account's quota, so wait for `reset_at` and retry.\n\nThe free endpoints send `X-Credits-Remaining` and `X-Credits-Reset` on\nthis 429 as they do on a 200, since nothing was charged either way.\n","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Sent on every flavour of this 429.","schema":{"type":"integer"}},"X-Credits-Remaining":{"description":"Credits left in the pool. Sent only on `ai_credits_exhausted`.","schema":{"type":"integer"}},"X-Credits-Reset":{"description":"Unix seconds when the pool refills. Sent only on `ai_credits_exhausted`.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"The `429 ai_credits_exhausted` body: the standard envelope plus the\ncredit counters. Sent with a `Retry-After` header and the\n`X-Credits-Remaining` / `X-Credits-Reset` headers. `code` is stable;\nthe counters are additive fields, safe to ignore.\n","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["ai_credits_exhausted"],"isRequired":true,"uniqueKey":"oneOf.0.error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"credits_required":{"type":"integer","description":"Credits the call needed.","uniqueKey":"oneOf.0.error.credits_required","typeLabel":"integer"},"credits_remaining":{"oneOf":[{"type":"integer","description":"Credits available when it was refused.","uniqueKey":"oneOf.0.error.credits_remaining.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Credits available when it was refused.","uniqueKey":"oneOf.0.error.credits_remaining.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.error.credits_remaining","typeLabel":"integer | null"},"reset_at":{"oneOf":[{"type":"integer","description":"Unix timestamp (seconds) when the pool refills.","uniqueKey":"oneOf.0.error.reset_at.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Unix timestamp (seconds) when the pool refills.","uniqueKey":"oneOf.0.error.reset_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.error.reset_at","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"The `429 ai_action_limited` body: a per-day cap on how many times an\nexpensive action can run, counted separately from the credit pool and\nfrom the request rate limits. Sent with a `Retry-After` header. Caps\nreset at midnight UTC.\n\nRead `scope` before telling a user anything: `account` means the\nplan's own daily cap for that action, `platform` means the\nplatform-wide fair-use ceiling on live-data actions, which is shared\nwith every SuperX account. A `platform` refusal is not about this\naccount's quota, so wait and retry rather than reporting the account\nas out.\n","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["ai_action_limited"],"isRequired":true,"uniqueKey":"oneOf.1.error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.error.message","typeLabel":"string"},"scope":{"type":"string","enum":["account","platform"],"description":"Whose ceiling refused the call: this account's own per-day cap\nfor the action, or the platform-wide fair-use ceiling on\nlive-data actions.\n","uniqueKey":"oneOf.1.error.scope","typeLabel":"enum\u003cstring>"},"retry_after":{"type":"integer","description":"Seconds to wait before the cap resets.","uniqueKey":"oneOf.1.error.retry_after","typeLabel":"integer"},"reset_at":{"type":"integer","description":"Unix seconds when the cap resets (the next UTC midnight).","uniqueKey":"oneOf.1.error.reset_at","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"oneOf.1.error","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"oneOf.2.error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.2.error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"oneOf.2.error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"oneOf.2.error","typeLabel":"object"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"ai_action_limited_account":{"title":"ai_action_limited_account","value":{"error":{"code":"ai_action_limited","message":"Daily limit reached for this action on your plan (10 lead searches per day). It resets at midnight UTC.","scope":"account","retry_after":20400,"reset_at":1789430400}}},"ai_action_limited_platform":{"title":"ai_action_limited_platform","value":{"error":{"code":"ai_action_limited","message":"The platform-wide fair-use ceiling for live-data actions has been reached for today. It resets at midnight UTC.","scope":"platform","retry_after":20400,"reset_at":1789430400}}},"ai_credits_exhausted":{"title":"ai_credits_exhausted","value":{"error":{"code":"ai_credits_exhausted","message":"Not enough AI credits. Resets in 5 hours.","credits_required":2,"credits_remaining":0,"reset_at":1790812800}}}},"exampleType":"examples"}},"exampleType":"examples"},"b5a36981-cd05-4c19-97dc-e5183d0b9e5c":{"description":"Unexpected server error. May also use the legacy string envelope when subscription verification fails.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"oneOf.0.error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"oneOf.0.error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Legacy shape used ONLY by the shared subscription middleware: a plain\nstring `error` field. Seen on `403` when the subscription has lapsed\n(string starts with \"subscription_required:\") and on `500` when\nsubscription verification fails (string starts with \"internal_error:\").\n","required":["error"],"properties":{"error":{"type":"string","example":"subscription_required: The SuperX API requires an active subscription","isRequired":true,"uniqueKey":"oneOf.1.error","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"internal_error","message":"Failed to fetch posts"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"internal_error","message":"Failed to fetch posts"}}}},"exampleType":"examples"}},"exampleType":"examples"},"a1373e1a-2749-4d26-a726-cde92e720666":{"description":"A dependent SuperX service returned an unexpected response.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"upstream_error","message":"Failed to fetch scheduled posts. Try again shortly."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"upstream_error","message":"Failed to fetch scheduled posts. Try again shortly."}}}},"exampleType":"examples"}},"exampleType":"examples"},"5eda9c95-af0e-44b6-b035-2d42660e0489":{"description":"Linked-account verification is temporarily unavailable (fail closed). The main account keeps working.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying (rate-limit errors only).","uniqueKey":"error.retry_after","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"accounts_unavailable","message":"Account information is temporarily unavailable. Try again shortly."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"accounts_unavailable","message":"Account information is temporarily unavailable. Try again shortly."}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d3f7d345-7007-489f-b114-dac4df3cb92f":{"apiKey":{"type":"http","scheme":"bearer","description":"A SuperX API key (\"sxk_...\"), created in the SuperX app under Account > API / MCP / CLI. Keys are server-side secrets.","scopes":[],"schemeName":"apiKey"}}},"servers":{"3d538a38-214d-4480-97a3-9a44d5c3102b":{"url":"https://api.superx.so"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"A SuperX API key (\"sxk_...\"), created in the SuperX app under Account > API / MCP / CLI. Keys are server-side secrets.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A SuperX API key (\"sxk_...\"), created in the SuperX app under Account > API / MCP / CLI. Keys are server-side secrets.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"superx","siteName":"SuperX","title":"Draft one reply to a post - SuperX","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-07T18:31:25.177Z","originalFileLocation":"api-reference/engage/draft-one-reply-to-a-post.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Writes ONE reply draft in the account\u0026#x27;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\u0026#x27;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_id reads 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. - post supplies 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\u0026#x27; 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\u0026#x27;s pool.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SuperX\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Draft one reply to a post - SuperX\">\u003cmeta data-mint-head property=\"og:description\" content=\"Writes ONE reply draft in the account\u0026#x27;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\u0026#x27;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_id reads 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. - post supplies 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\u0026#x27; 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\u0026#x27;s pool.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SuperX\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superx.mintlify.app/_mintlify/api/og/v2?division=Engage\u0026amp;title=Draft+one+reply+to+a+post\u0026amp;description=Writes+ONE+reply+draft+in+the+account%27s+own+voice%2C+using+the+same%0Aengine%2C+prompts+and+voice+settings+as+the+Generate+Reply+button+in+the%0ASuperX+app.%0A%0A**The+draf\u0026amp;theme=4e9a0bdaa172d4dfc537fe9f\u0026amp;signature=801247f5b6fe33b5fa577c719f7da0248c948ded2dac781899b7f79c529a8b21\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Draft one reply to a post - SuperX\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Writes ONE reply draft in the account\u0026#x27;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\u0026#x27;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_id reads 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. - post supplies 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\u0026#x27; 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\u0026#x27;s pool.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superx.mintlify.app/_mintlify/api/og/v2?division=Engage\u0026amp;title=Draft+one+reply+to+a+post\u0026amp;description=Writes+ONE+reply+draft+in+the+account%27s+own+voice%2C+using+the+same%0Aengine%2C+prompts+and+voice+settings+as+the+Generate+Reply+button+in+the%0ASuperX+app.%0A%0A**The+draf\u0026amp;theme=4e9a0bdaa172d4dfc537fe9f\u0026amp;signature=801247f5b6fe33b5fa577c719f7da0248c948ded2dac781899b7f79c529a8b21\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/superx/Ohz_C_TMxE84ikvK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SuperX\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F4503B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/engage/draft-one-reply-to-a-post.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.superx.so/#organization\",\"name\":\"SuperX\",\"url\":\"https://docs.superx.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superx/ZOrKRYsYXbBhitoI/logo/light.svg?fit=max\u0026auto=format\u0026n=ZOrKRYsYXbBhitoI\u0026q=85\u0026s=d465c38938c34f6ab75cfc50d0039be2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.superx.so#website\",\"name\":\"SuperX\",\"url\":\"https://docs.superx.so\",\"publisher\":{\"@id\":\"https://docs.superx.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post#webpage\",\"url\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post\",\"name\":\"Draft one reply to a post\",\"description\":\"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_id reads 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. - post supplies 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.\",\"dateModified\":\"2026-10-07T18:31:25.177Z\",\"isPartOf\":{\"@id\":\"https://docs.superx.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Engage\",\"item\":\"https://docs.superx.so/api-reference/engage/list-engage-feeds\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Draft one reply to a post\",\"item\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post#apireference\",\"headline\":\"Draft one reply to a post\",\"name\":\"Draft one reply to a post\",\"description\":\"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_id reads 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. - post supplies 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.\",\"url\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post\",\"mainEntityOfPage\":{\"@id\":\"https://docs.superx.so/api-reference/engage/draft-one-reply-to-a-post#webpage\"},\"dateModified\":\"2026-10-07T18:31:25.177Z\",\"publisher\":{\"@id\":\"https://docs.superx.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.superx.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SuperX\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SuperX","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Identity","pages":[{"title":"Get the key owner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/me","href":"/api-reference/identity/get-the-key-owner"},{"title":"List your accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/accounts","href":"/api-reference/identity/list-your-accounts"}]},{"group":"Content","pages":[{"title":"List published posts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/posts","href":"/api-reference/content/list-published-posts"},{"title":"List replies you sent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/replies","href":"/api-reference/content/list-replies-you-sent"}]},{"group":"Analytics","pages":[{"title":"Get analytics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/posts/analytics","href":"/api-reference/analytics/get-analytics"}]},{"group":"Scheduling","pages":[{"title":"Write post drafts in your voice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/posts/draft","href":"/api-reference/scheduling/write-post-drafts-in-your-voice"},{"title":"Rewrite a post in your voice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/posts/remix","href":"/api-reference/scheduling/rewrite-a-post-in-your-voice"},{"title":"List drafts and scheduled posts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/scheduled-posts","href":"/api-reference/scheduling/list-drafts-and-scheduled-posts"},{"title":"Create a draft or scheduled post, or publish now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/scheduled-posts","href":"/api-reference/scheduling/create-a-draft-or-scheduled-post-or-publish-now"},{"title":"Retime queued posts in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/scheduled-posts/bulk/retime","href":"/api-reference/scheduling/retime-queued-posts-in-bulk"},{"title":"Enable auto retweet on queued posts in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/scheduled-posts/bulk/auto-retweet","href":"/api-reference/scheduling/enable-auto-retweet-on-queued-posts-in-bulk"},{"title":"Delete queued posts in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/scheduled-posts/bulk/delete","href":"/api-reference/scheduling/delete-queued-posts-in-bulk"},{"title":"Delete a draft or scheduled post","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/scheduled-posts/{id}","href":"/api-reference/scheduling/delete-a-draft-or-scheduled-post"},{"title":"Edit a draft or scheduled post","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/scheduled-posts/{id}","href":"/api-reference/scheduling/edit-a-draft-or-scheduled-post"},{"title":"List plug templates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/plug-templates","href":"/api-reference/scheduling/list-plug-templates"}]},{"group":"Tools","pages":[{"title":"Edit one selected piece of a post","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tools/inline-edit","href":"/api-reference/tools/edit-one-selected-piece-of-a-post"},{"title":"Rewrite a post one preset way","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tools/rephrase","href":"/api-reference/tools/rewrite-a-post-one-preset-way"},{"title":"Check a statement against a web search","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tools/factcheck","href":"/api-reference/tools/check-a-statement-against-a-web-search"},{"title":"Score a draft against this account's own posts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/posts/viral-score","href":"/api-reference/tools/score-a-draft-against-this-accounts-own-posts"},{"title":"Sort recent posts on a topic into Read, Pass or Not sure","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/posts/triage","href":"/api-reference/tools/sort-recent-posts-on-a-topic-into-read-pass-or-not-sure"}]},{"group":"Audience","pages":[{"title":"List replies you received","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/replies/received","href":"/api-reference/audience/list-replies-you-received"},{"title":"Read an audience list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/audience/{kind}","href":"/api-reference/audience/read-an-audience-list"},{"title":"List engaged contacts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/contacts","href":"/api-reference/audience/list-engaged-contacts"},{"title":"Get one contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/contacts/{id}","href":"/api-reference/audience/get-one-contact"},{"title":"List one contact's replies to you","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/contacts/{id}/replies","href":"/api-reference/audience/list-one-contacts-replies-to-you"},{"title":"List notes on a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/contacts/{id}/notes","href":"/api-reference/audience/list-notes-on-a-contact"},{"title":"Add a note to a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/contacts/{id}/notes","href":"/api-reference/audience/add-a-note-to-a-contact"},{"title":"Delete a note on a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/contacts/{id}/notes/{noteId}","href":"/api-reference/audience/delete-a-note-on-a-contact"},{"title":"Edit a note on a contact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/contacts/{id}/notes/{noteId}","href":"/api-reference/audience/edit-a-note-on-a-contact"}]},{"group":"Inspiration","pages":[{"title":"Search the inspiration library","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/inspiration","href":"/api-reference/inspiration/search-the-inspiration-library"},{"title":"Search the inspiration media index","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/inspiration/media","href":"/api-reference/inspiration/search-the-inspiration-media-index"}]},{"group":"Contact Lists","pages":[{"title":"List contact lists","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/contact-lists","href":"/api-reference/contact-lists/list-contact-lists"},{"title":"Create a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/contact-lists","href":"/api-reference/contact-lists/create-a-contact-list"},{"title":"Delete a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/contact-lists/{id}","href":"/api-reference/contact-lists/delete-a-contact-list"},{"title":"Rename a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/contact-lists/{id}","href":"/api-reference/contact-lists/rename-a-contact-list"},{"title":"List contact list members","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/contact-lists/{id}/members","href":"/api-reference/contact-lists/list-contact-list-members"},{"title":"Add a contact list member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/contact-lists/{id}/members","href":"/api-reference/contact-lists/add-a-contact-list-member"},{"title":"Remove a contact list member","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/contact-lists/{id}/members/{memberId}","href":"/api-reference/contact-lists/remove-a-contact-list-member"},{"title":"Add contact list members in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/contact-lists/{id}/members/bulk","href":"/api-reference/contact-lists/add-contact-list-members-in-bulk"},{"title":"Remove contact list members in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/contact-lists/{id}/members/bulk-delete","href":"/api-reference/contact-lists/remove-contact-list-members-in-bulk"}]},{"group":"Signals","pages":[{"title":"List signal agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/signals/agents","href":"/api-reference/signals/list-signal-agents"},{"title":"Create a signal agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/agents","href":"/api-reference/signals/create-a-signal-agent"},{"title":"Delete a signal agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/signals/agents/{id}","href":"/api-reference/signals/delete-a-signal-agent"},{"title":"Update a signal agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/signals/agents/{id}","href":"/api-reference/signals/update-a-signal-agent"},{"title":"Add a signal to an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/agents/{id}/signals","href":"/api-reference/signals/add-a-signal-to-an-agent"},{"title":"Remove a signal from an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/signals/agents/{id}/signals/{signalId}","href":"/api-reference/signals/remove-a-signal-from-an-agent"},{"title":"Set feedback on a lead","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/leads/{id}/feedback","href":"/api-reference/signals/set-feedback-on-a-lead"},{"title":"Search for leads on X now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/leads/search","href":"/api-reference/signals/search-for-leads-on-x-now"},{"title":"List signal leads","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/signals/leads","href":"/api-reference/signals/list-signal-leads"},{"title":"Suggest keyword watches","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/keywords/suggest","href":"/api-reference/signals/suggest-keyword-watches"},{"title":"Expand an audience description into a rubric","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/icp/expand","href":"/api-reference/signals/expand-an-audience-description-into-a-rubric"},{"title":"Build an audience profile from a website","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/signals/icp/expand-from-url","href":"/api-reference/signals/build-an-audience-profile-from-a-website"}]},{"group":"Engage","pages":[{"title":"List Engage feeds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/engage/feeds","href":"/api-reference/engage/list-engage-feeds"},{"title":"Create an Engage feed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/engage/feeds","href":"/api-reference/engage/create-an-engage-feed"},{"title":"Delete an Engage feed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/engage/feeds/{id}","href":"/api-reference/engage/delete-an-engage-feed"},{"title":"Update an Engage feed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/engage/feeds/{id}","href":"/api-reference/engage/update-an-engage-feed"},{"title":"Get posts from an Engage feed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/engage/feeds/{id}/posts","href":"/api-reference/engage/get-posts-from-an-engage-feed"},{"title":"Get mentions of the account","description":"The posts that @-mention the selected account right now, newest first\n(or ranked by engagement with `sort=top`), each with the post it\nreplies to and one further level of ancestry.\n\nThis reads X live rather than SuperX's stored posts, and one call\nwalks several upstream pages plus the parent posts, so it charges a\nflat 3 units of the plan's feed bucket. Read a page and work from it\nrather than polling.\n\nBy default, mentions the account has already replied to on X are left\nout. `include_replied=true` keeps them and sets `replied` on each one.\n`mention_type` separates a direct reply to one of the account's posts\n(`reply`) from any other @-mention (`mention`).\n\nPaging is by cursor: pass `pagination.next_cursor` back as `cursor`.\n\nThe app's Mentions tab also hides posts you skipped or blocked there.\nThat list is a UI preference stored with the app, so it is not applied\nhere: the API returns every mention and lets you filter your own way.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/engage/mentions","href":"/api-reference/engage/get-mentions-of-the-account"},{"title":"Draft one reply to a post","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/engage/reply-draft","href":"/api-reference/engage/draft-one-reply-to-a-post"}]},{"group":"Media","pages":[{"title":"Presign an image upload","description":"Registers an image upload and returns a presigned `upload_url`. PUT\nthe raw file bytes to `upload_url` within 20 minutes, with the\n`Content-Type` header set to the same `file_type` you declared here.\nThen reference the returned `object_key` in `parts[].media` on the\nscheduled-posts create/update endpoints.\n\nImages only: `image/jpeg`, `image/png`, `image/webp` (5 MB max each)\nand `image/gif` (15 MB max). The attach step re-checks the real bytes\n(size and magic-byte type), so a mismatched upload fails at attach\ntime. Uploads never attached to a post are deleted after 24 hours.\n\nNeeds the write scope. Quota: 100 uploads per key per day, on top of\nthe normal write rate limits. No `Idempotency-Key` handling: a\nduplicate presign is just an unused upload that expires.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/media","href":"/api-reference/media/presign-an-image-upload"}]},{"group":"Workers","pages":[{"title":"List Workers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workers","href":"/api-reference/workers/list-workers"},{"title":"List Worker suggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workers/suggestions","href":"/api-reference/workers/list-worker-suggestions"},{"title":"Save a suggestion as a draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workers/suggestions/{id}/draft","href":"/api-reference/workers/save-a-suggestion-as-a-draft"},{"title":"Schedule a suggestion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workers/suggestions/{id}/schedule","href":"/api-reference/workers/schedule-a-suggestion"},{"title":"Dismiss a suggestion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workers/suggestions/{id}/dismiss","href":"/api-reference/workers/dismiss-a-suggestion"}]},{"group":"Context","pages":[{"title":"Get context settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/context","href":"/api-reference/context/get-context-settings"},{"title":"Update context settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/context","href":"/api-reference/context/update-context-settings"},{"title":"Replace the product list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/context/products","href":"/api-reference/context/replace-the-product-list"},{"title":"Remove one product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/context/products/{id}","href":"/api-reference/context/remove-one-product"},{"title":"Add or edit one product","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/context/products/{id}","href":"/api-reference/context/add-or-edit-one-product"},{"title":"Rebuild the generated style guide","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/context/style-guide/regenerate","href":"/api-reference/context/rebuild-the-generated-style-guide"},{"title":"Refresh a product from its page","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/context/products/{id}/scrape","href":"/api-reference/context/refresh-a-product-from-its-page"}]},{"group":"DMs","pages":[{"title":"Queue a DM campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/dm/campaigns","href":"/api-reference/dms/queue-a-dm-campaign"},{"title":"Read one DM campaign","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/dm/campaigns/{id}","href":"/api-reference/dms/read-one-dm-campaign"},{"title":"Cancel a campaign's unsent messages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/dm/campaigns/{id}","href":"/api-reference/dms/cancel-a-campaigns-unsent-messages"},{"title":"List the DM queue","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/dm/queue","href":"/api-reference/dms/list-the-dm-queue"},{"title":"DM allowances and usage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/dm/limits","href":"/api-reference/dms/dm-allowances-and-usage"}]},{"group":"Queue","pages":[{"title":"Get queue settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/queue-settings","href":"/api-reference/queue/get-queue-settings"},{"title":"Update queue settings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/queue-settings","href":"/api-reference/queue/update-queue-settings"}]},{"group":"Tags","pages":[{"title":"List tags","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/tags","href":"/api-reference/tags/list-tags"},{"title":"Create a tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/tags","href":"/api-reference/tags/create-a-tag"},{"title":"Delete a tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/tags/{id}","href":"/api-reference/tags/delete-a-tag"},{"title":"Rename or recolor a tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/tags/{id}","href":"/api-reference/tags/rename-or-recolor-a-tag"}]},{"group":"Articles","pages":[{"title":"List articles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/articles","href":"/api-reference/articles/list-articles"},{"title":"Create an article draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/articles","href":"/api-reference/articles/create-an-article-draft"},{"title":"Get an article","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/articles/{id}","href":"/api-reference/articles/get-an-article"},{"title":"Delete an article","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/articles/{id}","href":"/api-reference/articles/delete-an-article"},{"title":"Edit an article","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/articles/{id}","href":"/api-reference/articles/edit-an-article"},{"title":"Publish an article to X now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/articles/{id}/publish","href":"/api-reference/articles/publish-an-article-to-x-now"},{"title":"Schedule or reschedule an article","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/articles/{id}/schedule","href":"/api-reference/articles/schedule-or-reschedule-an-article"},{"title":"Unschedule an article","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/articles/{id}/unschedule","href":"/api-reference/articles/unschedule-an-article"},{"title":"Generate an AI cover image","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/articles/{id}/cover","href":"/api-reference/articles/generate-an-ai-cover-image"},{"title":"List saved cover styles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/cover-styles","href":"/api-reference/articles/list-saved-cover-styles"}]},{"group":"Datasets","pages":[{"title":"List datasets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets","href":"/api-reference/datasets/list-datasets"},{"title":"Collect an audience into a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/datasets","href":"/api-reference/datasets/collect-an-audience-into-a-dataset"},{"title":"Get a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets/{id}","href":"/api-reference/datasets/get-a-dataset"},{"title":"Get dataset rows","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets/{id}/rows","href":"/api-reference/datasets/get-dataset-rows"},{"title":"Export a dataset as CSV","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets/{id}/export","href":"/api-reference/datasets/export-a-dataset-as-csv"},{"title":"Add a dataset's people to a contact list","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/datasets/{id}/contacts","href":"/api-reference/datasets/add-a-datasets-people-to-a-contact-list"},{"title":"Draft outreach messages onto a research dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/datasets/{id}/outreach-drafts","href":"/api-reference/datasets/draft-outreach-messages-onto-a-research-dataset"},{"title":"Refine a dataset by what each person wrote","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/datasets/{id}/refine","href":"/api-reference/datasets/refine-a-dataset-by-what-each-person-wrote"}]},{"group":"X Lookups","pages":[{"title":"Look up one public post live","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/x/posts/{id}","href":"/api-reference/x-lookups/look-up-one-public-post-live"},{"title":"Top replies to a public post","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/x/posts/{id}/replies","href":"/api-reference/x-lookups/top-replies-to-a-public-post"},{"title":"Look up one public profile live","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/x/users/{handle}","href":"/api-reference/x-lookups/look-up-one-public-profile-live"},{"title":"Latest posts of a public account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/x/users/{handle}/posts","href":"/api-reference/x-lookups/latest-posts-of-a-public-account"}]},{"group":"Meta","pages":[{"title":"Machine-readable quickstart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/docs","href":"/api-reference/meta/machine-readable-quickstart"}]}]}]},"basePath":"","title":"Draft one reply to a post - SuperX","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}