# Google Scholar Author Citation API

### Parameters <a href="#parameters" id="parameters"></a>

| Paramter                                                            | Description                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>citation\_id<br><br><mark style="color:red;">required</mark></p> | <p>The parameter is essential for fetching the citation of individual articles. It's mandatory when choosing "<code>view\_op=view\_citation</code>" and allows access to IDs within our structured JSON response.<br><br>Type: <em><strong>String</strong></em></p>                                                                                                                   |
| <p>view\_op<br><br><mark style="color:red;">required</mark></p>     | <p>Author ID of the person you want to get data </p><p>The parameter allows users to access specific sections of a page, offering two choices:</p><ul><li>Use "<code>view\_citation</code>" to display citations. It requires the citation ID.</li><li>Opt for "<code>list\_colleagues</code>" to view all co-authors.</li></ul><p><br><br>Type: <em><strong>String</strong></em></p> |

### API Example

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

```json
cURL "https://api.scrapingdog.com/google_scholar/author?api_key=APIKEY&author_id=LSsXyncAAAAJ&view_op=view_citation&citation_id=LSsXyncAAAAJ:2osOgNQ5qMEC"
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "APIKEY"
url = "https://api.scrapingdog.com/google_scholar/author"

params = {
    "api_key": api_key,
    "author_id": "LSsXyncAAAAJ",
    "citation_id": "LSsXyncAAAAJ:2osOgNQ5qMEC",
    "view_op": "view_citation"
}

response = requests.get(url, params=params)

if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print(f"Request failed with status code: {response.status_code}")

```

{% endtab %}

{% tab title="Node JS" %}

```javascript
const axios = require('axios');

const api_key = 'APIKEY';
const url = 'https://api.scrapingdog.com/google_scholar/author';

const params = {
  api_key: api_key,
  author_id: 'LSsXyncAAAAJ',
  citation_id: "LSsXyncAAAAJ:2osOgNQ5qMEC",
  view_op: "view_citation"
};

axios
  .get(url, { params: params })
  .then(function (response) {
    if (response.status === 200) {
      const data = response.data;
      console.log(data)
    } else {
      console.log('Request failed with status code: ' + response.status);
    }
  })
  .catch(function (error) {
    console.error('Error making the request: ' + error.message);
  });

```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

// Set the API key and request parameters
$api_key = 'APIKEY';
$author_id = 'LSsXyncAAAAJ';
$citation_id: "LSsXyncAAAAJ:2osOgNQ5qMEC",
$view_op: "view_citation"

// Set the API endpoint
$url = 'https://api.scrapingdog.com/google_scholar/author/?api_key=' . $api_key . '&author_id=' . $author_id . '&citation_id' . $citation_id . '&view_op' . $view_op;

// Initialize cURL session
$ch = curl_init($url);

// Set cURL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Execute the cURL request
$response = curl_exec($ch);

// Check if the request was successful
if ($response === false) {
    echo 'cURL error: ' . curl_error($ch);
} else {
    // Process the response data as needed
    echo $response;
}

// Close the cURL session
curl_close($ch);

```

{% endtab %}

{% tab title="Ruby" %}

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

# Set the API key and request parameters
api_key = 'APIKEY'
author_id = 'LSsXyncAAAAJ'
citation_id = "LSsXyncAAAAJ:2osOgNQ5qMEC",
view_op = "view_citation"

# Construct the API endpoint URL
url = URI.parse("https://api.scrapingdog.com/google_scholar/author/?api_key=#{api_key}&author_id=#{author_id}&citation_id=#{citation_id}&view_op=#{view_op}")

# Create an HTTP GET request
request = Net::HTTP::Get.new(url)

# Create an HTTP client
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true # Enable SSL (https)

# Send the request and get the response
response = http.request(request)

# Check if the request was successful
if response.is_a?(Net::HTTPSuccess)
  puts response.body # Process the response data as needed
else
  puts "HTTP request failed with code: #{response.code}, message: #{response.message}"
end
```

{% endtab %}

{% tab title="Java" %}

```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        try {
            // Set the API key and request parameters
            String apiKey = "APIKEY";
            String author_id = "LSsXyncAAAAJ";
            String citation_id = "LSsXyncAAAAJ:2osOgNQ5qMEC";
            String view_op = "view_citation"

            // Construct the API endpoint URL
            String apiUrl = "https://api.scrapingdog.com/google_scholar/author/?api_key=" + apiKey
                    + "&author_id =" + author_id 
                    + "&citation_id =" + citation_id 
                    + "&view_op =" + view_op 

            // Create a URL object from the API URL string
            URL url = new URL(apiUrl);

            // Open a connection to the URL
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            // Set the request method to GET
            connection.setRequestMethod("GET");

            // Get the response code
            int responseCode = connection.getResponseCode();

            if (responseCode == 200) {
                // Read the response from the connection
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String inputLine;
                StringBuilder response = new StringBuilder();

                while ((inputLine = reader.readLine()) != null) {
                    response.append(inputLine);
                }
                reader.close();

                // Process the response data as needed
                System.out.println(response.toString());
            } else {
                System.out.println("HTTP request failed with response code: " + responseCode);
            }

            // Close the connection
            connection.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
```

{% endtab %}
{% endtabs %}

### Response

<figure><img src="/files/qoTaiwRM0Ig2RHGOK4fK" alt=""><figcaption></figcaption></figure>

```json
{
  "citations": {
    "title": "Model-based analysis of ChIP-Seq (MACS)",
    "link": "https://link.springer.com/article/10.1186/GB-2008-9-9-R137",
    "resources": [
      {
        "title": "from springer.com",
        "file_format": "HTML",
        "link": "https://link.springer.com/article/10.1186/GB-2008-9-9-R137"
      },
      {
        "file_format": "",
        "link": "https://link.springer.com/content/pdf/10.1186/gb-2008-9-9-r137.pdf"
      }
    ],
    "authors": "Yong Zhang, Tao Liu, Clifford A Meyer, Jérôme Eeckhoute, David S Johnson, Bradley E Bernstein, Chad Nusbaum, Richard M Myers, Myles Brown, Wei Li, X Shirley Liu",
    "publication_date": "2008/11",
    "journal": "Genome biology",
    "volume": "9",
    "pages": "1-9",
    "publisher": "BioMed Central",
    "description": "               We present Model-based Analysis of ChIP-Seq data, MACS, which analyzes data generated by short read sequencers such as Solexa's Genome Analyzer. MACS empirically models the shift size of ChIP-Seq tags, and uses it to improve the spatial resolution of predicted binding sites. MACS also uses a dynamic Poisson distribution to effectively capture local biases in the genome, allowing for more robust predictions. MACS compares favorably to existing ChIP-Seq peak-finding algorithms, and is freely available.",
    "total_citations": {
      "cited_by": {
        "total": "16193",
        "link": "https://scholar.google.com/scholar?oi=bibs&hl=en&cites=14252090027271643524&as_sdt=5",
        "scrapingdog_link": "https://api.scrapingdog.com/google_scholar?api_key=64ba3a568de9be3484544209&cites=14252090027271643524&hl=en",
        "cites_id": "14252090027271643524"
      },
      "table": [
        {
          "year": "2010",
          "citations": "129"
        },
        {
          "year": "2011",
          "citations": "254"
        },
        {
          "year": "2012",
          "citations": "372"
        },
        {
          "year": "2013",
          "citations": "476"
        },
        {
          "year": "2014",
          "citations": "676"
        },
        {
          "year": "2015",
          "citations": "697"
        },
        {
          "year": "2016",
          "citations": "815"
        },
        {
          "year": "2017",
          "citations": "982"
        },
        {
          "year": "2018",
          "citations": "1147"
        },
        {
          "year": "2019",
          "citations": "1420"
        },
        {
          "year": "2020",
          "citations": "1546"
        },
        {
          "year": "2021",
          "citations": "1968"
        },
        {
          "year": "2022",
          "citations": "1943"
        },
        {
          "year": "2023",
          "citations": "2019"
        },
        {
          "year": "2024",
          "citations": "1647"
        }
      ]
    },
    "scholar_articles": [
      {
        "title": "Model-based analysis of ChIP-Seq (MACS)",
        "link": "https://www.google.com/scholar?oi=bibs&cluster=14252090027271643524&btnI=1&hl=en",
        "authors": "Y Zhang, T Liu, CA Meyer, J Eeckhoute, DS Johnson… - Genome biology, 2008",
        "cited_by": {
          "total": "16193",
          "link": "https://scholar.google.com/scholar?oi=bibs&hl=en&cites=14252090027271643524&as_sdt=5",
          "scrapingdog_link": "https://api.scrapingdog.com/google_scholar?api_key=64ba3a568de9be3484544209&cites=14252090027271643524&hl=en",
          "cites_id": "14252090027271643524"
        },
        "versions": {
          "total": "All 31 versions",
          "link": "https://scholar.google.com/scholar?oi=bibs&hl=en&cluster=14252090027271643524",
          "scrapingdog_link": "https://api.scrapingdog.com/google_scholar?api_key=64ba3a568de9be3484544209&cluster=14252090027271643524&hl=en",
          "cluster_id": "14252090027271643524"
        }
      }
    ]
  }
}
```


---

# 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.scrapingdog.com/google-scholar-api-documentation/google-scholar-author-api/google-scholar-author-citation-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.
