Everything that you needs To build you own SEO tool.

Why Is It Special

Search Engines

We provides data from Google and Bing search engines.

Easy to use

We build pretty complex tools and this allows our customer to build own SEO tool.


We provides results in REST JSON format. That is very easy to use.

Google & Bing

With Google and Bing SERP api you can get below result snippets in JSON response

  • Organic Result
  • Answer Box
  • Knowledge Graph
  • People also ask
  • Local map pack
  • People also search for
  • Related search
  • Carousel

Recently, We have introduced image api, Where you can perform Google and Bing image search and get result in json resonse

Awesome Features


We provides flexibility to choose Device such as Desktop, Tablet and Mobile. Because Search engine provides different results for different devices.


Search Engine provides result based on user location. So we are allowing user to choose what location and language they want to target.

Postback & Pingback

We sends ping to url that provided by user once the search is completed. Postback includes result data. While pingback just calls that url with task id

Real Time

Each API request runs immediately – no waiting for results.

It will take upto 5 seconds to return the result


In addition, each API request runs in a full browser, and we'll even solve all CAPTCHAs. Mimicking completely what a human will do. This guarantees that you get what users truly see.

JSON Results

Regular organic results are available as well as Maps, Related Search, People also ask, Answer box, People also serch for and Knowledge Graph.

Ad Results

Retrive ad result in JSON response of request (Supported on Google Only)

Serp Search API

Scrape search results from our fast, easy, and complete API.


Easy Integration


Use one of our code snippet to get started.

                                    curl -X POST \
                                            -H 'accept: application/json' \
                                            -H 'authorization: Bearer API_TOKEN' \
                                            -H 'content-type: application/json' \
                                        -d '{
                                            "data": {
                                                "q": "Coffee",
                                                "loc":"Texas,United States",
                                                "device": "desktop",
                                                "serp_type": "web"
                                    require 'uri'
                                    require 'net/http'

                                    url = URI("")

                                    http =, url.port)
                                    http.use_ssl = true
                                    http.verify_mode = OpenSSL::SSL::VERIFY_NONE

                                    request =
                                    request["accept"] = 'application/json'
                                    request["content-type"] = 'application/json'
                                    request["authorization"] = 'Bearer API_TOKEN'
                                    request.body = '{"data": {
                                        "domain": "",
                                        "lang": "en",
                                        "q": "Coffee",
                                        "loc": "Texas,United States",
                                        "device": "desktop",
                                        "serp_type": "web"

                                    response = http.request(request)
                                    puts response.read_body
                                    import requests
                                    url = ""
                                    payload = '{"data": {
                                        "domain": "",
                                        "lang": "en",
                                        "q": "Coffee",
                                        "loc": "Texas,United States",
                                        "device": "desktop",
                                        "serp_type": "web"
                                    headers = {
                                        'accept': "application/json",
                                        'content-type': "application/json",
                                        'authorization': "Bearer API_TOKEN"

                                    response = requests.request("POST", url, data=payload, headers=headers)
                                    var http = require("https");

                                    var options = {
                                        "method": "POST",
                                        "hostname": "",
                                        "port": null,
                                        "path": "/serp/live",
                                        "headers": {
                                            "accept": "application/json",
                                            "content-type": "application/json",
                                            "authorization": "Bearer API_TOKEN"

                                    var req = http.request(options, function (res) {
                                        var chunks = [];

                                        res.on("data", function (chunk) {

                                        res.on("end", function () {
                                            var body = Buffer.concat(chunks);

                                        data: {
                                            domain: '',
                                            lang: 'en',
                                            q: 'Coffee',
                                            loc: 'Texas,United States',
                                            device: 'desktop',
                                            serp_type: 'web'
                                    $curl = curl_init();

                                    curl_setopt_array($curl, array(
                                        CURLOPT_URL => "",
                                        CURLOPT_RETURNTRANSFER => true,
                                        CURLOPT_ENCODING => "",
                                        CURLOPT_MAXREDIRS => 10,
                                        CURLOPT_TIMEOUT => 30,
                                        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                                        CURLOPT_CUSTOMREQUEST => "POST",
                                        CURLOPT_POSTFIELDS => '{"data": {
                                            "lang": "en",
                                            "q": "Coffee",
                                            "loc": "Texas,United States",
                                            "device": "desktop",
                                            "serp_type": "web"
                                        CURLOPT_HTTPHEADER => array(
                                            "accept: application/json",
                                            "authorization: Bearer API_TOKEN",
                                            "content-type: application/json"

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


                                    if ($err) {
                                        echo "cURL Error #:" . $err;
                                    else {
                                        echo $response;
                                    OkHttpClient client = new OkHttpClient();

                                    MediaType mediaType = MediaType.parse("application/json");
                                    RequestBody body = RequestBody.create(mediaType, '{"data": {
                                        "domain": "",
                                        "lang": "en",
                                        "q": "Coffee",
                                        "loc": "Texas,United States",
                                        "device": "desktop",
                                        "serp_type": "web"}}
                                    Request request = new Request.Builder()
                                        .addHeader("accept", "application/json")
                                        .addHeader("content-type", "application/json")
                                        .addHeader("authorization", "Bearer API_TOKEN")

                                    Response response = client.newCall(request).execute();
                                    package main

                                    import (

                                    func main() {
                                        url := ""
                                        payload := strings.NewReader('{"data": {
                                            "lang": "en",
                                            "q": "Coffee",
                                            "loc": "Texas,United States",
                                            "device": "desktop",
                                            "serp_type": "web"}}

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

                                        req.Header.Add("accept", "application/json")
                                        req.Header.Add("content-type", "application/json")
                                        req.Header.Add("authorization", "Bearer API_TOKEN")

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

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



Happy Clients


every second



Signup to start using the API today!

You'll be up and running in less than 2 minutes.

No credit card required • Cancel at any time

Free Trial


200 Delayed searches

200 Real-time searches

Data from Google and Bing

HTTPS Encryption




1000 Delayed searches

1000 Real-time searches

Data from Google and Bing

HTTPS Encryption

99.9% Uptime SLA

100% Success Rate

Dedicated Support




6000 Delayed searches

6000 Real-time searches

Data from Google and Bing

HTTPS Encryption

99.9% Uptime SLA

100% Success Rate

Dedicated Support


X Real-time searches

X Delayed searches

Data from Google and Bing

HTTPS Encryption

99.9% Uptime SLA

100% Success Rate

Dedicated Support

“ I have been using it for my SEO tool. And i experienced 100% uptime and get support on my all the concern very quickly ”



“ I use SERPhouse for my client's websites to check rank of keywords worldwide. ”


SEO Developer

“ Wow this is what i wanted in cheap rate”


SEO Developer

Client 1
Client 2
Client 3

Join our Monthly Membership

Find the perfect plan for you — 100% satisfaction guaranteed.