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 email list from user.

profileobject
profile.namestring

The user name. Example: Marcos 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

Informations about user credits.

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 keyword request.

Create a request to our system to do collect the keyword data. This search will be done asynchronously and this request will return a Keyword 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/keyword/new
var request = require("request");

var options = { method: 'POST',
  url: 'http://api.highvolume.georanker.com/keyword/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/keyword/new?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/keyword/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/keyword/new?apikey=apikey");

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

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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

keywords
array of strings
required

The list of keywords. The keyword can not be longer than 75 characters. The list can contain up to 700 items if suggestions is false or 200 if the suggestions is true. NOTE: If source is "baidu", and any of the provided keywords are separated by commas, it will be split and interpreted as two keywords. Credit cost: each keyword request, whether it is 1 keyword or a list of 700 keywords, costs 200 credits.

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, criteria id or a country code. You can check a list of valid canonical regions in our API or in the Google Geolocation . Example: London,England,United Kingdom

language
string

Two letters ISO 639-1 language code. If this field is not provided or contains an unsupported language, we will not filter by language.

source
string
required

The data source used to collect the data. If the source is not set, we will assume the data needs to come from google. Possible Values: "google","baidu".

searchPartners
boolean

If you specify the true value in the field, the results delivered will include the search partners data. By default, search partners are not considered.

suggestions
boolean

If true, we will return suggestions based on the keyword list. NOTE: If source is "baidu", suggestions will only work with a single keyword.

isRealTime
boolean

If True, the system will try to prioritize this job to solve in the same request. Additional costs will apply. NOTE: If "baidu" this flag will not work. Default: FALSE

callback
string

A URL that will be called when this Keyword Request is ready to be downloaded. We will do a POST HTTP request sending the id from the request in a key called 'id' and telling its type which is 'keyword' to the callback URL as soon the data is ready on our database.

Response

Keyword Request created

idstring

A unique ID created for this Keyword object. This ID can be used to read or update this object.

keywordsarray

The list of keywords. The keyword can not be longer than 75 characters. The list can contain up to 700 items if suggestions is false or 200 if the suggestions is true. NOTE: If source is "baidu", and any of the provided keywords are separated by commas, it will be split and interpreted as two keywords.

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

languagestring

Two letters ISO 639-1 language code. If this field is not provided, we will not filter by language.

sourcestring

The data source used to collect the data. If the source is not set, we will assume the data needs to come from google. Possible Values: "google","baidu".

searchPartnersboolean

If you specify the true value in the field, the results delivered will include the search partners data. By default, search partners are not considered.

suggestionsboolean

If true, we will return suggestions based on the keyword list. NOTE: If source is "baidu", suggestions will only work with a single keyword.

faultyboolean

True if the keyword could not be solved. The spent credits will be reversed.

callbackstring

A URL that will be called when this Keyword Request is ready to be downloaded. We will do a POST HTTP request sending the id from the request in a key called 'id' and telling its type which is 'keyword' to the callback URL as soon the data is ready on our database.

callbackExecutedboolean

Indicates if the callback URL was notified when the Keyword was solved.

callbackFailedboolean

Indicates a failure on the callback URL notification.

readyboolean

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

isFromApiboolean

If true, this Keyword was created by our API

isRealTimeboolean

If True, the system will try to prioritize this job to solve in the same request. Additional costs will apply. NOTE: If "baidu" this flag will not work. Default: FALSE

queuedboolean

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

createdAtstring

When this Keyword was requested to be processed.

generatedAtstring

When this Keyword was executed at the data providor.

dataobject
data.totalResultsinteger

The amount of results the data source returned.

data.resultsarray

The list of results for this keyword object.

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

Display the current keyword data for a provided ID.

Return the full keyword 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/keyword/id
var request = require("request");

var options = { method: 'GET',
  url: 'http://api.highvolume.georanker.com/keyword/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/keyword/id?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/keyword/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/keyword/id?apikey=apikey");

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

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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 Keyword that needs to be fetched

Query Params

apikey
string
required

The user account apikey

Response

Keyword retrived

idstring

A unique ID created for this Keyword object. This ID can be used to read or update this object.

keywordsarray

The list of keywords. The keyword can not be longer than 75 characters. The list can contain up to 700 items if suggestions is false or 200 if the suggestions is true. NOTE: If source is "baidu", and any of the provided keywords are separated by commas, it will be split and interpreted as two keywords.

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

languagestring

Two letters ISO 639-1 language code. If this field is not provided, we will not filter by language.

sourcestring

The data source used to collect the data. If the source is not set, we will assume the data needs to come from google. Possible Values: "google","baidu".

searchPartnersboolean

If you specify the true value in the field, the results delivered will include the search partners data. By default, search partners are not considered.

suggestionsboolean

If true, we will return suggestions based on the keyword list. NOTE: If source is "baidu", suggestions will only work with a single keyword.

faultyboolean

True if the keyword could not be solved. The spent credits will be reversed.

callbackstring

A URL that will be called when this Keyword Request is ready to be downloaded. We will do a POST HTTP request sending the id from the request in a key called 'id' and telling its type which is 'keyword' to the callback URL as soon the data is ready on our database.

callbackExecutedboolean

Indicates if the callback URL was notified when the Keyword was solved.

callbackFailedboolean

Indicates a failure on the callback URL notification.

readyboolean

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

isFromApiboolean

If true, this Keyword was created by our API

isRealTimeboolean

If True, the system will try to prioritize this job to solve in the same request. Additional costs will apply. NOTE: If "baidu" this flag will not work. Default: FALSE

queuedboolean

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

createdAtstring

When this Keyword was requested to be processed.

generatedAtstring

When this Keyword was executed at the data providor.

dataobject
data.totalResultsinteger

The amount of results the data source returned.

data.resultsarray

The list of results for this keyword object.

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

Keyword 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 keyword request from our database.

Removes from our database a keyword 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/keyword/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'http://api.highvolume.georanker.com/keyword/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/keyword/id?apikey=apikey'
require 'uri'
require 'net/http'

url = URI("http://api.highvolume.georanker.com/keyword/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/keyword/id?apikey=apikey");

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

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://api.highvolume.georanker.com/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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/keyword/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 keyword to be deleted

Query Params

apikey
string
required

The user account apikey

Response

Keyword data 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

Keyword 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

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, criteria id or a country code. You can check a list of valid canonical regions in our API or in the Google Geolocation . Example: London,England,United Kingdom

searchEngine
string
required

The search engine used to search the content. Complete list of available Search Engines: google, googlelocal, yahoo, bing, yandex, youtube, naverwebdocs, naverlocal, baidu, googlenews, googleimages, googleadvertiser, daumsite, daumweb, seznam, sogou. 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 sending the id from the request in a key called 'id' and telling its type which is 'serp' to the callback URL as soon the data is ready on our database. Example: mysite.com/process.php

maxResults
int32

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

isMobile
boolean

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

isRealTime
boolean

If True, the system will try to prioritize this job to solve in the same request. Additional costs will apply. Default: 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

saveRawData
boolean

True if you want the raw data to be saved.

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. Complete list of available Search Engines: google, googlelocal, yahoo, bing, yandex, youtube, naverwebdocs, naverlocal, baidu, googlenews, googleimages, googleadvertiser, daumsite, daumweb, seznam, sogou. 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 sending the id from the request in a key called 'id' and telling its type which is 'serp' to the callback URL as soon the data is ready on our database. Example: mysite.com/process.php

maxResultsinteger

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

isMobileboolean

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

isRealTimeboolean

If True, the system will try to prioritize this job to solve in the same request. Additional costs will apply. Default: 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 was 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.

saveRawDataboolean

True if you want the raw data to be saved.

faultyboolean

True if the serp could not be solved. The spent credits will be reversed.

dataobject
data.totalResultsinteger

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

data.rawarray

The RAW data used to parse the results.

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.

data.answersarray

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

data.videosarray

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

data.imagesarray

The list of images 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 requests 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 1: The isRealTime parameter is disabled for this command.

NOTE 2: 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"} ]

NOTE 3: Every SERP request will have its callback called separately.

 

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. Complete list of available Search Engines: google, googlelocal, yahoo, bing, yandex, youtube, naverwebdocs, naverlocal, baidu, googlenews, googleimages, googleadvertiser, daumsite, daumweb, seznam, sogou. 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 sending the id from the request in a key called 'id' and telling its type which is 'serp' to the callback URL as soon the data is ready on our database. Example: mysite.com/process.php

maxResultsinteger

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

isMobileboolean

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

isRealTimeboolean

If True, the system will try to prioritize this job to solve in the same request. Additional costs will apply. Default: 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 was 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.

saveRawDataboolean

True if you want the raw data to be saved.

faultyboolean

True if the serp could not be solved. The spent credits will be reversed.

dataobject
data.totalResultsinteger

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

data.rawarray

The RAW data used to parse the results.

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.

data.answersarray

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

data.videosarray

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

data.imagesarray

The list of images 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.

Removes 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. Example: US

type
string

The type of the region. Example: country, region or postal code

items
integer

The total number of items to return on the search by the specific page. Example: 100

page
integer

The number of the page to download. You can paginate the results to get more locations. Default: 1. Example: 2

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 maintainers 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 email list found on the whois information of the domain.

registeredboolean

True if the domain is registered.

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