# Search Google Scholar publications

Returns Google Scholar publications for a query, with citation counts and PDF links. Use it to find research on a topic.

Tool `google.serp.scholar` on Google. Contract version 1, released 2026-10-27.

## Example call

Over REST, send the input in the body. Over MCP, pass the same input to `call_tool`.

cURL:

```bash
curl https://api.voxoria.ai/v1/tools/google.serp.scholar/calls \
  -H "Authorization: Bearer $VOXORIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"query":"graph neural networks","language":"en"}}'
```

Python:

```python
import os

import httpx

response = httpx.post(
    "https://api.voxoria.ai/v1/tools/google.serp.scholar/calls",
    headers={"Authorization": f"Bearer {os.environ['VOXORIA_API_KEY']}"},
    json={
        "input": {"query": "graph neural networks", "language": "en"},
    },
    timeout=60,
)
print(response.json())
```

TypeScript:

```ts
const response = await fetch("https://api.voxoria.ai/v1/tools/google.serp.scholar/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VOXORIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "input": {"query": "graph neural networks", "language": "en"},
  }),
});
console.log(await response.json());
```

MCP (`tools/call` params):

```json
{
  "name": "call_tool",
  "arguments": {
    "tool": "google.serp.scholar",
    "input": {
      "query": "graph neural networks",
      "language": "en"
    }
  }
}
```

Both return [the full response](/docs/call-response.md): the call's ID, status and cost, with this tool's result in `output`.

## Input

| Input | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `query` | string | Yes |  | The search query. |
| `country` | string | No |  | Two-letter ISO 3166-1 country code. Case-insensitive. One of the 249 values of the `countries` list: ISO 3166-1 alpha-2 country codes, lowercase. |
| `language` | string | No | `en` | Two-letter ISO 639-1 language code. Case-insensitive. One of the 184 values of the `languages` list: ISO 639-1 two-letter language codes, lowercase. |
| `page` | integer | No | `1` | Page of results. At least 1. |

## Output

A successful call returns these blocks in its `output`. A field not marked required can be `null`.

### results

A list of rows. Always present, possibly empty.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `position` | integer | No | Rank among scholar results, starting at 1. |
| `title` | string | Yes |  |
| `url` | string | No | Address of the publication's page. Absent for a work Google only knows from citations. |
| `snippet` | string | No |  |
| `publication_summary` | string | No | Authors, venue, year and publisher on one line as Google shows them, abbreviated. Not parsed. |
| `year` | integer | No | Year of publication. |
| `cited_by_count` | integer | No | Number of works Google Scholar counts as citing this one. |
| `version_count` | integer | No | Number of versions of the work Google Scholar groups together. |
| `pdf_url` | string | No | Address of a freely readable copy, usually a PDF. |
| `result_id` | string | No | Google Scholar's identifier of the result. |
| `cluster_id` | string | No | Google Scholar's identifier of the group of versions of the work. |

## Example output

The `output` of a real call, each list cut to 3 items.

```json
{
  "results": [
    {
      "position": null,
      "title": "Graph neural networks: Architectures, applications, and future directions",
      "url": "https://ieeexplore.ieee.org/abstract/document/10960451/",
      "snippet": "… learning to interpret and extract knowledge from graph-based data. They have opened up … graph analysis. This paper provides a detailed analysis of Graph Neural Network (GNN) …",
      "publication_summary": "V Ponzi, C Napoli - IEEE Access, 2025 - ieeexplore.ieee.org",
      "year": 2025,
      "cited_by_count": 79,
      "version_count": 4,
      "pdf_url": "https://ieeexplore.ieee.org/iel8/6287639/6514899/10960451.pdf",
      "result_id": "kwgmd88l2IoJ",
      "cluster_id": "10004788145190996115"
    },
    {
      "position": null,
      "title": "A comprehensive survey of graph neural networks for knowledge graphs",
      "url": "https://ieeexplore.ieee.org/abstract/document/9831453/",
      "snippet": "… graphs problems or graph neural networks technology. This study performs a systematic and broad survey of knowledge graph learning in accordance with graph neural network …",
      "publication_summary": "Z Ye, YJ Kumar, GO Sing, F Song, J Wang - Ieee Access, 2022 - ieeexplore.ieee.org",
      "year": 2022,
      "cited_by_count": 271,
      "version_count": 5,
      "pdf_url": "https://ieeexplore.ieee.org/iel7/6287639/9668973/09831453.pdf",
      "result_id": "H7oFvow_6K8J",
      "cluster_id": "12675451024950278687"
    },
    {
      "position": null,
      "title": "A practical tutorial on graph neural networks",
      "url": "https://dl.acm.org/doi/abs/10.1145/3503043",
      "snippet": "… Graph neural networks (GNNs) have recently grown in popularity in the field of artificial … are conceptually similar in operation to traditional neural networks (and neural network variants), …",
      "publication_summary": "IR Ward, J Joyner, C Lickfold, Y Guo… - ACM computing surveys …, 2022 - dl.acm.org",
      "year": 2022,
      "cited_by_count": 64,
      "version_count": 7,
      "pdf_url": "https://dl.acm.org/doi/pdf/10.1145/3503043",
      "result_id": "qmnz6pYH-fsJ",
      "cluster_id": "18156551717489174954"
    }
  ]
}
```
