Skip to main content

2026-07-09

Images on posts:
  • POST /v1/media: presign an image upload (filename, file_type, size; JPG/PNG/WEBP up to 5MB, GIF up to 15MB). PUT the bytes to the returned upload_url within 20 minutes, then attach the object_key to posts. Uploads never attached to a post are deleted after 24 hours. Quota: 100 uploads per key per day
  • POST /v1/scheduled-posts and PATCH /v1/scheduled-posts/{id}: parts[].media attaches images as [{ object_key, alt_text? }]: up to 4 images or exactly 1 GIF per part, alt_text up to 1,000 characters (delivered to X at publish time). The attach step verifies the real bytes: size and magic-byte type, not the upload declaration
  • PATCH parts remains a full replace, now including media: a part sent without media drops the images it carried; re-include the current object_keys to keep them (they are now visible on all scheduled-post responses)
  • New error codes: invalid_media, media_not_uploaded, unsupported_media_type, media_too_large, media_quota_exceeded (429), media_not_configured (503). media_not_supported is gone from create/PATCH
  • CLI: superx media:upload <file>, plus --media/--alt-text on scheduled:create/scheduled:update and --parts-json for threads with media
  • MCP: new upload_media_from_url tool (SSRF-hardened server-side fetch; twenty-nine tools total); schedule_post and update_scheduled_post accept per-part media

2026-07-08

Signals writes (create, pause, resume, delete):
  • POST /v1/signals/agents: create a signal agent from the API. name and icp_description are required; precision_mode defaults to high. Omit keywords and 1-3 watches are auto-suggested from the ICP; omit destination_list_id and a contact list named Leads: <agent name> is created for you (destination_list_created: true in the response). The agent starts finding leads over the following minutes and days; there is no synchronous search
  • PATCH /v1/signals/agents/{id}: status-only lifecycle (active | paused). Other fields are edited in the SuperX app
  • DELETE /v1/signals/agents/{id}: delete an agent; its saved leads and contact list stay untouched
  • Idempotency-Key supported on agent create; plan limits surface as 403 cap_reached
  • Writes are main account only and need the write scope
  • CLI: superx signals:create-agent, signals:pause-agent, signals:resume-agent, signals:delete-agent
  • MCP: three new tools: create_signal_agent, set_signal_agent_status, delete_signal_agent (twenty-eight tools total)
  • Ask SuperX can now propose a signal agent for approval when you ask it to find leads

2026-07-08

Signals (read-only):
  • GET /v1/signals/agents: the account’s signal agents, the automated lead finders from the SuperX app, with their status, ICP description, watched signals (profiles, followers, keywords, lists), and deposited-lead counts. An agent’s destination_list_id joins to /v1/contact-lists for the target list
  • GET /v1/signals/leads: the leads those agents have found, newest first, with the person’s profile, icp_score and icp_rationale, a deposited flag with deposited_at (whether the lead has been saved to the agent’s contact list yet), discovered_at, and a provenance object describing how the lead was discovered. Filters: agent_id (unknown id returns 404 agent_not_found), deposited=true|false, since/until on discovery time, pagination (limit max 100, default 50)
  • The API surface is read-only: agents are created, paused, and edited in the SuperX app
  • CLI: superx signals:agents, superx signals:leads
  • MCP: two new tools: list_signal_agents, get_signal_leads (twenty-five tools total)
  • Ask SuperX gains a matching signal-leads tool

2026-07-08

Audience replies and contact lists:
  • GET /v1/replies/received: every stored reply the account has received across all its posts, with the replier’s profile, likes, and the replied-to post (sort=recent|most_liked, since/until, pagination)
  • Contact lists (the saved people-collections from the SuperX app): GET /v1/contact-lists (system lists appear with is_system and kind but are read-only and index-only), GET /v1/contact-lists/{id}/members (manual lists; q filter, pagination, 90-day engaged_count per member), POST /v1/contact-lists/{id}/members (add by handle or x_user_id; re-adding returns the existing member with duplicate: true), DELETE /v1/contact-lists/{id}/members/{memberId}
  • Member writes are main account only and need the write scope; there is no bulk-add endpoint
  • CLI: superx replies:received, superx lists:list/members/add-member/remove-member
  • MCP: five new tools: get_audience_replies, list_contact_lists, get_contact_list_members, add_contact_list_member, remove_contact_list_member (twenty-three tools total)
  • Ask SuperX gains a matching audience-replies tool

2026-07-07

X Articles (long-form posts):
  • Articles CRUD: GET/POST /v1/articles, GET/PATCH/DELETE /v1/articles/{id}. Bodies are markdown in both directions (headings, lists, blockquotes, bold/italic/strike, links, images by URL, bare X post URLs as embeds); unsupported constructs degrade gracefully and are reported in a warnings array
  • Lifecycle: POST /v1/articles/{id}/schedule (more than 2 minutes ahead; deducts post quota, refunded on unschedule/delete), POST /v1/articles/{id}/unschedule, and POST /v1/articles/{id}/publish (immediate, irreversible, requires X Premium on the connected account)
  • AI covers: POST /v1/articles/{id}/cover generates a cover from the article’s title and attaches it by default (attach: false to skip). Takes 60-100 seconds and spends AI credits against daily and monthly caps; 429 responses carry the remaining counters
  • Idempotency-Key supported on article create, publish, schedule, and cover generation
  • CLI: superx articles:list/get/create/update/delete/publish/schedule/unschedule/cover, with markdown bodies from --file, --content, or piped stdin
  • MCP: seven new tools: list_articles, get_article, create_article, update_article, schedule_article, publish_article, generate_article_cover (eighteen tools total)

2026-07-07

Drafts, editing, and tags:
  • PATCH /v1/scheduled-posts/{id}: edit a draft or scheduled post. Only the fields you send change; text edits, new times, title/scratchpad, tag replacement, and explicit status transitions (draft to scheduled and back, riding the normal quota deduct/refund). A scheduled_for alone never promotes a draft.
  • POST /v1/scheduled-posts now accepts title (max 300 chars), scratchpad (max 30,000 chars), and tags (up to 20 tag ids); all three appear in the responses and in GET /v1/scheduled-posts, which also gains a tags filter (comma list, any-of)
  • Tags CRUD: GET/POST /v1/tags, PATCH/DELETE /v1/tags/{id}
  • status=draft on GET /v1/scheduled-posts now includes legacy board drafts (previously hidden internal statuses), reported as "draft"
  • CLI: superx scheduled:update, superx tags:list/create/update/delete, scheduled:create --title --scratchpad --tag, scheduled:list --tags
  • MCP: new list_tags and update_scheduled_post tools (eleven tools total); schedule_post accepts title, scratchpad, and tags

2026-07-07

Inspiration search:
  • GET /v1/inspiration: search a library of 50M+ real high-performing posts by topic, with engagement and author-size filters, six sort orders (including outlier, which surfaces posts that beat the norm for their author’s follower tier), and an outlier_score on every result
  • CLI: superx inspiration:search <query>
  • MCP: new find_inspiration and delete_scheduled_post tools (nine tools total); schedule_post now accepts threads up to 25 parts, matching the REST API

2026-07-06

CLI and agent skill:
  • superx-cli on npm: the superx binary, a command-line client for the whole API (posts, analytics, contacts, scheduling) with clean JSON output. See CLI & agent skill.
  • superx-agent skill for Claude Code and compatible agents: npx skills add superx-so/superx-agent. Includes a growth playbook the agent follows when creating drafts.

2026-07-06

Initial release of the SuperX public API v1:
  • API keys with read/write scopes, managed from Account > API / MCP / CLI in the SuperX app
  • Identity: GET /v1/me, GET /v1/accounts
  • Content: GET /v1/posts, GET /v1/replies
  • Analytics: GET /v1/posts/analytics
  • Audience: GET /v1/contacts, GET /v1/contacts/{id}/replies
  • Scheduling: GET /v1/scheduled-posts, POST /v1/scheduled-posts (with Idempotency-Key support), DELETE /v1/scheduled-posts/{id}
  • Machine-readable quickstart at GET /v1/docs