Using the BitLy API to shorten urls

I was asked to place Twitter messages with product links when new products were added to a webshop. I’ve used my own Twitter class for posting the first test Tweet then I went looking for a shorten url a service to shorten the product links.

There are many url shorten services available on the internet, one of these services is Bitly.
The reasons why I’ve chosen Bitly:
– Urls don’t expire after a period of time.
– Bitly provides a click url summary (although Google Analytics can be used for this instead)
– Urls are short in length so i could use the remaining Tweet length for a small product description.
– And more important, they provide an easy to use API.
– Authentication does not require a password, we can use our API key instead.

Before we can connect to the API, we need a Bitly account, the account can be created at http://bit.ly/ to obtain a free API key.

The communication process is quite simple:
– Authenticate with your Bitly username and API key
– Call the right Bitly API url with the correct parameters for the action we want to perform
– Process the result

Below are some snippets of my Bitly class:

class BitLy
{
	/**
	 * Version of the bit ly api
	 * @var string
	 */
	private $sApiVersion = '2.0.1';

	/**
	 * Url of the api
	 * @var string
	 */
	private $sApiUrl = 'http://api.bit.ly/';

	/**
	 * username
	 * @var string
	 */
	private $sUsername;

	/**
	 * apikey
	 * @var string
	 */
	private $sApiKey;

	/**
	 * Set username and apikey
	 *
	 * @param string $sUsername
	 * @param string $sApiKey
	 * @return void
	 */
	public function  __construct($sUsername, $sApiKey) {
		$this->setUsername($sUsername);
		$this->setApiKey($sApiKey);
	}

	...

	/**
	 * shorten
	 *
	 * @param string $sLongUrl
	 * @return object with shortend url and hash
	 */
	public function shorten($sLongUrl)
	{
		return $this->process('shorten', urlencode($sLongUrl));
	}

	/**
	 * expand
	 *
	 * @param string $sShortUrl
	 * @return object with original url
	 */
	public function expand($sShortUrl)
	{
		return $this->process('expand', urlencode($sShortUrl));
	}

	...

	/**
	 * process, checks the action and returns the result
	 *
	 * @param string $sAction
	 * @param string $sParam
	 */
	private function process($sAction, $sUrlToParse)
	{
		// Check the url, if no http is present, add it
		if(strstr($sUrlToParse, 'http://') === false) {
			$sUrlToParse = 'http://'.$sUrlToParse;
		}

		// Compose action url
		$sParam = ($sAction == 'shorten') ? 'longUrl='.$sUrlToParse : 'shortUrl='.$sUrlToParse;
		$sActionUrl = $this->sApiUrl.$sAction.'?version='.$this->sApiVersion.'&'.$sParam.'&login='.$this->sUsername.'&apiKey='.$this->sApiKey.'&format=xml';

		// Get data
		libxml_use_internal_errors(true);
		$oData = simplexml_load_file($sActionUrl);
		if(!$oData) {
			throw new Exception('Api returned an invalid response!');
		}

		// Check for errors
		if($oData->statusCode == 'ERROR') {
			throw new Exception($oData->errorCode.': '.$oData->errorMessage);
		}

		// Build result object
		$oResult				= new stdClass();
		$oResult->requestedUrl	= $sUrlToParse;
		$oResult->resultUrl	= (string)$oData->results->nodeKeyVal->shortUrl;
		$oResult->hash		= (string)$oData->results->nodeKeyVal->hash;

		return $oResult;
	}

The reason why I build a result object is because of the fact that the server where the class is deployed doesn’t support JSON but JSON is also available as return format.

Furthermore, generated urls can be saved to our Bitly account history by adding an additional parameter to the url (history = 1). Another nice option of the API is to shorten the URL to a keyword, this can be achieved by sending the (keyword=your keyword) parameter along.

The complete API manual can be found at Google Code which also describes how to get click statistics of the shortened links.

Comments

963 responses to “Using the BitLy API to shorten urls”

  1. Ralphdeach Avatar
    Ralphdeach

    Insulin glargine: buy diabetes medicine online – Diabetes Meds Easy Buy

  2. Donaldber Avatar
    Donaldber

    DiabetesMedsEasyBuy: buy diabetes medicine online – DiabetesMedsEasyBuy

  3. www.career4.co.kr Avatar

    make money online australia

    References:
    https://searl.co/augustsmith786

  4. Justinevibe Avatar
    Justinevibe

    Dapagliflozin Empagliflozin DiabetesMedsEasyBuy

  5. Geraldjoype Avatar
    Geraldjoype

    https://diabetesmedseasybuy.xyz/# buy diabetes medicine online

  6. Ralphdeach Avatar
    Ralphdeach

    Empagliflozin: DiabetesMedsEasyBuy – Diabetes Meds Easy Buy

  7. Michaelanoli Avatar
    Michaelanoli

    https://nyupharm.xyz/# trustworthy canadian pharmacy

  8. CraigKab Avatar
    CraigKab

    buy cheap meds from a mexican pharmacy mexican pharmacy for americans Unm Pharm

  9. Kennethdiera Avatar
    Kennethdiera

    ordering drugs from canada: canadian pharmacy checker – canadian neighbor pharmacy

  10. JosephBab Avatar
    JosephBab

    Umass India Pharm: Umass India Pharm – indian pharmacy

  11. Michaelanoli Avatar
    Michaelanoli

    https://nyupharm.com/# canada drugs online reviews

  12. Kennethdiera Avatar
    Kennethdiera

    online shopping pharmacy india: Umass India Pharm – Umass India Pharm

  13. DelmarDap Avatar
    DelmarDap

    https://unmpharm.com/# mexican border pharmacies shipping to usa

  14. JosephBab Avatar
    JosephBab

    mexican pharmacy for americans: mexican pharmacy for americans – Unm Pharm

  15. CraigKab Avatar
    CraigKab

    Unm Pharm Unm Pharm buy viagra from mexican pharmacy

  16. Michaelanoli Avatar
    Michaelanoli

    https://nyupharm.xyz/# pharmacy canadian superstore

  17. Kennethdiera Avatar
    Kennethdiera

    cheap canadian pharmacy online: canadian valley pharmacy – canada rx pharmacy

  18. JosephBab Avatar
    JosephBab

    Umass India Pharm: Umass India Pharm – indian pharmacy

  19. Michaelanoli Avatar
    Michaelanoli

    https://umassindiapharm.xyz/# online pharmacy india

  20. Kennethdiera Avatar
    Kennethdiera

    Online medicine home delivery: indian pharmacies safe – top online pharmacy india

  21. beste online casinos 2025 Avatar

    Erst dann, wenn du diese überprüft und verstanden hast, solltest du einen Neukundenbonus annehmen! Ein Willkommensbonus ist letztlich vergleichbar mit einer Treueprämie. Wir erklären den Willkommensbonus und andere Promotionen genauer weiter unten auf der Seite! In den meisten Fällen beträgt die geforderte Mindesteinzahlung 10€. Du kannst den Wert in Prozent in den Spielanleitungen finden. Aber statistisch betrachtet ist eine solche Aussage haltlos, wenn man in einem lizenzierten Casino Einsätze tätigt. Die Regulierungsbehörden sind darüber informiert, wo sich diese Konten mit dem Geld der Spieler befinden.
    Alle diese Faktoren sollten bei der Wahl des richtigen Online-Casinos eine Rolle spielen. Allerdings sind nicht nur die Games der deutschen Provider in Deutschland beliebt. Wer Gameentwickler nach deutschem Qualitätsstandard sucht, kann sich auf die deutschen oder österreichischen Marken konzentrieren. Der Unterschied ist, dass RNG-Tischspiele ein kostenloses Spielen und Erlernen der Regeln bieten. Vertrauenswürdige Glücksspielanbieter bieten in diesem Zusammenhang oftmals auch das Einstellen von Spiellimits an. Das Leon-Casino ist seit 2007 online und versorgt deutsche Casino-Fans mit rund 8.000 Slots aller Art.

    References:
    https://online-spielhallen.de/beste-casinos-mit-10e-bonus-ohne-einzahlung-2025/

  22. DelmarDap Avatar
    DelmarDap

    https://nyupharm.com/# canadian pharmacy ratings

  23. Sic Bo Regeln Avatar

    In anderen Situationen aktivieren Promo-Codes Freispiele und risikofreie Wetten. Der Willkommensbonus wird in Teilen gutgeschrieben, für die ersten drei Einzahlungen für einen Mindestbetrag von 15 EUR in jeder Zahlungsform. Das Bonusangebot ist in den meisten Fällen ähnlich, jedoch bieten einige Marken zusätzlich zu den Standard-Promotionen auch exklusive Angebote.
    Registrieren Sie sich im NV casino und genießen Sie einen 100% Bonus auf Ihre erste Einzahlung, um echtes Geld bei tausenden von Top-Slot- und Live-Casino-Spielen zu verwenden. Erkunden Sie das aufregende Universum der Slots, Tische und Live-Casino-Spiele mit speziellen Angeboten, die für NV casino-Spieler maßgeschneidert sind! Neue Spieler haben Zugang zu Tutorials, Demo-Runden und einem lohnenden Willkommensbonus.

    References:
    https://online-spielhallen.de/kostenlose-casino-spiele-online-ohne-anmeldung-direkt-spielen/

  24. b"asta binance h"anvisningskod Avatar

    Your point of view caught my eye and was very interesting. Thanks. I have a question for you.

  25. CraigKab Avatar
    CraigKab

    Unm Pharm best prices on finasteride in mexico amoxicillin mexico online pharmacy

  26. JosephBab Avatar
    JosephBab

    indian pharmacy online: Umass India Pharm – indianpharmacy com

Leave a Reply

Your email address will not be published. Required fields are marked *