The last few days has seen news released that the Yahoo/Bing relationship will result in “Microsoft Webmaster Tools to support Yahoo! Site Explorer Community“, or as interpreted by Barry Schwartz at Search Engine Land “Yahoo Shutting Down Site Explorer This Year“.
Whilst the Majestic SEO API is not quite a drop-in replacement for Yahoo/BOSS, we believe that the Majestic SEO API provides similar functionality, and migration need not be complex. We are also very open about where the data comes from – providing valuable peace of mind and confidence during a potentially turbulent time for link intelligence providers.
The purpose of this post is to provide a developer perspective on our API, and how it can be used – as a start, here is a review of some of the material we have previously written about the use of Majestic API:
- Our Dedicated Majestic SEO API Developer Site with extensive documentation
- The “Connector Code” we have to ease implementation on a number of platforms
- A business and licensing perspective on our API services.
Getting into the Majestic API
Assuming you are a registered user on the Majestic SEO website, in order to get access to the developer API, you will first need an API Key.
Using Your API Key
Now you have your API key, you have a choice. You can either hand craft your own API queries, or use one of our “connectors” – the code for which is available in a number of languages ( perl, php, ruby, c# and java as of time of writing ) on our developer homepage.
Some basic stats
One of our most popular functions is called GetIndexItemInfo. GetIndexItemInfo returns some of the headline totals visible in our site explorer product, and many other places all over the internet. Its not uncommon for us to get 100s of requests per second for this command.
If you do want to roll your own connector, here is the response in XML:
<?xml version="1.0" encoding="utf-8"?> <Result Code="OK" ErrorMessage="" FullError=""> <GlobalVars IndexBuildDate="17/04/2010 16:43:46" MostRecentBackLinkDate="2010-03-25"/> <DataTables Count="1"> <DataTable Name="Results" RowsCount="1" Headers="ItemNum|Item|ResultCode|Status|ExtBackLinks|RefDomains|AnalysisResUnitsCost|ACRank|ItemType|IndexedURLs|GetTopBackLinksAnalysisResUnitsCost| RefIPs|RefSubNets|RefDomainsEDU|ExtBackLinksEDU|RefDomainsGOV|ExtBackLinksGOV|RefDomainsEDU_Exact|ExtBackLinksEDU_Exact|RefDomainsGOV_Exact |ExtBackLinksGOV_Exact"> <Row>0|majesticseo.com|OK|Found|28381|1229|28381|-1|1|4774|28381|1074|954|1|5|0|0|0|0|0|0</Row> </DataTable> </DataTables> </Result>
We do provide example code to call this with our connectors, so I won’t repeat it here – instead lets look at an example script to show some backlinks for a given page in a couple of programming languages.
Does the Majestic SEO API have an “inlink” command?
Many users love Yahoo BOSS for the “inlink” command. The closest command in the Majestic SEO API to inlink is “GetTopBackLinks” – which, as its name implies, returns the top backlinks ( by AC Rank ) for a given:
- URL ( http://www.example.org/home.html ),
- Sub Domain ( www.example.org ),
- or Domain ( *.example.org ).
Get Backlinks in PHP:
Our responses are formed from message level parameters, data tables, and table level parameters, all of which are available via the Object Orientated Interface.
<?php require './APIService.php'; $api_key = "[ INSERT API KEY HERE ]"; $url = "http://www.example.com"; $endpoint = 'http://developer.majesticseo.com/api_command'; $api_service = new APIService($api_key, $endpoint); $parameters = array(); $parameters["datasource"] = "fresh"; $parameters["MaxSourceURLs"] = 10; $parameters["URL"] = $url; $parameters["GetUrlData"] = 1; $parameters["MaxSourceURLsPerRefDomain"] = 1; $response = $api_service->executeCommand("GetTopBackLinks", $parameters); if ( $response->isOK() == "false" ) { echo "Error Occured" . $response -> getErrorMessage(); exit; } $table = $response->getTableForName("URL"); $rows = $table->getTableRows(); foreach ( $rows as $row) { echo "URL: ".$row["SourceURL"] ."\n"; echo "AC Rank: ".$row["ACRank"] ."\n"; } ?>
Get Backlinks in Perl:
The perl connector makes it easy to get the data and display it without worrying about http requests or xml formatting:
#!/usr/bin/perl use strict; use warnings; use MJ12::Remote::ApiService; my $api_key = "[ INSERT API KEY HERE ]"; my $url = "http://www.example.com"; my $endpoint = 'http://developer.majesticseo.com/api_command'; my $api_service = new MJ12::Remote::ApiService('ApplicationApiKey' => $api_key, 'Endpoint' => $endpoint); my $response = $api_service->executeCommand('Name' => 'GetTopBackLinks', 'Params' => { MaxSourceURLs => 10, URL => $url, GetUrlData => 1, MaxSourceURLsPerRefDomain => 1, datasource => "fresh" } ); # check the response code. die $response->errorMessage unless ( $response->isOK() ); # dump results table. my $results = $response->tableForName('Name' => 'URL'); foreach my $row ( @{$results->rowsAsArrayRef()} ) { print "URL: ".$row -> {"SourceURL"} ."\n"; print "AC Rank: ".$row -> {"ACRank"} ."\n"; }
Fresh and Historic
The “datasource” parameter can be used to point your query at either our “fresh” or “historic” indexes. In the developer sandbox, both indexes return the same data, so its well worth testing counts against Majestic Site Explorer once the code is connected to the enterprise.majesticseo.com endpoint.
In Conclusion…
At Majestic we have had over 5 years experience in backlinks analysis, and run one of the largest publicly queryable indexes of backlinks information on the planet – we know of no single-source backlinks provider with a larger index. Our services already power some major players in search engine intelligence, so we hope you can be confident of our commitment to deliver and develop our world class backlinks intelligence Service.
As a final thought, despite rumours on twitter to the contrary, there have been no parties at Majestic as a result of the announced closure of Site Explorer, as we have nothing but respect for the talented engineers who developed and maintained this powerhouse of internet analytics. We hope they all move onto bigger and better things.
- Introducing Duplicate Link Detection - August 27, 2021
- Python – A practical introduction - February 25, 2020
- Get a list of pages on your site with links from other sites. - February 7, 2020
well i think i will have to move here and buy api access when yahoo will go down 🙂
July 22, 2011 at 7:21 am