This is the official Gem to interact with the SEOmoz API. For more information, please check out the API page on SEOmoz and the SEOmoz API Wiki. Note: this gem is currently an alpha release, and is not intended for production use…yet.
First you must secure an accessID and secret key from SEOmoz. See the API page for details. Once you have your credentials, create an instance of your client:
client = Linkscape::Client.new(:accessID => "my_access_id", :secret => "$secretp@$$w0rd")
Then you should be able to make one of the predefined API calls
response = client.urlMetrics("http://gemcutter.org", :cols => :all)
At this point response
should be a Linkscape::Response object. You can get at its data by calling
response.data
This returns a Linkscape::Response::ResponseData object, which is the container class for the response data.
For the urlMetrics and mozrank call, you can request specific data points, like:
response.data[:url] response.data[:external_links] response.data[:page_authority]
For all other calls, such as anchor text, top pages and link data sets, data
is an array of ResponseData objects, with each one keyed on their respective types. For example:
response.data.first[:source][:mozrank] # :source just for topPages and link calls response.data.first[:target][:page_authority] # :target just for link calls response.data.first[:link][:text] # :link just for link calls response.data.first[:anchor][:text] # :anchor just for link anchorMetrics calls
The Linkscape::Client object can make the following API calls:
Returns the mozRank of the supplied URI.
client.mozRank(uri)
Returns metrics about the supplied URI.
client.urlMetrics(uri, :cols => :all)
This call accepts the following options:
-
:cols
- An array of columns (see below) to return in the response, or the:all
keyword, which returns all columns.
Returns a list of topLinks to the supplied URI and :type.
client.topLinks(uri, :page, :urlcols => :all, :linkcols => :all, :limit => 3))
The 2nd parameter of this method, :type
can be either :page
, :subdomain
:domain
. It specifies the type of links you are requesting (links to the supplied URI, Root Domain or the Subdomain of the supplied URI).
This call accepts the following options:
-
:sourcecols
- An array of data columns (see below) that should be returned for the link source. -
:targetcols
- An array of data columns (see below) that should be returned for the link target. -
:linkcols
- An array of data columns (see below) that should be returned for the link itself. -
:limit
- The # of links (limit) you would like to return. -
:offset
= The number of records to offset before returning the 1st record of results.
Returns all the links to a specific URI and :type.
client.allLinks(uri, :page, :urlcols => [:title, :url, :page_authority, :domain_authority], :linkcols => :all, :filters => :external, :limit => 3)
The 2nd parameter of this method, :type
can be either :page
, :subdomain
:domain
. It specifies the type of links you are requesting (links to the supplied URI, Root Domain or the Subdomain of the supplied URI).
This call accepts the following options:
-
:sourcecols
- An array of data columns (see below) that should be returned for the link source. -
:targetcols
- An array of data columns (see below) that should be returned for the link target. -
:linkcols
- An array of data columns (see below) that should be returned for the link itself. -
:filters
- A String, Array or Symbol of filters (see below) that should be applied to the list of links. NOTE: Multiple filters may be combined, i.e.:filters => [:internal,:follow,:redir301]
. -
:limit
- The # of links (limit) you would like to return. -
:offset
= The number of records to offset before returning the 1st record of results. -
:scope
- A symbol representing the ‘scope’ of the links (see below).
Returns a list of the top pages on the URI in question
client.topPages(uri, :page, :cols => :all, :limit => 3)
The 2nd parameter of this method, :type
can be either :page
, :subdomain
:domain
. It specifies the type of top pages you are requesting (top pages on the supplied URI, Root Domain or the Subdomain of the supplied URI).
This call accepts the following options:
-
:cols
- An array of data columns (see below) that should be returned for the link source. -
:limit
- The # of links (limit) you would like to return. -
:offset
= The number of records to offset before returning the 1st record of results.
Returns anchor text metrics about the URI in question
client.anchorMetrics(uri, :cols => :all, :scope => "page_to_domain", :filters => :external, :sort => :domains_linking_page, :limit => 3, :scope => :phrase_to_page)
This call accepts the following options:
-
:cols
- An array of data columns (see below) that should be returned. -
:scope
- A symbol representing the ‘scope’ of the anchor text data (see below). -
:sort
- A symbol representing the ‘sort order’ of the anchor text data (see below). -
:filters
- A symbol representing the ‘filter’ of the anchor text data (see below). NOTE: Only:external
orinternal
filters may be used, separately. -
:limit
- The # of links (limit) you would like to return. -
:offset
= The number of records to offset before returning the 1st record of results.
For the API calls which support it, you may request data on multiple URLs by passing an array of URLs to the API call.
urls = ["http://www.seomoz.org/blog/21-tactics-to-increase-blog-traffic", "http://www.seomoz.org/tools"] response = client.urlMetrics(urls, :cols => :all) response.data.first[:url] >> "http://www.seomoz.org/blog/21-tactics-to-increase-blog-traffic" response.data.first[:external_links] >> 436
Depending on the type of data point return, you may access certain data points inside the ResponseData object.
-
:all_external_links
-
:canonical_internal_id
-
:canonical_url
-
:cblocks_linking
-
:domain_authority
-
:domain_authority_raw
-
:external_links
-
:external_mozrank
-
:external_mozrank_raw
-
:fq_domain
-
:fq_domain_all_external_links
-
:fq_domain_external_links
-
:fq_domain_external_mozrank_sum
-
:fq_domain_external_mozrank_sum_raw
-
:fq_domain_fq_domains_linking
-
:fq_domain_internal_links
-
:fq_domain_juice_fq_domains_linking
-
:fq_domain_juice_internal_links
-
:fq_domain_juice_links
-
:fq_domain_juice_pl_domains_linking
-
:fq_domain_links
-
:fq_domain_mozrank
-
:fq_domain_mozrank_raw
-
:fq_domain_mozrank_sum
-
:fq_domain_mozrank_sum_raw
-
:fq_domain_moztrust
-
:fq_domain_moztrust_raw
-
:fq_domain_pl_domains_linking
-
:fq_domain_unfollowed_external_links
-
:fq_domain_unfollowed_fq_domains_linking
-
:fq_domain_unfollowed_internal_links
-
:fq_domain_unfollowed_links
-
:fq_domain_unfollowed_pl_domains_linking
-
:fq_domain_updated_at
-
:fq_domains_linking
-
:internal_id
-
:internal_links
-
:ips_linking
-
:juice_cblocks_linking
-
:juice_fq_domains_linking
-
:juice_internal_links
-
:juice_ips_linking
-
:juice_links
-
:juice_pl_domains_linking
-
:links
-
:mozrank
-
:mozrank_raw
-
:moztrust
-
:moztrust_raw
-
:page_authority
-
:page_authority_raw
-
:pl_domain
-
:pl_domain_all_external_links
-
:pl_domain_cblocks_linking
-
:pl_domain_external_links
-
:pl_domain_external_mozrank_sum
-
:pl_domain_external_mozrank_sum_raw
-
:pl_domain_internal_links
-
:pl_domain_ips_linking
-
:pl_domain_juice_cblocks_linking
-
:pl_domain_juice_internal_links
-
:pl_domain_juice_ips_linking
-
:pl_domain_juice_links
-
:pl_domain_juice_pl_domains_linking
-
:pl_domain_links
-
:pl_domain_mozrank
-
:pl_domain_mozrank_raw
-
:pl_domain_mozrank_sum
-
:pl_domain_mozrank_sum_raw
-
:pl_domain_moztrust
-
:pl_domain_moztrust_raw
-
:pl_domain_pl_domains_linking
-
:pl_domain_unfollowed_cblocks_linking
-
:pl_domain_unfollowed_external_links
-
:pl_domain_unfollowed_internal_links
-
:pl_domain_unfollowed_ips_linking
-
:pl_domain_unfollowed_links
-
:pl_domain_unfollowed_pl_domains_linking
-
:pl_domain_updated_at
-
:pl_domains_linking
-
:status
-
:title
-
:unfollowed_cblocks_linking
-
:unfollowed_external_links
-
:unfollowed_fq_domains_linking
-
:unfollowed_internal_links
-
:unfollowed_ips_linking
-
:unfollowed_links
-
:unfollowed_pl_domains_linking
-
:updated_at
-
:url
-
:text
-
:mozrank
(passed)
-
:flags
-
:internal_mozrank
-
:internal_pages_linking
-
:external_subdomains_linking
-
:external_mozrank
-
:text
-
:internal_subdomains_linking
-
:external_domains_linking
-
:record_id
-
:external_pages_linking
Links may be filtered by any of the following. Anchor text may o
-
:internal
-
:external
-
:redir301
-
:follow
-
:nofollow
When requesting anchor text data, the following scopes may be used.
-
:phrase_to_page
-
:phrase_to_subdomain
-
:phrase_to_domain
-
:term_to_page
-
:term_to_subdomain
-
:term_to_domain
When requesting links, the following scope may be used
-
:page_to_page
-
:page_to_subdomain
-
:page_to_domain
-
:domain_to_page
-
:domain_to_subdomain
-
:domain_to_domain
When sorting links, the following sort orders are available.
-
:page_athority
-
:domain_authority
-
:domains_linking_page
-
:domains_linking_domain