# Google Scholar API

Unlock a wealth of academic resources by scraping Google Scholar via our SERP API.

To tap into this specialized capability, append the `engine=google_scholar` parameter to your request.

Google Scholar stands as a premier search engine dedicated to academic and scholarly content. By leveraging our SERP API, you gain immediate and efficient access to real-time search results from Google Scholar. To harness this, simply align your request to engage the `google_scholar` engine. Furthermore, the Google Scholar API provides a plethora of customization options through specific parameters, ensuring tailored and precise results for your academic inquiries.

### Google Scholar API Integration Examples

We will use following URL as an example for this request:

```
https://serp.shifter.io/v1?api_key=<YOUR_API_KEY>&engine=google_scholar&q=python
```

### Ready to Use Google Scholar Scraping Scripts&#x20;

{% tabs %}
{% tab title="cURL" %}

```bash
curl --request GET --url "https://serp.shifter.io/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python"
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
const http = require("https");

const options = {
  "method": "GET",
  "hostname": "serp.shifter.io",
  "port": null,
  "path": "/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python",
  "headers": {}
};

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

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    const body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
```

{% endtab %}

{% tab title="Python" %}

```python
import http.client

conn = http.client.HTTPSConnection("serp.shifter.io")

conn.request("GET", "/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://serp.shifter.io/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python",
  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;
}
```

{% endtab %}

{% tab title="Go" %}

```go
package main

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

func main() {

	url := "https://serp.shifter.io/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python"

	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))

}
```

{% endtab %}

{% tab title="Java" %}

```java
HttpResponse<String> response = Unirest.get("https://serp.shifter.io/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python")
  .asString();
```

{% endtab %}

{% tab title=".NET" %}

```vbnet
var client = new RestClient("https://serp.shifter.io/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://serp.shifter.io/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

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

response = http.request(request)
puts response.read_body
```

{% endtab %}
{% endtabs %}

### Google Scholar Parameters

#### #1: Query Parameter

<table><thead><tr><th width="187">Parameter</th><th width="107" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>q</code><br> <mark style="color:red;background-color:red;">Required</mark> </td><td align="center"><code>string</code></td><td>The keywords that you are searching for on Google (the query).</td></tr></tbody></table>

#### #2: Localisation Parameters

<table><thead><tr><th width="184">Parameter</th><th width="106" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>lr</code></td><td align="center"><code>string</code></td><td>One or multiple languages to limit your search to. Values are formatted as <code>lang_{2 letter code of the country}</code> You can find all the available languages <a href="https://developers.google.com/custom-search/docs/xml_results_appendices#languageCollections">here</a></td></tr><tr><td><code>hl</code></td><td align="center"><code>string</code></td><td>The language you want to use for your Google search. <a href="https://developers.google.com/custom-search/docs/xml_results_appendices#interfaceLanguages">List of supported languages</a></td></tr></tbody></table>

#### #3:  Pagination Parameters

<table><thead><tr><th width="184">Parameter</th><th width="106" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>start</code></td><td align="center"><code>int</code></td><td>The offset of the Google Search Results. Represents the number of results that you want to skip.</td></tr><tr><td><code>num</code></td><td align="center"><code>int</code></td><td>The number of results returned on each page.</td></tr></tbody></table>

#### #4: Advanced Filtering Parameters

<table><thead><tr><th width="184">Parameter</th><th width="106" align="center">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>as_vis</code></td><td align="center"><code>int</code></td><td>Represents if you would like to include citations or not. Set it to <code>1</code> to exclude citations or <code>0</code>otherwise.</td></tr><tr><td><code>safe</code></td><td align="center"><code>string</code></td><td>This parameter allows you to filter or not the adult content. It can take the values <code>active</code> and <code>off</code>.</td></tr><tr><td><code>cites</code></td><td align="center"><code>string</code></td><td>Parameter defines unique ID for an article to trigger Cited By searches.</td></tr><tr><td><code>as_ylo</code></td><td align="center"><code>int</code></td><td>The parameter defines the year from when you want the results to be included.</td></tr><tr><td><code>as_yhi</code></td><td align="center"><code>int</code></td><td>The parameter defines the year until which you want the results to be included.</td></tr><tr><td><code>scisbd</code></td><td align="center"><code>int</code></td><td>Represents if it should include only abstract results (set on <code>1</code>) or all the results (set on <code>0</code>)</td></tr></tbody></table>

<details>

<summary>Response Example</summary>

```javascript
{
  "search_parameters": {
    "google_url": "https://scholar.google.com/scholar?q=python&sourceid=chrome&ie=UTF-8",
    "engine": "google_scholar",
    "google_domain": "scholar.google.com",
    "device": "desktop",
    "query": "python"
  },
  "search_information": {
    "organic_results_state": "Results for exact spelling",
    "total_results": 1440000,
    "time_taken_displayed": 0.03,
    "query_displayed": "python"
  },
  "organic_results": [
    {
      "type": "book",
      "title": "Python tutorial",
      "link": "http://lib.21h.io/library/G7B3RFY7/download/GBMFTU3C/Python_3.8.3_Docs_.pdf",
      "result_id": "mPZrr4kzeywJ",
      "snippet": "Python applications will often use packages and modules that don't come as part of the standard library. Applications will sometimes need a specific version of a library, because the application may require that a particular bug has been fixed or the application may be …",
      "publication_info": {
        "summary": "G Van Rossum, FL Drake Jr - 1995 - lib.21h.io"
      },
      "inline_links": {
        "cited_by": {
          "total": 992,
          "link": "https://scholar.google.com/scholar?cites=3205212226250864280&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "3205212226250864280"
        },
        "related_pages_link": "/scholar?q=related:mPZrr4kzeywJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 90,
          "link": "https://scholar.google.com/scholar?cluster=3205212226250864280&hl=en&as_sdt=0,47",
          "cluster_id": "3205212226250864280"
        }
      },
      "position": 1
    },
    {
      "type": "book",
      "title": "Programming python",
      "link": "https://books.google.com/books?hl=en&lr=&id=c8pV-TzyfBUC&oi=fnd&pg=PR11&dq=python&ots=n55H7QXWTW&sig=NiSpjE-XScQIJA6AW_Adp3-nKmI",
      "result_id": "hAkjjWUqTAsJ",
      "snippet": "Programming Pythonfocuses on advanced uses of the Python programming/scripting language, which has evolved from an emerging language of interest primarily to pioneers, to a widely accepted tool that traditional programmers use for real day-to-day development …",
      "publication_info": {
        "summary": "M Lutz - 2001 - books.google.com"
      },
      "inline_links": {
        "cited_by": {
          "total": 731,
          "link": "https://scholar.google.com/scholar?cites=814072248295164292&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "814072248295164292"
        },
        "related_pages_link": "/scholar?q=related:hAkjjWUqTAsJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 7,
          "link": "https://scholar.google.com/scholar?cluster=814072248295164292&hl=en&as_sdt=0,47",
          "cluster_id": "814072248295164292"
        }
      },
      "position": 2
    },
    {
      "type": "pdf",
      "title": "Pattern for python",
      "link": "https://www.jmlr.org/papers/volume13/desmedt12a/desmedt12a.pdf",
      "result_id": "04lXz42eH6kJ",
      "snippet": "Pattern is a package for Python 2.4+ with functionality for web mining (Google+ Twitter+ Wikipedia, web spider, HTML DOM parser), natural language processing (tagger/chunker, n- gram search, sentiment analysis, WordNet), machine learning (vector space model, k-means …",
      "publication_info": {
        "summary": "T De Smedt, W Daelemans - The Journal of Machine Learning Research, 2012 - jmlr.org",
        "authors": [
          {
            "name": "T De Smedt",
            "link": "https://scholar.google.com/citations?user=8VBuRDwAAAAJ&hl=en&oi=sra",
            "author_id": "8VBuRDwAAAAJ"
          },
          {
            "name": "W Daelemans",
            "link": "https://scholar.google.com/citations?user=21RjEWwAAAAJ&hl=en&oi=sra",
            "author_id": "21RjEWwAAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 408,
          "link": "https://scholar.google.com/scholar?cites=12186633448594049491&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "12186633448594049491"
        },
        "related_pages_link": "/scholar?q=related:04lXz42eH6kJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 28,
          "link": "https://scholar.google.com/scholar?cluster=12186633448594049491&hl=en&as_sdt=0,47",
          "cluster_id": "12186633448594049491"
        }
      },
      "position": 3
    },
    {
      "title": "Python for scientific computing",
      "link": "https://ieeexplore.ieee.org/abstract/document/4160250/",
      "result_id": "y_I3vcmcXH0J",
      "snippet": "Python is an excellent\" steering\" language for scientific codes written in other languages. However, with additional basic tools, Python transforms into a high-level language suited for scientific and engineering code that's often fast enough to be immediately useful but also …",
      "publication_info": {
        "summary": "TE Oliphant - Computing in science & engineering, 2007 - ieeexplore.ieee.org",
        "authors": [
          {
            "name": "TE Oliphant",
            "link": "https://scholar.google.com/citations?user=kUTSKZwAAAAJ&hl=en&oi=sra",
            "author_id": "kUTSKZwAAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 3318,
          "link": "https://scholar.google.com/scholar?cites=9033267342875292363&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "9033267342875292363"
        },
        "related_pages_link": "/scholar?q=related:y_I3vcmcXH0J:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 11,
          "link": "https://scholar.google.com/scholar?cluster=9033267342875292363&hl=en&as_sdt=0,47",
          "cluster_id": "9033267342875292363"
        }
      },
      "position": 4
    },
    {
      "title": "Pingouin: statistics in Python",
      "link": "https://joss.theoj.org/papers/10.21105/joss.01026.pdf",
      "result_id": "J8H_4rDwE-0J",
      "snippet": "Python is currently the fastest growing programming language in the world, thanks to its ease-of-use, fast learning curve and its numerous high quality packages for data science and machine-learning. Surprisingly however, Python is far behind the R programming …",
      "publication_info": {
        "summary": "R Vallat - Journal of Open Source Software, 2018 - joss.theoj.org",
        "authors": [
          {
            "name": "R Vallat",
            "link": "https://scholar.google.com/citations?user=XH8IG2UAAAAJ&hl=en&oi=sra",
            "author_id": "XH8IG2UAAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 179,
          "link": "https://scholar.google.com/scholar?cites=17083262454059745575&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "17083262454059745575"
        },
        "related_pages_link": "/scholar?q=related:J8H_4rDwE-0J:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 5,
          "link": "https://scholar.google.com/scholar?cluster=17083262454059745575&hl=en&as_sdt=0,47",
          "cluster_id": "17083262454059745575"
        }
      },
      "position": 5
    },
    {
      "type": "book",
      "title": "Python reference manual",
      "link": "http://www.cs.cmu.edu/afs/cs.cmu.edu/project/gwydion-1/OldFiles/OldFiles/python/Doc/ref.ps",
      "result_id": "oEYg8p8rRYYJ",
      "snippet": "Python is a simple, yet powerful, interpreted programming language that bridges the gap between C and shell programming, and is thus ideally suited for\\throw-away programming\" and rapid prototyping. Its syntax is put together from constructs borrowed from a variety of …",
      "publication_info": {
        "summary": "G Van Rossum, FL Drake Jr - 1995 - cs.cmu.edu"
      },
      "inline_links": {
        "cited_by": {
          "total": 1628,
          "link": "https://scholar.google.com/scholar?cites=9675187340437374624&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "9675187340437374624"
        },
        "related_pages_link": "/scholar?q=related:oEYg8p8rRYYJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 38,
          "link": "https://scholar.google.com/scholar?cluster=9675187340437374624&hl=en&as_sdt=0,47",
          "cluster_id": "9675187340437374624"
        }
      },
      "position": 6
    },
    {
      "title": "Python for scientists and engineers",
      "link": "https://ieeexplore.ieee.org/abstract/document/5725235/",
      "result_id": "O9xuKGYXJ5gJ",
      "snippet": "Python has arguably become the de facto standard for exploratory, interactive, and computation-driven scientific research. This issue discusses Python's advantages for scientific research and presents several of the core Python libraries and tools used in …",
      "publication_info": {
        "summary": "KJ Millman, M Aivazis - Computing in Science & Engineering, 2011 - ieeexplore.ieee.org",
        "authors": [
          {
            "name": "KJ Millman",
            "link": "https://scholar.google.com/citations?user=RH1sMcQAAAAJ&hl=en&oi=sra",
            "author_id": "RH1sMcQAAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 755,
          "link": "https://scholar.google.com/scholar?cites=10963757545389218875&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "10963757545389218875"
        },
        "related_pages_link": "/scholar?q=related:O9xuKGYXJ5gJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 12,
          "link": "https://scholar.google.com/scholar?cluster=10963757545389218875&hl=en&as_sdt=0,47",
          "cluster_id": "10963757545389218875"
        }
      },
      "position": 7
    },
    {
      "type": "html",
      "title": "ACPYPE-Antechamber python parser interface",
      "link": "https://link.springer.com/article/10.1186/1756-0500-5-367",
      "result_id": "4EdLgbJlEtEJ",
      "snippet": "ACPYPE (or AnteChamber PYthon Parser interfacE) is a wrapper script around the ANTECHAMBER software that simplifies the generation of small molecule topologies and parameters for a variety of molecular dynamics programmes like GROMACS, CHARMM and …",
      "publication_info": {
        "summary": "AWS Da Silva, WF Vranken - BMC research notes, 2012 - Springer",
        "authors": [
          {
            "name": "WF Vranken",
            "link": "https://scholar.google.com/citations?user=2PfcYK4AAAAJ&hl=en&oi=sra",
            "author_id": "2PfcYK4AAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 1261,
          "link": "https://scholar.google.com/scholar?cites=15065215520855508960&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "15065215520855508960"
        },
        "related_pages_link": "/scholar?q=related:4EdLgbJlEtEJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 22,
          "link": "https://scholar.google.com/scholar?cluster=15065215520855508960&hl=en&as_sdt=0,47",
          "cluster_id": "15065215520855508960"
        }
      },
      "position": 8
    },
    {
      "type": "book",
      "title": "Python machine learning",
      "link": "https://books.google.com/books?hl=en&lr=&id=GOVOCwAAQBAJ&oi=fnd&pg=PP1&dq=python&ots=Nd9DIeUWZH&sig=PJTyGGRYlXPn-yt63aqHbEX4k24",
      "result_id": "02jmKWjQSB8J",
      "snippet": "Unlock deeper insights into Machine Leaning with this vital guide to cutting-edge predictive analytics About This Book Leverage Python's most powerful open-source libraries for deep learning, data wrangling, and data visualization Learn effective strategies and best practices …",
      "publication_info": {
        "summary": "S Raschka - 2015 - books.google.com",
        "authors": [
          {
            "name": "S Raschka",
            "link": "https://scholar.google.com/citations?user=X4RCC0IAAAAJ&hl=en&oi=sra",
            "author_id": "X4RCC0IAAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 881,
          "link": "https://scholar.google.com/scholar?cites=2254280759297075411&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "2254280759297075411"
        },
        "related_pages_link": "/scholar?q=related:02jmKWjQSB8J:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 8,
          "link": "https://scholar.google.com/scholar?cluster=2254280759297075411&hl=en&as_sdt=0,47",
          "cluster_id": "2254280759297075411"
        }
      },
      "position": 9
    },
    {
      "type": "html",
      "title": "ParselTongue: AIPS Talking Python",
      "link": "http://adsabs.harvard.edu/pdf/2006ASPC..351..497K",
      "result_id": "khhr5Q74JJsJ",
      "snippet": "After more than 20 years of service, classic AIPS still is the data reduction package of choice for many radio-interferometry projects, especially for VLBI. Its age shows, most prominently in the limited scripting capabilities of its user interface: POPS. ParselTongue is an attempt to …",
      "publication_info": {
        "summary": "M Kettenis, HJ van Langevelde… - … and systems XV, 2006 - adsabs.harvard.edu",
        "authors": [
          {
            "name": "HJ van Langevelde",
            "link": "https://scholar.google.com/citations?user=_x0yHp8AAAAJ&hl=en&oi=sra",
            "author_id": "_x0yHp8AAAAJ"
          }
        ]
      },
      "inline_links": {
        "cited_by": {
          "total": 199,
          "link": "https://scholar.google.com/scholar?cites=11179332917902645394&as_sdt=5,47&sciodt=0,47&hl=en",
          "cites_id": "11179332917902645394"
        },
        "related_pages_link": "/scholar?q=related:khhr5Q74JJsJ:scholar.google.com/&scioq=python&hl=en&as_sdt=0,47",
        "versions": {
          "total": 10,
          "link": "https://scholar.google.com/scholar?cluster=11179332917902645394&hl=en&as_sdt=0,47",
          "cluster_id": "11179332917902645394"
        }
      },
      "position": 10
    }
  ],
  "pagination": {
    "other_pages": {
      "2": "https://scholar.google.com/scholar?start=10&q=python&hl=en&as_sdt=0,47",
      "3": "https://scholar.google.com/scholar?start=20&q=python&hl=en&as_sdt=0,47",
      "4": "https://scholar.google.com/scholar?start=30&q=python&hl=en&as_sdt=0,47",
      "5": "https://scholar.google.com/scholar?start=40&q=python&hl=en&as_sdt=0,47",
      "6": "https://scholar.google.com/scholar?start=50&q=python&hl=en&as_sdt=0,47",
      "7": "https://scholar.google.com/scholar?start=60&q=python&hl=en&as_sdt=0,47",
      "8": "https://scholar.google.com/scholar?start=70&q=python&hl=en&as_sdt=0,47",
      "9": "https://scholar.google.com/scholar?start=80&q=python&hl=en&as_sdt=0,47",
      "10": "https://scholar.google.com/scholar?start=90&q=python&hl=en&as_sdt=0,47"
    },
    "current": 1,
    "next": "https://scholar.google.com/scholar?start=10&q=python&hl=en&as_sdt=0,47"
  },
  "searchdata_pagination": {
    "current": 1,
    "next": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=10",
    "other_pages": {
      "2": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=10",
      "3": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=20",
      "4": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=30",
      "5": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=40",
      "6": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=50",
      "7": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=60",
      "8": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=70",
      "9": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=80",
      "10": "https://serpapi.webscrapingapi.com/v1?q=python&hl=en&start=90"
    }
  }
}
```

</details>
