GeoRanker - Accurate data from Search Engines

Welcome to the GeoRanker documentation. You'll find comprehensive guides and tutorials to help you start working with GeoRanker as quickly as possible, as well as community support if you get stuck.

Get Started
Suggest Edits

Reads the User Account information

Read the user account information.

 

Query Auth

 Authentication is required for this endpoint.
gethttp://api.highvolume.georanker.com/user
var request = require("request");

var options = { method: 'GET',
  url: 'http://api.highvolume.georanker.com/user',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url 'http://api.highvolume.georanker.com/user?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/user?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://api.highvolume.georanker.com/user?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/user?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/user"

querystring = {"apikey":"apikey"}

response = requests.request("GET", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/user?apikey=apikey")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/user?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/user?apikey=apikey");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/user?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/user?apikey=apikey"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

apikey
string
required

The user account apikey

Response

The user account data.

createdAtstring

When this user was created.

emailsarray

The list email from user.

profileobject
profile.namestring

The user name. Example: Renan Gomes

profile.organizationstring

The organization name. Example: GeoRanker

profile.websitestring

The website name. Example: www.georanker.com

profile.genderstring

The gender from user. Example: Male

profile.countryCodestring

The user's country code. Example: US

creditsarray

The list email from user.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Create a new Search Engine Ranking Page (SERP) request.

Create a request to our system to do a search on the search engine using the keywords, regions, and other settings. This search will be done asynchronously and this request will return a SERP object with an ID that can be used to download the data later.

 

Query Auth

 Authentication is required for this endpoint.
posthttp://api.highvolume.georanker.com/serp/new
var request = require("request");

var options = { method: 'POST',
  url: 'http://api.highvolume.georanker.com/serp/new',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url 'http://api.highvolume.georanker.com/serp/new?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/serp/new?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://api.highvolume.georanker.com/serp/new?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/serp/new?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/serp/new"

querystring = {"apikey":"apikey"}

response = requests.request("POST", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/serp/new?apikey=apikey")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/serp/new?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/serp/new?apikey=apikey");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/serp/new?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/serp/new?apikey=apikey"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

apikey
string
required

The user account apikey

Body Params

keyword
string
required

The keyword to be used when doing the search. We will not automatically append any city name to the keyword. The search will be done using the exact same keyword sent. Example: pizza delivery

region
string
required

A valid canonical region name or a ISO-3166-1 alpha-2 country code. If the name does not match with a canonical name from our list, we will try to match with its formatted name, local name, id or a country code. You can check a list of valid regions in the here or here

searchEngine
string
required

The search engine used to search the content. List of Search Engines (google, googlelocal, yahoo, bing, yandex, youtube, naverwebdocs, naverlocal, baidu,googlenews, googleimages). Default: google.

callback
string

A URL that will be called when this SERP Request is ready to be downloaded. We will do a POST HTTP request with the SERP id (serpId) to the callback URL as soon the data is ready on our database. Example: mysite.com/process.php

maxResults
int32

The total amount of organic results we will collect from the search engine. The maximum value of this variable is determined by the user plan. Default: 100

isMobile
boolean

If True, we will do the search using a mobile browser. By default, this variable is False.

language
string

Two letters ISO 639-1 language code. If this field is not provided, we will use the default language for the country. Default: en

Response

SERP Request created

idstring

A unique id created for this SERP object. This id can be used to read or update this object.

keywordstring

The keyword to be used when doing the search. We will not automatically append any city name to the keyword. The search will be done using the exact same keyword sent. Example: pizza delivery

regionobject
region.idstring

Unique and persistent assigned ID for the region. Example: 167

region.namestring

Best available English name of the geo region. Example: New York

region.localNamestring

The name of the region in the local language. Example: New York City

region.formattedNamestring

Fully qualified region name in a human readable format. Example: New York, NY, USA

region.canonicalNamestring

The constructed fully qualified English name consisting of the region's own name, and that of its parent and country. This is unique and should be used when sending Regions names via our API. Example: New York,United States

region.placeIdstring

ID code of the region in google maps API.

region.parentIdstring

If the region is inside another region, this field contains the parent's region ID. Example: 2840

region.countryCodestring

The ISO-3166-1 alpha-2 country code that is associated with the region. Example: US

region.typestring

The type of the region. Example: State

region.populationinteger

The approximate total population of the region. Example: 8173

region.latitudenumber

The latitude of the center of the region. Example: 40.837

region.longitudenumber

The longitude of the center of the region. Example: -74.413

searchEnginestring

The search engine used to search the content. List of Search Engines (google, googlelocal, yahoo, bing, yandex, youtube, naverwebdocs, naverlocal, baidu,googlenews, googleimages). Default: google.

callbackstring

A URL that will be called when this SERP Request is ready to be downloaded. We will do a POST HTTP request with the SERP id to the callback url as soon the data is ready on our database. Example: mysite.com/process.php

maxResultsinteger

The total amount of organic results we will collect from the search engine. The maximum value of this variable is determined by the user plan. Default: 100

isMobileboolean

If True, we will do the search using a mobile browser. By default, this variable is False.

languagestring

Two letters ISO 639-1 language code. If this field is not provided, we will use the default language for the country. Default: en

readyboolean

If this object is false, means that the SERP data is not ready yet and we are still processing it. If true, the data can be consumed.

isFromApiboolean

If true, this SERP was created by our API

queuedboolean

True if the SERP request was already sent to one of our crawlers.

callbackExecutedboolean

Indicates if the callback URL were notified when the SERP was solved. Example: true

callbackFailedboolean

Indicates a failure on the callback URL notification. Example: false

createdAtstring

When this search was requested to be processed.

generatedAtstring

When this Search was performed at the search engine.

dataobject
data.totalResultsinteger

The amount of results the search engine has indexed to that keyword. Example: 2005

data.organicarray

The organic list of results for this search. This can include some special data like, for example, Google Maps Pack.

data.advertisersarray

The list of advertisers that was displayed when doing this search.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

The user has no credits left.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Create up to 1000 Search Engine Ranking Page (SERP) requests from a list.

Create up to 1000 SERPs Request to our system to do a search on the search engine using the keywords, regions, and other settings. This search will be done asynchronously and this request will return a list of SERP object with IDs that can be used to download the data later.

NOTE: Not possible to test this API command here. Below there is an example of body content that can be used in the call

[
{'keyword':'test 1','region':'United States','searchEngine':'google'},
{'keyword':'test 2','region':'Canada','searchEngine':'bing'}
]

 

Query Auth

 Authentication is required for this endpoint.
posthttp://api.highvolume.georanker.com/serp/new/list
var request = require("request");

var options = { method: 'POST',
  url: 'http://api.highvolume.georanker.com/serp/new/list',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url 'http://api.highvolume.georanker.com/serp/new/list?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/serp/new/list?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://api.highvolume.georanker.com/serp/new/list?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/serp/new/list?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/serp/new/list"

querystring = {"apikey":"apikey"}

response = requests.request("POST", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/serp/new/list?apikey=apikey")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/serp/new/list?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/serp/new/list?apikey=apikey");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/serp/new/list?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/serp/new/list?apikey=apikey"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

apikey
string
required

The user account apikey

Response

A list of Full SERP data that was created. If the data is not ready yet for a specific SERP, the flag `ready` will be false for that object and the data field object may be null. This function ignores the SERPs that do not exist or are duplicated.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

SERP not found or you don't have permission to read it.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

The user has no credits left.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Display the current SERP data for a provided ID.

Return the full SERP data based on the ID. If the data is not ready yet, the flag ready will be false and the data object may be null.

 

Query Auth

 Authentication is required for this endpoint.
gethttp://api.highvolume.georanker.com/serp/id
var request = require("request");

var options = { method: 'GET',
  url: 'http://api.highvolume.georanker.com/serp/id',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url 'http://api.highvolume.georanker.com/serp/id?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/serp/id?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://api.highvolume.georanker.com/serp/id?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/serp/id?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/serp/id"

querystring = {"apikey":"apikey"}

response = requests.request("GET", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/serp/id?apikey=apikey")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/serp/id?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/serp/id?apikey=apikey");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/serp/id?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/serp/id?apikey=apikey"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

id
string
required

ID of SERP that needs to be fetched

Query Params

apikey
string
required

The user account apikey

Response

SERP Request created

idstring

A unique id created for this SERP object. This id can be used to read or update this object.

keywordstring

The keyword to be used when doing the search. We will not automatically append any city name to the keyword. The search will be done using the exact same keyword sent. Example: pizza delivery

regionobject
region.idstring

Unique and persistent assigned ID for the region. Example: 167

region.namestring

Best available English name of the geo region. Example: New York

region.localNamestring

The name of the region in the local language. Example: New York City

region.formattedNamestring

Fully qualified region name in a human readable format. Example: New York, NY, USA

region.canonicalNamestring

The constructed fully qualified English name consisting of the region's own name, and that of its parent and country. This is unique and should be used when sending Regions names via our API. Example: New York,United States

region.placeIdstring

ID code of the region in google maps API.

region.parentIdstring

If the region is inside another region, this field contains the parent's region ID. Example: 2840

region.countryCodestring

The ISO-3166-1 alpha-2 country code that is associated with the region. Example: US

region.typestring

The type of the region. Example: State

region.populationinteger

The approximate total population of the region. Example: 8173

region.latitudenumber

The latitude of the center of the region. Example: 40.837

region.longitudenumber

The longitude of the center of the region. Example: -74.413

searchEnginestring

The search engine used to search the content. List of Search Engines (google, googlelocal, yahoo, bing, yandex, youtube, naverwebdocs, naverlocal, baidu,googlenews, googleimages). Default: google.

callbackstring

A URL that will be called when this SERP Request is ready to be downloaded. We will do a POST HTTP request with the SERP id to the callback url as soon the data is ready on our database. Example: mysite.com/process.php

maxResultsinteger

The total amount of organic results we will collect from the search engine. The maximum value of this variable is determined by the user plan. Default: 100

isMobileboolean

If True, we will do the search using a mobile browser. By default, this variable is False.

languagestring

Two letters ISO 639-1 language code. If this field is not provided, we will use the default language for the country. Default: en

readyboolean

If this object is false, means that the SERP data is not ready yet and we are still processing it. If true, the data can be consumed.

isFromApiboolean

If true, this SERP was created by our API

queuedboolean

True if the SERP request was already sent to one of our crawlers.

callbackExecutedboolean

Indicates if the callback URL were notified when the SERP was solved. Example: true

callbackFailedboolean

Indicates a failure on the callback URL notification. Example: false

createdAtstring

When this search was requested to be processed.

generatedAtstring

When this Search was performed at the search engine.

dataobject
data.totalResultsinteger

The amount of results the search engine has indexed to that keyword. Example: 2005

data.organicarray

The organic list of results for this search. This can include some special data like, for example, Google Maps Pack.

data.advertisersarray

The list of advertisers that was displayed when doing this search.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

SERP not found or you don't have permission to read it.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

The user has no credits left.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Deletes a SERP request from our database.

Remove from our database a SERP object that is not necessary anymore. This will not give the credits back to the user account.

 

Query Auth

 Authentication is required for this endpoint.
deletehttp://api.highvolume.georanker.com/serp/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'http://api.highvolume.georanker.com/serp/id',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url 'http://api.highvolume.georanker.com/serp/id?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/serp/id?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "http://api.highvolume.georanker.com/serp/id?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/serp/id?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"DELETE"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/serp/id"

querystring = {"apikey":"apikey"}

response = requests.request("DELETE", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/serp/id?apikey=apikey")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/serp/id?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/serp/id?apikey=apikey");
var request = new RestRequest(Method.DELETE);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/serp/id?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/serp/id?apikey=apikey"

	req, _ := http.NewRequest("DELETE", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

id
string
required

ID of SERP that needs to be deleted

Query Params

apikey
string
required

The user account apikey

Response

SERP request deleted. Please note that the code 204 means "No Content" and the response body will be empty.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

SERP not found or you don't have permission to read it.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Read a list of SERPs by Ids

Return a list of full SERP data based on the IDs sent. If the data is not ready yet for a specific SERP, the flag ready will be false for that object and the data field object may be null.

NOTE: Not possible to test this API command here. Below there is an example of body content that can be used in the call

[
'5a19d72a1553bd652f12f833',
'5a19d8511553bd6530605279',
'5a1a04621553bd54926a4e43'
]

 

Query Auth

 Authentication is required for this endpoint.
posthttp://api.highvolume.georanker.com/serp/list
var request = require("request");

var options = { method: 'POST',
  url: 'http://api.highvolume.georanker.com/serp/list',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url 'http://api.highvolume.georanker.com/serp/list?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/serp/list?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://api.highvolume.georanker.com/serp/list?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/serp/list?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/serp/list"

querystring = {"apikey":"apikey"}

response = requests.request("POST", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/serp/list?apikey=apikey")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/serp/list?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/serp/list?apikey=apikey");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/serp/list?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/serp/list?apikey=apikey"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

apikey
string
required

The user account apikey

Response

A list of Full SERP data. If the data is not ready yet for a specific SERP, the flag `ready` will be false for that object and the data field object may be null. This function ignores the SERPs that do not exist or are duplicated.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

SERP not found or you don't have permission to read it.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

The user has no credits left.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Read a list of regions

Read and filter a list of regions. The region list is static and can be cached on the client side.

 

Query Auth

 Authentication is required for this endpoint.
gethttp://api.highvolume.georanker.com/region/list
var request = require("request");

var options = { method: 'GET',
  url: 'http://api.highvolume.georanker.com/region/list',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url 'http://api.highvolume.georanker.com/region/list?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/region/list?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://api.highvolume.georanker.com/region/list?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/region/list?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/region/list"

querystring = {"apikey":"apikey"}

response = requests.request("GET", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/region/list?apikey=apikey")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/region/list?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/region/list?apikey=apikey");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/region/list?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/region/list?apikey=apikey"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

countryCode
string

The two letters ISO-3166-1 alpha-2 country code to use to filter the region list.

type
string

The type of the region

items
integer

The total number of items to return on the search

page
integer

The page to download

apikey
string
required

The user account apikey

Response

The list of regions that was found using the filters

pageinteger

Current page number. Example: 144

totalinteger

The total amount of results for this search. Example: 144

itemsarray

The name of the region in the local language.

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

Get whois data and contact information from a domain name

Return the whois data from a domain name. The response includes informations of the domain's server, it's social media links and contacts of the responsible personal of the domain.

 

Query Auth

 Authentication is required for this endpoint.
gethttp://api.highvolume.georanker.com/whois/domain
var request = require("request");

var options = { method: 'GET',
  url: 'http://api.highvolume.georanker.com/whois/domain',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url 'http://api.highvolume.georanker.com/whois/domain?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/whois/domain?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://api.highvolume.georanker.com/whois/domain?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/whois/domain?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/whois/domain"

querystring = {"apikey":"apikey"}

response = requests.request("GET", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/whois/domain?apikey=apikey")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/whois/domain?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/whois/domain?apikey=apikey");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/whois/domain?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/whois/domain?apikey=apikey"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

domain
string
required

Domain name of whois data that needs to be fetched

Query Params

apikey
string
required

The user account apikey

source
string

This is the data source to generate the whois data.
The possible values are:
auto: This is the default option. Our System chooses the best data source based on the domain TLD.

website: This will make the request try to be solved using the website scraping algorithm. This will only work for a small and very specific list of TLDs.
whois: Most of the time, we will use this data source to get the data. This is equivalent to run the whois via command line on a linux machine and, after, extract each single piece of data.

Response

The Whois object with the contact and social links information collected.

domainstring

The domain used to gather informations. Example: example.co.uk

tldstring

The domain's tld. If the domain is an IP address, this field will be NULL. This field never starts with a dot. Example: co.uk

statusarray

The list of status of the domain.

createdAtstring

When this domain was created.

updatedAtstring

When this domain was last updated.

expiredAtstring

When this domain will expire.

nameServersarray

The list of the names of the domain. Example: example.com

contactsobject

The contact data object related to the domain.

contacts.registrantobject

The contact information data.

contacts.registrant.namestring

The name of the contact. Example: John Doe

contacts.registrant.orgstring

The name of the organization. Example: Google Inc.

contacts.registrant.emailstring

The email address. Example: contact@ex.com

contacts.registrant.streetarray

The address parts. Example: Rd One 123

contacts.registrant.postalstring

The postal code of the contact. Example: 12345-000

contacts.registrant.citystring

The city of the contact. Example: New York

contacts.registrant.statestring

The state of the contact. Example: New York

contacts.registrant.countrystring

The country of the contact. Example: United States

contacts.registrant.phonestring

The phone number of the contact. Example: 0100-000

contacts.registrant.faxstring

The fax number of the contact. Example: 0100-987

contacts.adminobject

The contact information data.

contacts.admin.namestring

The name of the contact. Example: John Doe

contacts.admin.orgstring

The name of the organization. Example: Google Inc.

contacts.admin.emailstring

The email address. Example: contact@ex.com

contacts.admin.streetarray

The address parts. Example: Rd One 123

contacts.admin.postalstring

The postal code of the contact. Example: 12345-000

contacts.admin.citystring

The city of the contact. Example: New York

contacts.admin.statestring

The state of the contact. Example: New York

contacts.admin.countrystring

The country of the contact. Example: United States

contacts.admin.phonestring

The phone number of the contact. Example: 0100-000

contacts.admin.faxstring

The fax number of the contact. Example: 0100-987

contacts.techobject

The contact information data.

contacts.tech.namestring

The name of the contact. Example: John Doe

contacts.tech.orgstring

The name of the organization. Example: Google Inc.

contacts.tech.emailstring

The email address. Example: contact@ex.com

contacts.tech.streetarray

The address parts. Example: Rd One 123

contacts.tech.postalstring

The postal code of the contact. Example: 12345-000

contacts.tech.citystring

The city of the contact. Example: New York

contacts.tech.statestring

The state of the contact. Example: New York

contacts.tech.countrystring

The country of the contact. Example: United States

contacts.tech.phonestring

The phone number of the contact. Example: 0100-000

contacts.tech.faxstring

The fax number of the contact. Example: 0100-987

contacts.zoneobject

The contact information data.

contacts.zone.namestring

The name of the contact. Example: John Doe

contacts.zone.orgstring

The name of the organization. Example: Google Inc.

contacts.zone.emailstring

The email address. Example: contact@ex.com

contacts.zone.streetarray

The address parts. Example: Rd One 123

contacts.zone.postalstring

The postal code of the contact. Example: 12345-000

contacts.zone.citystring

The city of the contact. Example: New York

contacts.zone.statestring

The state of the contact. Example: New York

contacts.zone.countrystring

The country of the contact. Example: United States

contacts.zone.phonestring

The phone number of the contact. Example: 0100-000

contacts.zone.faxstring

The fax number of the contact. Example: 0100-987

contacts.billingobject

The contact information data.

contacts.billing.namestring

The name of the contact. Example: John Doe

contacts.billing.orgstring

The name of the organization. Example: Google Inc.

contacts.billing.emailstring

The email address. Example: contact@ex.com

contacts.billing.streetarray

The address parts. Example: Rd One 123

contacts.billing.postalstring

The postal code of the contact. Example: 12345-000

contacts.billing.citystring

The city of the contact. Example: New York

contacts.billing.statestring

The state of the contact. Example: New York

contacts.billing.countrystring

The country of the contact. Example: United States

contacts.billing.phonestring

The phone number of the contact. Example: 0100-000

contacts.billing.faxstring

The fax number of the contact. Example: 0100-987

rawTextstring

The raw text of the whois request. Example: HTTP 1.0 200 Connection established Whois Server Version 2.0 Domain names in the .com and .net domains can now be registered with many different competing registrars...

emailsarray

The list of emails found on the whois information of the domain.

registeredboolean

Either if the domain is registered or not.

registrarobject

The registrar infomation related to the domain.

registrar.namestring

The registrar name. Example: EXAMPLE REGISTRAR INC.

registrar.emailstring

The registrar email. Example: ex@example.com

registrar.urlstring

The registrar url. Example: example.com

registrar.phonestring

The registrar phone number. Example: 0100-0000

serverobject

The server information of the domain.

server.ipstring

The IP of the domain. Example: 127.1.1.0

server.reverseDNSstring

The Reverse DNS hostname of the IP address found.

server.latitudenumber

The latitude of the domain's server. Example: 40.712

server.longitudenumber

The longitude of the domain's server. Example: -10.171

server.countrystring

The country of the domain's server. Example: US

server.citystring

The city of the domain's server. Example: Mountain View

server.continentstring

The continent of the domain's server. Example: NA

server.hostingASNstring

The autonomous system number. Example: Hosting ASN Inc.

server.hostingPoviderstring

The provider of the domain's host. Example: Datacenter Example S.A.

backlinksinteger

The total number of backlinks that points to any domain or subdomain. Example: 13662

socialLinksobject

The domain social media links. This data is only avaiable if the social links are present on the homepage of the website.

socialLinks.facebookstring

The facebook address found for the domain. Example: facebook.com/ex

socialLinks.twitterstring

The twitter address found for the domain. Example: twitter.com/ex

socialLinks.linkedinstring

The linkedin address found for the domain. Example: linkedin.com/ex

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

The user has no credits left.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Suggest Edits

technologies

 
Suggest Edits

Get a list of technologies used on a domain.

Return the technologies data from a domain name. The response includes a list of technologies and its categories

 

Query Auth

 Authentication is required for this endpoint.
gethttp://api.highvolume.georanker.com/technologies/domain
var request = require("request");

var options = { method: 'GET',
  url: 'http://api.highvolume.georanker.com/technologies/domain',
  qs: { apikey: 'apikey' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url 'http://api.highvolume.georanker.com/technologies/domain?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/technologies/domain?apikey=apikey")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://api.highvolume.georanker.com/technologies/domain?apikey=apikey");

xhr.send(data);
#import <Foundation/Foundation.h>

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/technologies/domain?apikey=apikey"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
import requests

url = "http://api.highvolume.georanker.com/technologies/domain"

querystring = {"apikey":"apikey"}

response = requests.request("GET", url, params=querystring)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://api.highvolume.georanker.com/technologies/domain?apikey=apikey")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.highvolume.georanker.com/technologies/domain?apikey=apikey",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var client = new RestClient("http://api.highvolume.georanker.com/technologies/domain?apikey=apikey");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://api.highvolume.georanker.com/technologies/domain?apikey=apikey")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "http://api.highvolume.georanker.com/technologies/domain?apikey=apikey"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

domain
string
required

Domain name of technologies data that needs to be fetched

Query Params

apikey
string
required

The user account apikey

Response

The Website technologies object with the technologies list.

domainstring

The domain used to gather informations. Example: example.co.uk

updatedAtstring

When this domain was last updated.

technologiesarray

Bad input parameter. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Bad API Key. Your key may have been mistyped or you do not have access to our API.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Internal server error. The error message should indicate which one and why.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

Your app is making too many requests and is being rated limited. 503s can trigger on a per-IP or per-user basis.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error

The user has no credits left.

codeinteger

The error code. Usually, we use the same standards as the HTTP status codes. Example: 500

messagestring

The error message generated by our API. Example: Internal Server Error

solutionstring

A possible solution to solve this error. Example: More details about the error