When did the urls entity change for "tweet_mode: compat"?


When requesting Tweets through the user or search endpoint the URLs array does not contain the actual URLs from the Tweet but an URL to the Tweet itself. According to the changelog there were some changes on 06.02.19 to the unwound URLs in the Enterprise API, but it says that the search API is affected as well. But the change is only about links to Tweets/Moments/Profiles.

When using “tweet_mode: extended” the full URLs are available in the Tweet object. Did I miss this behavior in the past or was it recently introduced?


If you look at the text of the compat tweet you’ll see the text is truncated and the appended URL is of the tweet itself. The URL in the full_text from the extended version is past 140 characters so by default it gets removed. This is expected and in both examples the URLs array accurate to the text returned.


I do understand that this is the proper behavior.

Since when does it work like this?


There were two big changes, because extended tweets existed briefly before the 280 character change:

Since 2016-05-24 tweets could be longer, because mentions at the start and 1 url at the end would not count towards 140 characters https://blog.twitter.com/developer/en_us/a/2016/doing-more-with-140-characters.html

Then in 2017-09-26 Tweet character limits changed to 280 characters. https://blog.twitter.com/official/en_us/topics/product/2017/Giving-you-more-characters-to-express-yourself.html


I think the entities URLs value has always matched the data returned in the current request. Otherwise any app using twitter-text to parse and display tweets would have broken.