I previously wrote about shortening URLs with TinyURL’s API but my new favorite URL shortener is http://bit.ly and it also has a great API that you can use from within your .net code.  I just recently used in my twitter contest website – tweetastica.

The code is also very simple.  I didn’t add all the extra options that the API makes available and just wrote enough for me to shorten a URL.  Here it is:

public static class BitlyApi
{
    private const string apiKey = "[add api key here]";
    private const string login = "[add login name here]";

    public static BitlyResults ShortenUrl(string longUrl)
    {
        var url =
            string.Format("http://api.bit.ly/shorten?format=xml&version=2.0.1&longUrl={0}&login={1}&apiKey={2}",
                          HttpUtility.UrlEncode(longUrl), login, apiKey);
        var resultXml = XDocument.Load(url);
        var x = (from result in resultXml.Descendants("nodeKeyVal")
                 select new BitlyResults
                            {
                                UserHash = result.Element("userHash").Value,
                                ShortUrl = result.Element("shortUrl").Value
                            }
                );
        return x.Single();
    }
}

public class BitlyResults
{
    public string UserHash { get; set; }

    public string ShortUrl { get; set; }
}

Using this code is very straight forward.

var shortUrl = BitlyApi.ShortenUrl("http://www.verylongUrl.com").ShortUrl;

bit.ly has tons of features and a great API.  You can even see stats of any bit.ly generate url using /info.  for example: http://bit.ly/info/S0vRy shows you stats for http://bit.ly/S0vRy

Another feature I really like is their bookmarklet which you can keep on your browser’s bookmark bar and click it to shrink the site you are at…  It even pops this side bar with a bunch of useful info.

image

The API is pretty well documented at http://code.google.com/p/bitly-api/wiki/ApiDocumentation

Don’t forget to follow me on twitter.

This entry was posted on Thursday, May 7th, 2009 at 2:34 pm and is filed under Programming. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.