So I’ve been as confused as anyone as to what the current Twitter reply system is actually doing, so I decided to try
a quick experiment. Just like email replies (which I recently ranted about), there are two ways to designate a
reply in Twitter. Akin to the subject of an email, you can prepend @username to your tweet, which is what most people
are talking about with this recent change. However, the API also supports a hidden parameter named
in_reply_to_status_id, which is pretty much like In-Reply-To in SMTP. This parameter is appended by twitter clients
when you actually click “reply” on a specific tweet instead of just starting a new tweet. This is how message threading
in Tweetie and other clients works. This is described in the Twitter API:
in_reply_to_status_id. Optional. The ID of an existing status that the update is in reply to. Note: This parameter will be ignored unless the author of the tweet this parameter references is @replied within the status text. Therefore, you must start the status with @username, where username is the author of the referenced tweet.
Now that note above is a little confusing. Can the @reply appear anywhere in the status text, or does it
necessarily have to be at the beginning? I decided to take two twitter accounts – my own, and one I setup for a
friend’s bridal shop – and see what combination of @username syntax and
in_reply_to_status_id do and don’t get
I tried five different variations…
in_reply_tobut no @replies at all – shows up just fine. This is consistent with the note above about
in_reply_to, that if the tweet does not also include an @reply of the other person,
in_reply_towith @reply mid-tweet – this is hidden, suggesting that the @reply can be anywhere in the status text.
in_reply_towith @reply at beginning – this is hidden, as expected.
in_reply_towith @reply at front of tweet – this is hidden, also as expected, since many people don’t make use their client’s Reply feature, and just start new tweets with “@username”. However, this addresses the use case of a tweet that mentions a person, but it isn’t actually part of a conversation. Like “@mtrichardson is a django rockstar, you people should hire him!”.
in_reply_towith @reply for a different person – this is not hidden, which is also consistent with the note above. You must include an @reply for the author of the tweet that is identified by
You can see the two twitter streams below. First, the control, which shows all of my above tweets:
So it looks like Twitter has at least done their best to be consistent, though it may not seem like it at first. As best as I can tell, two things will cause a tweet to be identified as a reply:
the tweet begins with “@username”
the tweet uses the
in_reply_toparameter, and the @username of the author of the tweet you’re replying to is somewhere in your tweet.
in_reply_to paramter without the @username of the person you’re replying to, or including someone elses
@username, or including @usernames anywhere else in the tweet, do not mark a tweet as a reply.
So if a tweet is marked as a reply, then the rules kick in which everyone is now complaining about… that you don’t see the replies of your friends if you’re not following the targeted user of the reply.