Tracking significant changes to the Twitter API or platform as a whole. These largely apply to v1.1
and Premium APIs, not for v2
.
Attempting to be accurate to the day for dates, and as exhaustive as possible. The main purpose was to have a reference for when to use certain filters in APIs, and originally created for keeping track of dates when writing about features. Edits / additions welcome.
date | change | type | description | link |
---|---|---|---|---|
2006-03-21 | First Tweet | UX | @jack just setting up my twttr | ⇱ |
2006-03-26 | Language | API | lang:. An example of Tweet metadata being backfilled while generating the Search index. | ⇱ |
2006-07-13 | Mentions | API | has:mentions begins matching. | ⇱ |
2006-08-03 | First Earthquake | EVT | Users tweet about a mild earthquake in California. Highlights potential of Twitter for reporting live events | - |
2006-10-06 | Cashtags | API | has:symbols. $cashtags (or symbols) for discussing stock symbols does not become common until early 2009. Until then most usages were probably slang (e.g. $slang). | ⇱ |
2006-10-26 | Links | API | has:links begins matching. | ⇱ |
2006-10-?? | Replies | UX | @replies becomes a convention. | ⇱ |
2006-11-23 | Hashtags | API | has:hashtags begins matching. | ⇱ |
2006-11-14 | Favourites | UX | Favorites introduced. | ⇱ |
2006-11-14 | Deletions | UX | Tweets now have a delete button | ⇱ |
2006-11-14 | DMs | UX | Direct messages are introduced as 'notes directly to you and we archive them on the web in case you choose not to receive them via SMS or IM' | ⇱ |
2006-11-14 | Timestamps | UX | Timestamps appear as dates instead of relative '2 minutes ago' | ⇱ |
2006-11-14 | User Search | UX | You can search by name email or phone | ⇱ |
2007-01-03 | Verified | API | is:verified begins matching. | ⇱ |
2007-01-30 | Replies | API | @replies become a first-class object with a UI reply button with in_reply_to metadata. to: and in_reply_to_status_id: @Replies become a first-class event after becoming a user-convention in October 2006. @reply (in_reply_to_user_id) reply_to_status_id: begins matching. | ⇱ |
2007-04-01 | Hashtags | API | has:hashtags and # Operator. Hashtags become a common ‘organizing’ tool in August. | ⇱ |
2007-04-01 | Twitter Inc | ORG | Twitter spins off into its own company. | ⇱ |
2007-04-?? | Retweets | API | Retweets become a convention. | ⇱ |
2007-08-23 | Hashtags | UX | The hashtag (#) first proposed by user Chris Messina debuts on Twitter. #hashtags emerge as a primary tool for searching and organizing Tweets. | ⇱ |
2008-02-27 | Links | API | has:links and url: begin matching. | ⇱ |
2008-02-27 | Mentions | API | has:mentions and @ Operator begin matching. | ⇱ |
2008-09-?? | Emoji | API | emoji signal begins to appear in HPT estimates. | ⇱ |
2009-02-?? | Cashtags | API | $cashtags become a common convention for discussing stock ticker symbols. | ⇱ |
2009-04-30 | Search | UX | Users gain the ability to search and discover content in real-time | ⇱ |
2009-05-15 | Retweets | API | Retweet ‘beta’ is introduced with “Via @” prepended to Tweet body. is:retweet. Note that this Operator starts matching with the ‘beta’ release of official Retweets and its “Via @’ pattern. During this beta period the Tweet verb is ‘post’ and the original Tweet is not included in the payload. | ⇱ |
2009-06-12 | Verified | UX | First Verified accounts appear: begin with public officials public agencies famous artists athletes and other well known individuals at risk of impersonation | ⇱ |
2009-08-13 | Retweets | API | Final version of official Retweets is released with “RT @” pattern a verb set to ‘share’ and the ‘retweet_status’ attribute containing the original Tweet (thus approximately doubling the JSON payload size). | ⇱ |
2009-10-30 | Lists | UX | Lists added the ability to group users. | ⇱ |
2009-11-06 | Retweets | UX | Now a native feature - previously retweets were created manually by copy pasting text. | ⇱ |
2009-11-12 | What's Happening? | UX | Default prompt for new tweets changed from What are you doing?'' to What's Happening?'' |
⇱ |
2009-11-19 | Geo Tweets | UX | First Geo-tagged Tweets. Tweet Geotagging API is launched providing the first method for users to share location via third-party apps. | ⇱ |
2010-01-22 | Space Tweet | EVT | First Tweet from Space | ⇱ |
2010-03-06 | Geo | API | has:geo bounding_box: and point_radius: geo Operators begin matching. | ⇱ |
2010-04-13 | Ads | UX | Twitter announces that it will start allowing for advertising in the form of promoted tweets | TODO: Link? |
2010-06-01 | 64-bit Tweet IDs | API | Tweet IDs are no longer sequential | ⇱ |
2010-06-08 | t.co | API | All links now shortened with t.co making link shorteners largely redundant | ⇱ |
2010-06-14 | Geo | API | Twitter Places introduced for geo-tagging Tweets. | ⇱ |
2010-08-28 | Media | API | has:videos (Until February 2015 this Operator matches on Tweets with links to select video hosting sites such as youtube.com vimeo.com and vivo.com). | ⇱ |
2010-08-12 | Publishing | API | Tweet button for websites is launched. Made sharing links easier. | ⇱ |
2011-01-01 | Counts | API | Followers and friends counts begin to be non-zero. followers_count: and friends_count: start having non-zero values to match on. | ⇱ |
2011-01-01 | Profiles | API | User profiles begin to match profiles as they were when Tweet posted. Tweets before this date have their user profiles set to how they existed in September 2011. | ⇱ |
2011-01-01 | Retweets | API | is:retweet and retweet_of_status_id:. Retweets became a convention as early as April 2007 but matching before this date depends on search for “RT @” or “Via @” patterns. | ⇱ |
2011-04-05 | New Design | UX | Major Redesign of the homepage | TODO: Link? |
2011-05-25 | TweetDeck | ORG | Twitter buys TweetDeck. First version was released in 2008. | ⇱ |
2011-05-31 | Publishing | API | Follow button introduced making it easier to follow accounts associated with websites. | ⇱ |
2011-06-02 | Media | API | Powertrack has:images and has:media begin matching. | ⇱ |
2011-07-20 | Media | API | Fullarchive Search has:media and has:images begin matching. Native photos officially announced August 9 2010. | ⇱ |
2011-08-27 | URLs indexed | API | URLs first indexed for filtering | ⇱ |
2011-08-15 | Photos | API | Native photos introduced. | ⇱ |
2011-09-01 | Geo | API | has:geo place: place_country: bounding_box: and point_radius:. | ⇱ |
2011-09-30 | 64-bit DM IDs | API | DM Message Ids become snowflake Ids | ⇱ |
2012-01-26 | Country Witheld Content | ORG | Introduction of Country Witheld Content (Country-specific Tweet or Account Blocks) | ⇱ |
2012-03-26 | Language | API | Gnip introduces new data enrichments. Gnip Language: gnip.lang language metadata. No longer filtered for. lang: Operator now based solely on root level Twitter language classification. | ⇱ |
2012-03-26 | Links | API | Gnip introduces new data enrichments. Expanded URLs: URL metadata from this date until launch of HPT 2.0 will contain gnip.expanded_url fully unwound URL. URL matching before this date will be based on URL as entered by the user. If the Tweet includes a shortened URL e.g. bit.ly there will be no expanded URL to match on. | ⇱ |
2012-06-19 | Replies in Profile | UX | Replies in profile are hidden by default | ⇱ |
2012-07-31 | Cashtags | API | $Cashtags become a clickable/searchable link. | ⇱ |
2012-07-02 | Transparency | ORG | The first Transparency Report published details on government requests | ⇱ |
2012-08-16 | API v1.1 | API | Significant changes to the API included removing the ability to request all replies to a tweet and different rate limits. | ⇱ |
2012-11-?? | Language | API | lang: Operator (matching on Twitter language classification). | ⇱ |
2013-01-22 | 64-bit User IDs | API | User IDs became snowflake IDs like tweet IDs | ⇱ |
2013-05-30 | Bigger Lists | API | Previously lists were limited to 500 users. Lists expanded to 5000 users. | ⇱ |
2013-06-04 | Geo | API | has:profile_geo profile_point_radius: profile_bounding_box: profile_country: profile_region: profile_subregion: and profile_locality:. | ⇱ |
2013-08-20 | Cashtags | API | has:symbols and $ Operator. | ⇱ |
2013-11-12 | Collections | UX | Twitter introduced the ability to curate collections of tweets using TweetDeck. Initially called Custom Timelines. | ⇱ |
2014-03-?? | Photos | API | Photo tagging and up to four photos supported. Extended Twitter Entities metadata was introduced. | ⇱ |
2014-04-?? | Emojis | API | Emojis are natively supported in Twitter UI. Emojis were commonly used in Tweets since at least 2008. | ⇱ |
2014-11-18 | Historical Tweets | UX | Web Search on Twitter became capable of retrieving any historical tweet since 2006. API access is still restricted to a few days. | ⇱ |
2014-12-01 | URL Expansion | API | Enhanced URL expansion metadata (website titles and descriptions) | ⇱ |
2014-12-03 | Links | API | (Approximately) Some Enhanced URL metadata with HTML title and description begins in payloads. Enhanced metadata more fully emerged in May 2016. | ⇱ |
2015-02-10 | Media | API | has:videos begins matching on videos shared through Twitter’s user-interface (‘native’ videos). | ⇱ |
2015-02-10 | Media | API | has:videos matches on ‘native’ Twitter videos. | ⇱ |
2015-02-17 | Geo | API | has:profile_geo profile_country: profile_region: profile_locality: Profile Geo Operators begin matching. | ⇱ |
2015-02-17 | Geo | API | place_country: and place: Tweet geo Operators begin matching. | ⇱ |
2015-02-17 | Profile Geo | API | Profile Geo enrichment metadata and filtering | ⇱ |
2015-04-01 | New Profiles | UX | Significant changes to User Profiles | ⇱ |
2015-04-06 | Quote Tweets | UX | Other tweets can be embedded - introducing a new way to disseminate information. | ⇱ |
2015-04-?? | Geo | API | A change in Twitter’s ‘post Tweet’ user-interface design results in fewer Tweets being geo-tagged. | ⇱ |
2015-08-06 | Moments | UX | Like Collections but emphasising media. News organisations were the first to access this feature. | ⇱ |
2015-08-11 | Full Archive Search | API | Commercial Access to Historical Public Tweets | ⇱ |
2015-09-28 | Quote Tweets | API | is:quote matching on Quoted Tweets. | ⇱ |
2015-10-06 | Share Counts | API | Twitter removed the ability to see how many times a URL has been shared. | ⇱ |
2015-10-?? | Polls | API | Twitter Polls introduced. Polls originally supported two choices with a 24-hour voting period. In November Polls started supporting four choices with voting periods from 5 minutes to seven days. Poll metadata made available (enriched native format only) in February 2017. | ⇱ |
2015-11-03 | Likes | UX | Twitter Favourites changed to hearts'' or likes''. |
⇱ |
2016-02-?? | Gifs | API | Searchable GIFs natively hosted in Tweet compose. | ⇱ |
2016-05-01 | Links | API | Enhanced URL metadata more fully available and was officially announced as part of the Gnip 2.0 launch in August 2016. No associated Operators for these metadata with Search APIs. | ⇱ |
2016-05-24 | Extended Tweets | UX | Photos quoted tweets videos and mentions no longer count towards 140 character limit making longer tweets possible. | ⇱ |
2016-06-?? | Quote Tweets | API | Quoted Retweets generally available. | ⇱ |
2016-06-14 | Self Retweets | UX | You can now retweet your own tweets | ⇱ |
2016-06-27 | Stickers | API | Stickers introduced for adding to photos. | ⇱ |
2016-06-?? | Video | API | Native video support | ⇱ |
2016-07-19 | Verified | UX | Started taking public requests for Verification | ⇱ |
2016-07-28 | Links | API | url_title: and url_description: supported via Enchanced URLs enrichment. | ⇱ |
2016-09-?? | Extended Tweets | API | ‘Native attachments’ introduced with trailing URL not counted towards 140 characters (“dmw140 part 1”). | ⇱ |
2017-01-17 | Quote Tweets | API | ‘quote_count’ and ‘reply_count’ available in enriched native format. No associated Operators for these metadata. | ⇱ |
2017-02-22 | Poll Metadata | API | Enterprise APIs have Poll metadata | ⇱ |
2017-02-22 | Polls | API | Twitter Poll metadata included in Tweet metadata (enriched native format only). | ⇱ |
2017-03-30 | Replies | API | ‘Simplified Replies’ introduced with replied-to-accounts not counted towards 140 characters (“dmw140 part 2”). | ⇱ |
2017-09-26 | Longer Tweets | UX | Languages except Japanese Chinese and Korean can tweet 280 characters. | ⇱ |
2017-12-12 | Threads | UX | Ability to post entire threads of tweets instead of manually self replying | ⇱ |
2018-02-26 | Verified | UX | Public Access to Verification requests and Verification 'paused' | ⇱ |
2018-05-14 | Profile backgrounds | API | Removed deprecated profile background images (not profile banners) user.profile_background_image_url set to default value | ⇱ |
2018-05-23 | Timezones | API | Timezone information in time_zone and utc_offset no longer public; user.time_zone set to null; user.utc_offset set to null | ⇱ |
2018-05-23 | GDPR | API | GDPR updates user.time_zone set to null user.utc_offset set to null user.profile_background_image_url set to default value | ⇱ |
2018-05-25 | GDPR | UX | Privacy policy and settings for GDPR compliance introduced | ⇱ |
2018-05-10 | Quote Tweets | API | Updating quoteTweet formatting changes. quoted_status_permalink | ⇱ |
2019-07-15 | New Design | UX | New Design based on mobile Twitter becomes default | ⇱ |
Archiving mostly, but also as a reference for analysis, for when things can be attributed to platform changes rather than some other changes you may be interested in measuring. It might be useful to consult entries if you have crawls for old tweets, to see what changes / differences you may come across.
Roughly, any change that is platform-wide is included, eg: Major changes to UI like Retweet button. Policy tweaks to TOS, Developer agreement aren't in here, but maybe should be. Suggestions on classifying this better are welcome, I've been arbitrarily deciding what's significant and what's not.
date
: YYYY-MM-DD
change
: Short label
type
: Rough classification of the type of change
UX
is any change where users would be impacted somehowORG
is any major organisational changeAPI
any change that developers may care aboutEVT
a pivotal event of some sortdescription
: A Longer description of the change or impact.
link
: Source URL for this change announcement or documentation.