Fetching Alexa data

37.1k Views Asked by At

How is it possible to get traffic data, sub domains data, country rank in percentage like in http://www.websiteoutlook.com/www.google.com?

8

There are 8 best solutions below

13
On BEST ANSWER

NB: This approach doesn't work anymore. The endpoint simply returns "Ok", even for URLs which aren't assigned.

There is a free API (though I haven't been able to find any documentation for it anywhere).

http://data.alexa.com/data?cli=10&url=%YOUR_URL%

You can also query for more data the following way:

http://data.alexa.com/data?cli=10&dat=snbamz&url=%YOUR_URL%

All the letters in dat are the ones that determine which info you get. This dat string is the one I've been able to find which seems to have more options. Also, cli changes the output completely, this option makes it return an XML with quite a lot of information.

EDIT: This API is the one used by the Alexa toolbar.

1
On

SimilarWeb has an API that exposes its traffic and ranking data. They also provide engagement metrics, referrals and domain categorization APIs, among others, so maybe it'll be good for you.

API - developer.similarweb.com

2
On

By using http://data.alexa.com/data?cli=10&url=%YOUR_URL% API you can have all data.

0
On

http://www.siteprice.org/api/ is the cheapest I think and easy to use.

$worthofwebsite= file_get_contents('http://www.siteprice.org/WorthApi.aspx?type=1&key=testkey&url=google.com'); 
echo "Website Worth: ".$worthofwebsite;
6
On

Alexa have an API here. It's not free, though.

1
On

A simple function to get the alexa rank

function alexa_rank($url){
    $xml = simplexml_load_file("http://data.alexa.com/data?cli=10&url=".$url);
    if(isset($xml->SD)):
        return $xml->SD->REACH->attributes();
    endif;
}

Works pretty well and free ;)

0
On

Usage for SimilarWeb Traffic API:

function api_traffic (URL, KEY) {

  var apiurl = "http://api.similarweb.com/Site/"
  + URL
  + "/v2/EstimatedTraffic?Format=JSON&UserKey=";
  + "KEY";


var fetch_visitors = UrlFetchApp.fetch(apiurl);
    Utilities.sleep(2000);

      var data = JSON.parse( fetch_visitors);
    return data.EstimatedVisitors;
    }
0
On

you can use this too

<?php
$url="http://stackoverflow.com/";
$xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url);
$rank=isset($xml->SD[1]->POPULARITY)?$xml->SD[1]->POPULARITY->attributes()->TEXT:0;
$web=(string)$xml->SD[0]->attributes()->HOST;
echo $web." has Alexa Rank ".$rank;
?>

this will output it like

stackoverflow.com has Alexa Rank 55