Skip to main content
July 2026
v1
New
  • Accountless guest wallets prepay 33 GET routes through a scoped paid_reads key
  • POST /guest-wallets, GET /guest-wallets/status, and POST /guest-wallets/topups support confirmed Stripe Payment Links without an account
  • Active guest keys expose the same 33-route read-only catalog through API MCP
Changed
  • Direct MPP now covers 7 fixed-price charge operations; result-sized reads use guest or full account credits
  • Follow checks and article reads cost USD 0.00075 per direct MPP call
  • Every response after an accepted MPP payment includes Payment-Receipt, including non-2xx responses
  • The 26 non-MPP anonymous paid reads return 401 with WWW-Authenticate: Bearer and a guest wallet action
  • The 7 direct MPP reads return 402 with WWW-Authenticate: Payment and the same guest action
Removed
  • Obsolete public proxy_country and loginCountry account fields. Custom, dedicated, and fixed per-account proxy configuration is not supported.
April 2026
v1
New
  • POST /x/tweets - added media field (1-4 image URLs); text is now optional when media is present
  • POST /x/accounts/{id}/reauth - added email and proxy_country parameters
  • POST /x/media - now accepts image/webp and image/avif (allowed: AVIF, GIF, JPEG, PNG, WebP, MP4)
  • POST /x/accounts and POST /x/accounts/{id}/reauth responses now include a health field (enum: healthy, locked, needsReauth, recovering, suspended, temporaryIssue); same field added to GET /x/accounts list and detail responses
  • POST /x/accounts and POST /x/accounts/{id}/reauth may include an optional loginCountry field (ISO-3166-1 alpha-2) when the login session country differs from the selected proxy_country
  • New error code login_cooldown (429) for POST /x/accounts and POST /x/accounts/{id}/reauth, with reason and retryAfterMs in the body and a Retry-After header
  • All 17 write endpoints (under /x/tweets, /x/users, /x/dm, /x/profile, /x/media, /x/communities) now document standardised error responses: 403 account_needs_reauth, 403 account_restricted, 422 write_rejected, 429 rate_limited_by_x, 503 transient_error
  • GET /radar items now expose 15 metadata fields per source (was 8): mrr, growthPercent, last30Days, total (required), customers, activeSubscriptions, onSale, plus optionals askingPrice, country, growthMrrPercent, multiple, paymentProvider, rank, category, xHandle
  • Expanded Machine Payments Protocol (MPP) pay-per-use to 31 endpoints (tweets, communities, lists, user data)
  • New framework guides: LangChain, Pydantic AI, CrewAI, Mastra, Google ADK, Microsoft Agent Framework
Changed
  • Billing migrated to credits-only model (usage-quota removed)
  • GET /account response: creditInfo replaces currentPeriod
  • POST /extractions/estimate response: creditsRequired / creditsAvailable replace usagePercent / projectedPercent
  • Real-time WebSocket monitor sync retired in favour of an async poller. No public API contract change; underlying delivery model changed.
  • POST /x/tweets/{id}/like and POST /x/tweets/{id}/retweet are now end-to-end idempotent. Calling either on an already-acted-on tweet returns 200 success rather than the prior silent rejection that produced a 500 plus an account cooldown.
Removed
  • Event types follower.gained and follower.lost are no longer emitted. Valid event types: tweet.new, tweet.quote, tweet.reply, tweet.retweet (plus webhook.test).
  • Error code shadow_account (422) removed from POST /monitors (shadow-check subsystem deleted)
  • Error code stream_registration_failed (502) removed from POST /monitors (monitor activation is now asynchronous)
  • Telegram bot endpoints and integrations pipeline endpoints removed
March 2026
v1
New
  • MPP expanded from 16 to 31 eligible endpoints
  • Webhook delivery signing now uses HMAC-SHA256 with X-Xquik-Signature header
Changed
  • OAuth 2.1 discovery metadata now served from /.well-known/oauth-authorization-server
  • Rate limit responses include Retry-After header
Last modified on July 14, 2026