Download API
to check it

PDF, 2.1 mb

A philosophy that puts the customer first.

We made a very simply API through which you can retrive serps very easy. To start with us you need:

  • Register on our site.
  • Get your API key.
  • Set your server's IPs from which you will make the requests.
  • Set up the callback for getting results (serps).
  • Use our API.
Step one. Register

Click on free test in the right-top corner of our site. Enter you email address and click "Free trial" button. You will get your account details on this email address.

Step two. Get your API key.

Your API key will be sent to your email address in the same letter with your password.

Step three. Set your IPs.

To send requests to your server you need to set IPs from which you will send the requests to our API.

Go to your memeber cabinet -> dashboards -> additional settings.

Step four. Use our API.

Our API has a few entry points:

  • keywords - allows you to add, get and remove keywords;
  • locations - allows you to get a list of all available locations;
  • tasks - allows you to set up tasks for our system.

Attention. All data must be sent to our server in JSON format (UTF-8 encoding). The next sections will cover all these three API entry points and provide you with examples.

Keywords

add()

Allows to add keyword to our system.

Post data fields:

Name Type Description
apiKey String Secret key for access to the system
Keyword String / array of strings The keyword(s) that you wish to add to the daily queue. Keywords must be UTF-8 encoded.

You can also add the full URL generated by the pattern: "https://www.google.ru/searchnum=100&q=serpex&newwindow=1&noj=1&igu=1&uule=w+CAIQICIXT21zayxPbXNrIE9ibGFzdCxSdXNzaWE&hl=en&ip=0.0.0.0&source_ip=0.0.0.0"

Type (optional) String Keyword Type

Default: type = 0;

If the full address generated by the pattern is: type=1.

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
get()

Allows you to view a list of all added keywords.

Name Type Description
apiKey String Secret key for access to the system
Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
remove()

Allows to remove keywords to our system.

Name Type Description
apiKey String Secret key for access to the system
keywordIds String / array of strings Selected keyword numbers
Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                        PERL
        {
"result": "OK",
"message": "Success",
"data":[
{
  "locationId": "1002316",
  "locationName": "london borough of lambeth",
  "canonicalName": "london borough of lambeth,england,united
    kingdom",
  "targetType": "municipality",
  "status": "active"
},
{
  "locationId": "1006453",
  "locationName": "alderney",
  "canonicalName": "alderney,united kingdom",
  "targetType": "county",
  "status": "active"
},
     ]
        }
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    

Locations

list()

Allows you to get a list of all available locations. To determine the location we use Google Geotargeting

Name Type Description
apiKey String Secret key for access to the system
countryCode String ISO country code

ISO country code which will be used for filtering

canonicalName (optional) String Full name of a location

We use Google Geotargeting that's why you are able to point in this field appropriate Canonical Name for instance: "London Borough of Lambeth, England, United Kingdom"

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    

Tasks

set()

Allow to set you the task for getting result from group of keywords by specified location. The task can be run oce or periodically.

Name Type Description
apiKey String Secret key for access to the system
keywordId String / array of strings Selected keyword numbers
engine String Search Engine

Availiable Search Engines: "google", "bing", ...

If you don't specify this field, the system will set the default value: "google"

device String Can have one of these values: "mobile", "desktop".

Default: "desktop"

language String Search Engine Language

It can have the following values: "en", "de", "fr"

country String Country

It can have the following values: "gb", "us", "fr"

locationId Integer Search engine location Id

You can get list of available locations of search engines with locationId by separate request: "docs/locations/list"

When the information about set task is returned you will get location Id

Please note that we use Google Geotargeting which includes Country, State, Region, Municipality, City - that's why you can specify locationId appropriate CriteriaId

cycle String Check once or daily

May have the following values:

"once" - check one-time / "daily" - daily check

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
get()

Allow you to get complete information about all added tasks

Name Type Description
apiKey String Secret key for access to the system
Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
changeDevice()

Allows you to change the type of device for specified task.

Name Type Description
apiKey String Secret key for access to the system
taskId Integer Selected task Id
device String Search Result Device

May have the following values: "mobile", "desktop"

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
changeCountry()

Allows you to change the search country

Name Type Description
apiKey String Secret key for access to the system
taskId Integer Selected task Id
country String Country

May have the following values: "gb", "us", "ge", "..."

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
changeLanguage()

Allows you to change the language of the search result

Name Type Description
apiKey String Secret key for access to the system
taskId Integer Selected task Id
language String Language of Search Engine

May have the following values: "fr", "en", "cn", "..."

Request:

{
 "apiKey": "dd67784asdc2323356443d3"
 "taskId": "2350"
 "language": "fr"
}
    

Response:

{
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "taskId": "2350",
      "language": "fr",
    }]
}
    
changeLocation()

Allows you to change location of search engine

Name Type Description
apiKey String Secret key for access to the system
taskId Integer Selected task Id
locationId Integer Search engine location Id

You can get list of available locations of search engines with location Id by separate request: "docs/locations/list"

When the information ablout set task is returned you will get locationId

Please note that we use Google Geotargeting which includes Country, State, Region, Municipality, City, that's why you can specify locationId appropriate CriteriaId.

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
check()

Allows you to poll for recent checks of a given keyword. You will likely be using a callback to handle this part of the workflow, however there may be times where you want to poll manually - for example if your callback URI has failed for any reason or you have lost historical data. We save 1 week checks history.

Name Type Description
apiKey String Secret key for access to the system
taskId String Selected task Id
keywordId

(optional)

String Keyword from the selected task
Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
serp()

Allow you to get the serp for give keyword.

Callbacks

Our system will notify you we will get the serp for every keyword from every your task.

The system will call url which you set up in member are. If the call will fail, the system will retry the call 2 times in 1 and 2 hours.

Request:
{
 "apiKey": "dd67784asdc2323356443d3",
 "keywords": ["SerpEx"],
 "type": "1"
}
    
Response:
                            PHP
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);
    
                            PERL
            {
 "result": "OK",
 "message": "Success",
 "data":[
    {
      "locationId": "1002316",
      "locationName": "london borough of lambeth",
      "canonicalName": "london borough of lambeth,england,united
        kingdom",
      "targetType": "municipality",
      "status": "active"
    },
    {
      "locationId": "1006453",
      "locationName": "alderney",
      "canonicalName": "alderney,united kingdom",
      "targetType": "county",
      "status": "active"
    },
         ]
}
    
                            C#
            using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new SampleViewModel());
        }


        [HttpPost]
        public JsonResult GetAnswer(string question)
        {				
            int index = _rnd.Next(_db.Count);
            var answer = _db[index];
            return Json(answer);
        }

        private static Random _rnd = new Random();

        private static List _db = new List { "Yes", "No", "Definitely, yes", "I don't know", "Looks like, yes"} ;        
    }
}
    
                            Java
cropper.getCroppedCanvas();

cropper.getCroppedCanvas({
  width: 160,
  height: 90,
  minWidth: 256,
  minHeight: 256,
  maxWidth: 4096,
  maxHeight: 4096,
  fillColor: '#fff',
  imageSmoothingEnabled: false,
  imageSmoothingQuality: 'high',
});

// Upload cropped image to server if the browser supports `HTMLCanvasElement.toBlob`.
// The default value for the second parameter of `toBlob` is 'image/png', change it if necessary.loremlorem         
cropper.getCroppedCanvas().toBlob((blob) => {
  const formData = new FormData();

  // Pass the image file name as the third parameter if necessary.
  formData.append('croppedImage', blob/*, 'example.png' */);

  // Use `jQuery.ajax` method for example
  $.ajax('/path/to/upload', {
    method: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success() {
      console.log('Upload success');
    },
    error() {
      console.log('Upload error');
    },
  });
}/*, 'image/png' */);