The Unshorten.It! API is no longer supported and new registrations for API keys will not be accepted. The API will continue to operate for current users however it is recommended that users migrate away from it. The documentation below has been left for current users of the API.
It is suggested that instead of using the API, Applications implement the logic to expand the shortened URL themselves, this is a fairly simple task. The way that Unshorten.It's logic works is as follows. The application makes an HTTP GET request to the shortened URL and looks at the resposne time, if it is a 301 redirect it will do the same request again for the URL pointed to by the redirect. If the response code is 200 it will check the body for any meta tag redirects, if a meta redirect is found it will again follow the same process with the URL pointed to by this redirect, if the response code is 200 and the body does not contain a meta redirect, then that URL is said to be the full URL. This is expressed as psuedocode below. If you are using Python, the Python Requests library is great for this sort of thing and is what Unshorten.It uses internally.
function unshorten_url(url) {
response = make_get_request(url)
if (response.status_code == 301) {
// Attempt to unshorten the redirected to URL
return unshorten_url(response.redirect_destination)
} else if (response.status_code == 200) {
if (response.body.contains_meta_redirect) {
// Attempt to unshorten the redirected to URL
return unshorten_url(response.body.meta_redirect_destintation)
} else {
// No more redirects found so return the final URL
return url
}
} else {
// Throw exception or something
}
}
Our API can return the results in the following formats:
Our API can return either the full URL that the shortened URL points to e.g. http://example.com/folder/page.html or just the domain name e.g. http://example.com
To use our API you must send parameters via a regular GET request in the URL. Below is a list of parameters that are accepted by our API:
text returns a plain text responsexml returns an XML responsejson returns a JSON encoded response.fullurl returns the entire URL e.g. example.com/foo/bar.htmldomainonly returns the domain name that the short URL points to e.g. example.comboth returns both the full URL and the domain only.Requests should be made to our API at the following URL http://api.unshorten.it
This request only sends one parameter, shortURL, both the responseFormat and return parameters are not supplied and thus default to text and fullurl respectivly.
Request:
http://api.unshorten.it?shortURL=http://bit.ly/1pa4XTq&apiKey=YOUR_API_KEY
Response:
http://unshorten.it/api/documentation
This request sends two parameters, shortURL and responseFormat, thereturn parameter is not supplied and thus defaults to fullurl.
Request:
http://api.unshorten.it?shortURL=http://bit.ly/1pa4XTq&responseFormat=json&apiKey=YOUR_API_KEY
Response:
{"fullurl":"http:\/\/unshorten.it\/api/documentation"}
This request sends two parameters, shortURL and responseFormat, thereturn parameter is not supplied and thus defaults to fullurl.
Request:
http://api.unshorten.it?shortURL=http://bit.ly/1pa4XTq&responseFormat=xml&apiKey=YOUR_API_KEY
Response:
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<fullurl>http://unshorten.it/api/documentation</fullurl>
</response>
This request sends all three parameters, shortURL, responseFormat and return.
Request:
http://api.unshorten.it?shortURL=http://bit.ly/1pa4XTq&responseFormat=xml&return=domainonly&apiKey=YOUR_API_KEY
Response:
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<domain>unshorten.it</domain>
</response>
This request sends all three parameters, shortURL, responseFormat and return.
Request:
http://api.unshorten.it?shortURL=http://bit.ly/1pa4XTq&responseFormat=xml&return=both&apiKey=YOUR_API_KEY
Response:
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<fullurl>http://unshorten.it/api/documentation</fullurl>
<domain>unshorten.it</domain>
</response>
This request sends all three parameters, shortURL, responseFormat and return.
Request:
http://api.unshorten.it?shortURL=http://bit.ly/1pa4XTq&responseFormat=text&return=both&apiKey=YOUR_API_KEY
Response:
http://unshorten.it/api/documentation|unshorten.it
Note that the full URL and domain are separated by the | character, if you are using PHP you can use the explode function to split this up into an array.
Our API will return an error code if the request is invalid or the URL cannot be unshortened. Below is a list of the error numbers and what they mean:
responseFormat parameter is invalid, please check your request is only using one of the following parameters (text, xml, json)return parameter is invalid, please check your request is only using one of the following parameters (fullurl, domainonly, both)The error code is returned differently depending on the response format:
Plain Text:
error (0)
JSON:
{"error":0}
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<error>0</error>
</response></code>
Important Note: Error number 1 (Invalid response format) will always be returned as plain text since the system cannot tell which format to return the error in, you must handle this in your application