Skip to main content
To subscribe to updates, please “Turn on notifications” for @API. You can also follow this changelog in your feed reader via the RSS feed.
X Ads API

Conversion API Google Tag Manager server-side template

Advertisers can now send website conversions through the official X Ads Conversion API (Official) tag in a Google Tag Manager server container, without writing Conversion API request code.See Set up the Conversion API with Google Tag Manager for Pixel ID, access token, event mapping, and Pixel + Conversion API deduplication steps. The template is published in the Google Tag Manager Community Template Gallery.
X Ads API

REGIONS segmentation for Analytics

Asynchronous analytics jobs now support REGIONS as a segmentation_type. The country parameter is required when requesting a regional breakdown.See Metrics and Segmentation for the full list of enabled segmentation types.
X Ads API

Lead Generation API

We documented the Lead Generation API for Lead Gen campaigns. You can now create and manage native lead forms, attach a form to a card with the LEAD_FORM destination, and export submitted leads as JSON, CSV, or XLSX.The Leads API requires the Campaign user permission. Lead exports are restricted to account administrators.
X API v2

Media upload and Post-create size and duration limits

We documented the size and duration limits that apply when uploading media and when attaching it to a Post. Upload and POST /2/tweets are separately enforced. Limits follow the authenticated user’s X Premium / verified status and media_category, not your developer API plan.
  • Default accounts: Post video up to 20 minutes and 8 GB (tweet_video / amplify_video)
  • X Premium / verified: Post video up to 125 minutes and 16 GB
  • Direct Message video is unchanged: 140 seconds / 512 MB default, 10 minutes / 1 GB Premium
  • Exceeding the posting user’s duration cap returns 403 This user is not allowed to post a video longer than N minutes.
The chunked upload quickstart now uses the v2 paths (POST /2/media/upload/initialize, /{id}/append, /{id}/finalize) instead of the previous command-style POST /2/media/upload flow.
X Ads API

Updated video_total_views definition

We updated the definition of the video_total_views metric in the VIDEO metrics group of the X Ads API Analytics endpoints. It now reports views that are 100% in-view for at least 3 seconds, plus any view where a user manually clicks the play button.The previous definition (at least 50% in-view for 2 seconds, per the MRC standard) no longer applies. The prior “100% in-view for 3 seconds” definition remains available as the video_3s100pct_views metric, and you can continue bidding on it via the VIEW_3S_100PCT bid unit.
X API v2

Mute and block events for X Activity API

Today, we added mute and block events to the X Activity API. You can now subscribe by User ID to receive real-time notifications when a user mutes or unmutes (mute.mute, mute.unmute) or blocks or unblocks (block.block, block.unblock) another user.These are private events: they require user-context (OAuth 2.0) authentication with the mute.read or block.read scope, respectively, and the user_id filter matches the user performing the action.
X API v2

Articles draft and publish endpoints

Today, we added new endpoints for drafting and publishing Articles via the X API.
X API v2

Post create and delete events for X Activity API

Today, we added post.create and post.delete events to the X Activity API. You can now subscribe by User ID to receive real-time notifications when a user creates or deletes a Post.For basic per-user post activity, use XAA. For advanced keyword filtering and the full set of Filtered Stream operators, continue to use the Filtered Stream.
X API v2
Added support for the paid_partnership field on Posts.
  • When creating a Post via POST /2/tweets, set "paid_partnership": true to indicate the Post is a paid partnership (i.e., the author is disclosing that it contains paid promotion). The Post will be labeled as a paid promotion.
  • When reading Posts, request tweet.fields=paid_partnership to retrieve the value (true if the author has disclosed the Post as containing paid promotion).
X API v2

Search endpoints migrating to new search index

Today, we migrated the X API v2 search endpoints (/2/tweets/search/recent, /2/tweets/search/all, /2/tweets/counts/recent, /2/tweets/counts/all) to the new X core platform search index. This brings major performance improvements, dramatically fewer 503 errors, and three new precision operators: min\_likes:, min\_replies:, and min\_reposts:. Note: retweets are no longer returned in keyword-based search results (the Filtered Stream is unchanged). Learn more here.
X API

X API pricing update: Owned Reads now $0.001

Effective April 20, 2026, we introduced new “Owned Reads” pricing at $0.001 per resource (1,000 for $1) for qualifying endpoints when accessing your own data:
GET /2/users/{id}/bookmarks, /blocking, /muting, /pinned_lists, /tweets, /mentions, /liked_tweets, /followers, /following, /owned_lists, /followed_lists, and /list_memberships.
We also updated writes — POST /2/tweets is now $0.015 per post, and Posts containing a URL are $0.20 per Post (summoned replies remain $0.01).Following, Likes, and Quote-Posts via the API have been removed from all self-serve tiers.Learn more here.
X API v2

Deprecation of Account Activity replay endpoint

Today, we announced the deprecation of POST /2/account_activity/replay/webhooks/{webhook_id}/subscriptions/all, effective March 25, 2026 at 12:00 PM ET. Use the new consolidated POST /2/webhooks/replay endpoint instead — it provides identical functionality. Learn more here.
X API v2

Direction filter for X Activity API subscriptions

Today, we added an optional direction filter to X Activity API subscriptions. Subscribers can now scope DM and chat events to sent, received, or both, reducing noise when only outgoing or incoming events are needed.
X API v2

Updates to event types format in the X Activity API

Today, we announced changes to event type naming in the X Activity API, effective March 18, 2026. PascalCase event types (e.g., ProfileBioUpdate) are being deprecated in favor of a dot-separated lowercase format (e.g., profile.update.bio). Update any filtering, switch statements, or deserialization logic that relies on the old values. Learn more here.
X API v2

Legacy Direct Message events in the X Activity API

Today, we added legacy DM events (dm.received, dm.sent, dm.read, dm.indicate_typing) to the X Activity API. This brings DM event delivery from the Account Activity API into the lower-latency XAA pipeline.
X API v2

Addressing LLM-generated spam

Today, we made changes to reduce automated, low-quality replies on X. Programmatic replies via POST /2/tweets are now only permitted when the original Post’s author has “summoned” the replier (by @mentioning that account or quoting one of its Posts). Additional restrictions apply to programmatically @mentioning or quoting users. These changes affect self-serve tiers only — Enterprise access is not impacted. Learn more here.
X API

Launch of X API Pay-Per-Use pricing

Today, we officially launched X API Pay-Per-Use pricing — a flexible credit-based model built for indie builders, startups, and hobbyists. Highlights:Public Utility Apps continue to receive free scaled access. Recently active Legacy Free tier users receive a one-time $10 voucher. Basic and Pro plans remain available, and existing subscribers can opt in to Pay-Per-Use. Learn more here.
X API v2

Spaces events in the X Activity API

Today, we added Spaces lifecycle events (spaces.start, spaces.end) to the X Activity API. Subscribe by User ID to be notified in real time when a Space starts or ends.
X API v2

Deprecating count-based operators

Today, we deprecated the min\_likes, min\_replies, and