curl --request PATCH \
--url https://api.superx.so/v1/scheduled-posts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Launch teaser v2"
}
'{
"data": {
"id": "Fq2xWnA0kLpR7sVtYu3zc",
"status": "draft",
"scheduled_for": null,
"parts": [
{
"text": "Rough idea: why most scheduling tools get threads wrong."
}
],
"title": "Launch teaser v2",
"scratchpad": null,
"tags": [],
"created_at": "2026-07-05T20:11:00.000Z"
}
}{
"error": {
"code": "invalid_media",
"message": "Unknown object_key: u123/api_..._chart.png. Upload media first via POST /v1/media."
}
}{
"error": {
"code": "invalid_api_key",
"message": "Unknown or revoked API key"
}
}{
"error": {
"code": "insufficient_scope",
"message": "This API key is read-only. Create a key with the write scope to use this endpoint."
}
}{
"error": {
"code": "not_found",
"message": "No scheduled post with that id belongs to this account."
}
}{
"error": {
"code": "post_not_editable",
"message": "Only drafts and scheduled posts can be edited."
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded for the Pro plan (30 requests/min). Upgrade for higher limits.",
"retry_after": 42
}
}{
"error": {
"code": "upstream_error",
"message": "Failed to fetch scheduled posts. Try again shortly."
}
}{
"error": {
"code": "upstream_unavailable",
"message": "The scheduling service is temporarily unavailable. Retry with the same Idempotency-Key."
}
}Edit a draft or scheduled post
Partial update: only the fields you send change; everything else on
the post (including fields the API does not expose) is preserved.
Works for your main account or any account linked to it
(account_id); accounts shared with you are read-only.
Status transitions are explicit: sending scheduled_for alone never
schedules a draft. Set status to "scheduled" to promote (needs a
future time, provided or already stored: at least 60 seconds ahead,
at most 18 months) or "draft" to pull a post back out of the queue.
Both directions ride the normal post-quota deduct/refund.
parts is a FULL replace, media included: a part sent without
media drops any media it carried. Re-include the current
object_keys (visible on GET responses) to keep them, add new ones
from POST /v1/media, or omit parts entirely to edit only
title/scratchpad/time/status without touching text or media.
No Idempotency-Key handling: PATCH is naturally idempotent.
Concurrent edits are last-write-wins.
Advanced settings (auto_retweet, auto_delete, auto_plug,
auto_dm, super_followers_only) use the same shapes as create but
never inherit defaults on update: provided = override, omitted = keep
the post’s current setting, null = remove it. auto_dm: null also
gives back the month’s posts-with-auto-DM slot; setting one consumes
a slot.
curl --request PATCH \
--url https://api.superx.so/v1/scheduled-posts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Launch teaser v2"
}
'{
"data": {
"id": "Fq2xWnA0kLpR7sVtYu3zc",
"status": "draft",
"scheduled_for": null,
"parts": [
{
"text": "Rough idea: why most scheduling tools get threads wrong."
}
],
"title": "Launch teaser v2",
"scratchpad": null,
"tags": [],
"created_at": "2026-07-05T20:11:00.000Z"
}
}{
"error": {
"code": "invalid_media",
"message": "Unknown object_key: u123/api_..._chart.png. Upload media first via POST /v1/media."
}
}{
"error": {
"code": "invalid_api_key",
"message": "Unknown or revoked API key"
}
}{
"error": {
"code": "insufficient_scope",
"message": "This API key is read-only. Create a key with the write scope to use this endpoint."
}
}{
"error": {
"code": "not_found",
"message": "No scheduled post with that id belongs to this account."
}
}{
"error": {
"code": "post_not_editable",
"message": "Only drafts and scheduled posts can be edited."
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded for the Pro plan (30 requests/min). Upgrade for higher limits.",
"retry_after": 42
}
}{
"error": {
"code": "upstream_error",
"message": "Failed to fetch scheduled posts. Try again shortly."
}
}{
"error": {
"code": "upstream_unavailable",
"message": "The scheduling service is temporarily unavailable. Retry with the same Idempotency-Key."
}
}Authorizations
A SuperX API key ("sxk_..."), created in the SuperX app under Account > API / MCP / CLI. Keys are server-side secrets.
Path Parameters
Body
Replacement text (single post). Provide either text or parts, not both.
Replacement parts (full replace, media included), 1 to 25 items, 25,000 characters total. A part without media drops the media it carried.
Show child attributes
Show child attributes
New time, UTC ISO-8601 with explicit Z or offset. On its own it never promotes a draft.
Explicit transition. scheduled requires a future time (via scheduled_for or already stored).
draft, scheduled New title; null clears it.
300New notes; null clears them.
30000Full replacement tag id set. [] clears all tags. Unknown ids fail with 400 unknown_tag.
20Auto retweet override; null removes it. Omit to keep the current setting.
Show child attributes
Show child attributes
Auto delete override; null removes it. Omit to keep the current setting.
Show child attributes
Show child attributes
Auto plug override; null removes it. Omit to keep the current setting. Unknown template ids fail with 400 unknown_plug_template.
Show child attributes
Show child attributes
Auto DM override; null removes it and gives back the month's slot. Omit to keep the current setting. When a plan limit stops a new one from attaching, the edit still lands and the response carries auto_dm_skipped: true.
Show child attributes
Show child attributes
Post to Super Followers only. Omit to keep the current setting.
Any account you own, meaning your main account (the default when omitted) or one linked to it. An account shared with you returns 403 writes_main_account_only.
Response
The full updated post.
Show child attributes
Show child attributes