# Google Scholar API

{% hint style="success" %}
To enable this engine, set the **`engine=google_scholar`** parameter.
{% endhint %}

Google Scholar is a search engine for education material. Our SERP API offers fast access to Google Scholar search results by simply tuning the request to use the `google_scholar` engine. Moreover, the Google Scholar API can by highly customised using the [engine's parameters](#google-scholar-specific-parameters).

<figure><img src="https://1192456954-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9wbsYOleiAqS785aMtPp%2Fuploads%2FgjsKium1XMD3izXbCwf8%2Fgoogle-scholar-api.png?alt=media&#x26;token=f63bbe70-b02e-4785-95bb-a67ad73f19f2" alt=""><figcaption><p>Scrape Google Scholar Results</p></figcaption></figure>

### Google Scholar API Integration Examples

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

```
https://serpapi.webscrapingapi.com/v1?api_key=<YOUR_API_KEY>&engine=google_scholar&q=python
```

### Ready to Use Google Scholar Scraping Scripts

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

```bash
curl --request GET --url "https://serpapi.webscrapingapi.com/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": "serpapi.webscrapingapi.com",
  "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("serpapi.webscrapingapi.com")

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://serpapi.webscrapingapi.com/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://serpapi.webscrapingapi.com/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://serpapi.webscrapingapi.com/v1?api_key=YOUR_API_KEY%7D&engine=google_scholar&q=python")
  .asString();
```

{% endtab %}

{% tab title=".NET" %}

```csharp
var client = new RestClient("https://serpapi.webscrapingapi.com/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://serpapi.webscrapingapi.com/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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.webscrapingapi.com/google-search-api/google-search-engines/google-scholar-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
