# Google Scholar | Research Papers, Citations & Author Profiles (`johnvc/google-scholar-api`) Actor

Scrape Google Scholar at scale. Search research papers, get citation formats (MLA, APA, Chicago, BibTeX), author profiles with h-index and i10-index, list an author's publications, view per-article citation history, & map co-author networks. Six modes in one for lit reviews, bibliometrics, & agents.

- **URL**: https://apify.com/johnvc/google-scholar-api.md
- **Developed by:** [John](https://apify.com/johnvc) (community)
- **Categories:** Integrations, Developer tools, Agents
- **Stats:** 5 total users, 4 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Scholar Scraper

Scrape Google Scholar at scale. One actor, six modes - search research papers, pull citation formats, fetch author profiles with h-index and i10-index, paginate an author's full publication list, view per-article citation history, and map an author's full co-author network. Built for literature reviews, bibliometrics, citation tracking, and academic AI agents.

### What this actor returns

- Research paper search results: title, link, snippet, authors, publication info, cited-by counts, and version links.
- Citation strings for any paper in MLA, APA, Chicago, Harvard, and Vancouver formats, plus BibTeX / EndNote / RefMan / RefWorks export links.
- Full author profiles with name, affiliations, email domain, interests, photo, and the standard h-index / i10-index / total-citations table (overall and recent window).
- Year-by-year citation history graphs for both authors and individual papers.
- Author publication list, paginated up to 100 results per page.
- Per-article bibliographic detail including journal, volume, issue, pages, publisher, and abstract.
- Full co-author list with profile URLs, affiliations, email domains, and photos.

### The six modes

Choose with the `mode` input parameter.

| mode value          | What it does                                              | Required fields                        |
|---------------------|-----------------------------------------------------------|----------------------------------------|
| `search`            | Search Google Scholar for papers                          | `q` (or `cites`, or `cluster`)         |
| `cite`              | Get citation formats and BibTeX export for one paper      | `result_id`                            |
| `author_profile`    | Fetch an author's profile + citation metrics + graph      | `author_id`                            |
| `author_articles`   | Paginate the author's full publication list               | `author_id`                            |
| `author_citation`   | Per-article bibliographic record with citation history    | `author_id`, `citation_id`             |
| `author_co_authors` | Full list of an author's co-authors                       | `author_id`                            |

#### Example: search

```json
{
  "mode": "search",
  "q": "transformer neural network",
  "as_ylo": 2020,
  "as_yhi": 2024,
  "num": 10,
  "max_pages": 3
}
````

#### Example: cite

```json
{
  "mode": "cite",
  "result_id": "K7uerNYAAAAJ:u5HHmVD_uO8C"
}
```

#### Example: author\_profile

```json
{
  "mode": "author_profile",
  "author_id": "LSsXyncAAAAJ"
}
```

#### Example: author\_articles

```json
{
  "mode": "author_articles",
  "author_id": "LSsXyncAAAAJ",
  "sort": "pubdate",
  "num": 20,
  "max_pages": 2
}
```

#### Example: author\_citation

```json
{
  "mode": "author_citation",
  "author_id": "LSsXyncAAAAJ",
  "citation_id": "u5HHmVD_uO8C"
}
```

#### Example: author\_co\_authors

```json
{
  "mode": "author_co_authors",
  "author_id": "LSsXyncAAAAJ"
}
```

### Input parameters

| Parameter      | Type    | Modes                                                                                         | Description |
|----------------|---------|-----------------------------------------------------------------------------------------------|-------------|
| `mode`         | string  | all (required)                                                                                | Which operation to run. |
| `q`            | string  | search                                                                                        | Free-text search. Supports `author:` and `source:` operators. |
| `cites`        | string  | search                                                                                        | Find papers that cite this article ID. |
| `cluster`      | string  | search                                                                                        | Fetch all versions of a paper by cluster ID. |
| `result_id`    | string  | cite                                                                                          | Result ID of a paper to fetch citation formats for. |
| `author_id`    | string  | author\_profile, author\_articles, author\_citation, author\_co\_authors                           | Google Scholar author identifier. |
| `citation_id`  | string  | author\_citation                                                                               | Per-article ID within an author's profile. |
| `hl`           | enum    | all                                                                                           | UI language (en, es, fr, de, ...). |
| `lr`           | string  | search                                                                                        | Restrict to languages, e.g. `lang_en\|lang_fr`. |
| `as_ylo`       | integer | search                                                                                        | Earliest publication year. |
| `as_yhi`       | integer | search                                                                                        | Latest publication year. |
| `scisbd`       | enum    | search                                                                                        | 0 relevance, 1 abstracts-only by date, 2 all by date. |
| `as_sdt`       | enum    | search                                                                                        | 0 exclude patents, 7 include patents, 4 case law. |
| `safe`         | enum    | search                                                                                        | active / off. |
| `filter`       | enum    | search                                                                                        | 1 enable similar-results filter (default), 0 disable. |
| `as_vis`       | enum    | search                                                                                        | 0 include citations (default), 1 exclude citations. |
| `as_rr`        | enum    | search                                                                                        | 1 review articles only, 0 all (default). |
| `sort`         | enum    | author\_profile, author\_articles                                                               | title / pubdate. Omit for default citation-count sort. |
| `max_pages`    | integer | search (1-20 per page), author\_articles (1-100 per page)                                      | Max pages to fetch. 0 = no limit. Default 1. |
| `num`          | integer | search, author\_articles                                                                       | Per-page size. |

### Example output (mode=search)

```json
{
  "_mode": "search",
  "_query_index": 1,
  "search_parameters": { "mode": "search", "q": "transformer", "as_ylo": 2020 },
  "search_metadata_status": "Success",
  "search_timestamp": "2026-05-13T20:00:00Z",
  "position": 0,
  "result_id": "K7uerNYAAAAJ:u5HHmVD_uO8C",
  "paper_title": "Attention Is All You Need",
  "link": "https://arxiv.org/abs/1706.03762",
  "snippet": "...",
  "publication_info": {
    "summary": "A Vaswani, N Shazeer, N Parmar - Advances in NIPS, 2017",
    "authors": [
      { "name": "Ashish Vaswani", "author_id": "..." }
    ]
  },
  "inline_links": {
    "cited_by_total": 120000,
    "cited_by_link": "https://scholar.google.com/...",
    "versions_total": 95,
    "versions_cluster_id": "13755340029141322000"
  }
}
```

### Example output (mode=author\_profile)

```json
{
  "_mode": "author_profile",
  "_query_index": 1,
  "author": {
    "name": "Geoffrey Hinton",
    "affiliations": "Emeritus Prof. Comp Sci, University of Toronto",
    "email": "Verified email at cs.toronto.edu",
    "interests": [
      { "title": "Machine Learning", "link": "..." }
    ]
  },
  "cited_by_summary": {
    "citations_all": 800000,
    "citations_recent": 500000,
    "h_index_all": 150,
    "i10_index_all": 380,
    "recent_since_year": 2020
  },
  "cited_by_graph": [
    { "year": 2018, "citations": 35000 },
    { "year": 2019, "citations": 45000 }
  ]
}
```

### Pricing

Pay-per-event. No subscription.

- **Setup**: $0.02 per run (charged once).
- **Query executed**: $0.02 per upstream call. For paginated modes (`search`, `author_articles`), that is once per page. For single-shot modes (`cite`, `author_profile`, `author_citation`, `author_co_authors`), that is once per run.

Worked examples:

- `mode=search` with `max_pages=5` -> $0.02 setup + 5 \* $0.02 = **$0.12**.
- `mode=author_profile` -> $0.02 setup + 1 \* $0.02 = **$0.04**.
- `mode=author_articles` with `max_pages=3`, `num=100` (full author bibliography) -> $0.02 + 3 \* $0.02 = **$0.08**.

### Use cases

- Build a literature review: search for a topic, then loop through `organic_results[].result_id` to pull citation strings via `mode=cite`.
- Track citation growth: run `mode=author_profile` on a watchlist of researchers and store the `cited_by_graph` over time.
- Map a research community: take any `author_id` and run `mode=author_co_authors` to harvest the full collaborator network.
- Bibliometric analysis: page through an author's entire publication list with `mode=author_articles` and `max_pages=0` for unlimited.
- AI agents and RAG pipelines: feed structured Google Scholar JSON straight into a knowledge graph or vector store.

### How to get started

1. Open the actor in the Apify console and click **Try for free**.
2. Pick a `mode` and fill in the required fields shown above.
3. Click **Run**.
4. Results land in the default dataset. Download as JSON, CSV, or Excel from the Storage tab, or use the Apify API.

You can also call this actor from your code via the Apify SDK (Python, JavaScript, or curl) or as a tool in any MCP-aware AI agent.

### FAQ

**Q: Why is my run charged for setup even when there are no results?**
The $0.02 setup fee covers the run's instance provisioning. If you only want results, set tight inputs (`max_pages=1`, narrow query) so the setup is the only charge.

**Q: How do I find a `result_id` or `author_id`?**
Run `mode=search` first. Each item in the output contains `result_id` (use it for `mode=cite` or as a `cites` / `cluster` value) and `publication_info.authors[].author_id` (use it for any author mode).

**Q: What languages are supported?**
The `hl` enum exposes the most common 29 languages. The upstream API supports more; if you need one that is not in the list, open an issue and we will add it.

**Q: Why doesn't pagination always reach `max_pages`?**
Google Scholar stops returning results when it runs out of matches. Pagination ends early when the upstream API returns fewer items than `num` or signals no next page.

**Q: My run failed with an authentication error.**
The actor needs an API key configured by the publisher. If you see "Missing SERPAI\_KEY", the deployment is misconfigured - please report it.

### Links

- Source code on GitHub: https://github.com/johnvc/ApifyGoogleScholar
- More scrapers from this publisher: https://apify.com/johnvc

Last Updated: 2026.05.17

# Actor input Schema

## `mode` (type: `string`):

Which Google Scholar operation to run. Each mode uses different required fields. Defaults to 'search'.

## `q` (type: `string`):

Free-text query for mode=search. Supports advanced operators like author:smith or source:nature. Required for mode=search unless 'cites' or 'cluster' is provided.

## `cites` (type: `string`):

For mode=search only. Article identifier used to look up papers that cite this article. Combine with 'q' to search within citing papers. Mutually exclusive with 'cluster'.

## `cluster` (type: `string`):

For mode=search only. Article cluster identifier used to fetch all versions of a paper. Mutually exclusive with 'q' and 'cites'.

## `result_id` (type: `string`):

For mode=cite only. The result\_id (cluster id) of the Google Scholar paper to fetch citation formats for. Obtain from an organic\_results entry of mode=search.

## `author_id` (type: `string`):

For mode=author\_profile, author\_articles, author\_citation, and author\_co\_authors. The Google Scholar author identifier (e.g., 'LSsXyncAAAAJ'). Obtain from a publication\_info.authors entry of mode=search or from a Google Scholar profile URL.

## `citation_id` (type: `string`):

For mode=author\_citation only. The citation\_id of the specific article in the author's profile (obtain from articles\[].citation\_id of mode=author\_articles).

## `hl` (type: `string`):

Language for the user interface and result display. Applies to all modes. Optional.

## `lr` (type: `string`):

For mode=search only. Restrict results to specific languages. Use 'lang\_xx' codes separated by '|', e.g. 'lang\_en' or 'lang\_en|lang\_fr'.

## `as_ylo` (type: `integer`):

For mode=search only. Earliest publication year to include (e.g., 2010).

## `as_yhi` (type: `integer`):

For mode=search only. Latest publication year to include (e.g., 2024).

## `scisbd` (type: `string`):

For mode=search only. Recency sort: 0 = relevance (default), 1 = abstracts only from the last year sorted by date, 2 = everything from the last year sorted by date.

## `as_sdt` (type: `string`):

For mode=search only. Controls what types of results to include. Common values: '0' exclude patents (default), '7' include patents, '4' case law (US courts).

## `safe` (type: `string`):

For mode=search only. Safe search filter. Use 'active' to enable or 'off' to disable.

## `filter` (type: `string`):

For mode=search only. 1 = enable the similar/omitted-results filter (default), 0 = disable it.

## `as_vis` (type: `string`):

For mode=search only. 0 = include citations in results (default), 1 = exclude citations.

## `as_rr` (type: `string`):

For mode=search only. 1 = restrict to review articles, 0 = all article types (default).

## `sort` (type: `string`):

For mode=author\_profile and author\_articles. 'title' sorts alphabetically, 'pubdate' sorts by publication date (newest first). Omit for the default citation-count sort.

## `max_pages` (type: `integer`):

For mode=search and author\_articles only. Maximum number of result pages to fetch. Use 0 for no limit. Defaults to 1.

## `num` (type: `integer`):

For mode=search (1-20) and mode=author\_articles (1-100). Page size for paginated modes. Defaults to 10 for search, 20 for author\_articles.

## Actor input object example

```json
{
  "mode": "search",
  "q": "machine learning",
  "hl": "en",
  "scisbd": "0",
  "as_sdt": "0",
  "filter": "1",
  "as_vis": "0",
  "as_rr": "0",
  "max_pages": 1
}
```

# Actor output Schema

## `results` (type: `string`):

All dataset items from this run. Inspect the \_mode field on each item to know which Google Scholar endpoint produced it.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "q": "machine learning"
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnvc/google-scholar-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "q": "machine learning" }

# Run the Actor and wait for it to finish
run = client.actor("johnvc/google-scholar-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "q": "machine learning"
}' |
apify call johnvc/google-scholar-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=johnvc/google-scholar-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Scholar | Research Papers, Citations & Author Profiles",
        "description": "Scrape Google Scholar at scale. Search research papers, get citation formats (MLA, APA, Chicago, BibTeX), author profiles with h-index and i10-index, list an author's publications, view per-article citation history, & map co-author networks. Six modes in one for lit reviews, bibliometrics, & agents.",
        "version": "0.0",
        "x-build-id": "auNg9Oc28a2Q14wIU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/johnvc~google-scholar-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-johnvc-google-scholar-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/johnvc~google-scholar-api/runs": {
            "post": {
                "operationId": "runs-sync-johnvc-google-scholar-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/johnvc~google-scholar-api/run-sync": {
            "post": {
                "operationId": "run-sync-johnvc-google-scholar-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "cite",
                            "author_profile",
                            "author_articles",
                            "author_citation",
                            "author_co_authors"
                        ],
                        "type": "string",
                        "description": "Which Google Scholar operation to run. Each mode uses different required fields. Defaults to 'search'.",
                        "default": "search"
                    },
                    "q": {
                        "title": "Search Query",
                        "minLength": 1,
                        "type": "string",
                        "description": "Free-text query for mode=search. Supports advanced operators like author:smith or source:nature. Required for mode=search unless 'cites' or 'cluster' is provided."
                    },
                    "cites": {
                        "title": "Cites (article ID)",
                        "type": "string",
                        "description": "For mode=search only. Article identifier used to look up papers that cite this article. Combine with 'q' to search within citing papers. Mutually exclusive with 'cluster'."
                    },
                    "cluster": {
                        "title": "Cluster (article ID)",
                        "type": "string",
                        "description": "For mode=search only. Article cluster identifier used to fetch all versions of a paper. Mutually exclusive with 'q' and 'cites'."
                    },
                    "result_id": {
                        "title": "Result ID",
                        "type": "string",
                        "description": "For mode=cite only. The result_id (cluster id) of the Google Scholar paper to fetch citation formats for. Obtain from an organic_results entry of mode=search."
                    },
                    "author_id": {
                        "title": "Author ID",
                        "type": "string",
                        "description": "For mode=author_profile, author_articles, author_citation, and author_co_authors. The Google Scholar author identifier (e.g., 'LSsXyncAAAAJ'). Obtain from a publication_info.authors entry of mode=search or from a Google Scholar profile URL."
                    },
                    "citation_id": {
                        "title": "Citation ID",
                        "type": "string",
                        "description": "For mode=author_citation only. The citation_id of the specific article in the author's profile (obtain from articles[].citation_id of mode=author_articles)."
                    },
                    "hl": {
                        "title": "UI Language",
                        "enum": [
                            "en",
                            "es",
                            "fr",
                            "de",
                            "it",
                            "pt",
                            "ja",
                            "ko",
                            "zh-CN",
                            "zh-TW",
                            "ru",
                            "ar",
                            "hi",
                            "tr",
                            "pl",
                            "nl",
                            "sv",
                            "fi",
                            "da",
                            "no",
                            "cs",
                            "el",
                            "he",
                            "id",
                            "ms",
                            "ro",
                            "th",
                            "uk",
                            "vi"
                        ],
                        "type": "string",
                        "description": "Language for the user interface and result display. Applies to all modes. Optional.",
                        "default": "en"
                    },
                    "lr": {
                        "title": "Language Restriction",
                        "type": "string",
                        "description": "For mode=search only. Restrict results to specific languages. Use 'lang_xx' codes separated by '|', e.g. 'lang_en' or 'lang_en|lang_fr'."
                    },
                    "as_ylo": {
                        "title": "Min Publication Year",
                        "minimum": 1900,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "For mode=search only. Earliest publication year to include (e.g., 2010)."
                    },
                    "as_yhi": {
                        "title": "Max Publication Year",
                        "minimum": 1900,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "For mode=search only. Latest publication year to include (e.g., 2024)."
                    },
                    "scisbd": {
                        "title": "Sort By Date",
                        "enum": [
                            "0",
                            "1",
                            "2"
                        ],
                        "type": "string",
                        "description": "For mode=search only. Recency sort: 0 = relevance (default), 1 = abstracts only from the last year sorted by date, 2 = everything from the last year sorted by date.",
                        "default": "0"
                    },
                    "as_sdt": {
                        "title": "Search Filter (as_sdt)",
                        "enum": [
                            "0",
                            "7",
                            "4"
                        ],
                        "type": "string",
                        "description": "For mode=search only. Controls what types of results to include. Common values: '0' exclude patents (default), '7' include patents, '4' case law (US courts).",
                        "default": "0"
                    },
                    "safe": {
                        "title": "Safe Search",
                        "enum": [
                            "active",
                            "off"
                        ],
                        "type": "string",
                        "description": "For mode=search only. Safe search filter. Use 'active' to enable or 'off' to disable."
                    },
                    "filter": {
                        "title": "Filter Similar/Omitted Results",
                        "enum": [
                            "0",
                            "1"
                        ],
                        "type": "string",
                        "description": "For mode=search only. 1 = enable the similar/omitted-results filter (default), 0 = disable it.",
                        "default": "1"
                    },
                    "as_vis": {
                        "title": "Include Citations",
                        "enum": [
                            "0",
                            "1"
                        ],
                        "type": "string",
                        "description": "For mode=search only. 0 = include citations in results (default), 1 = exclude citations.",
                        "default": "0"
                    },
                    "as_rr": {
                        "title": "Review Articles Only",
                        "enum": [
                            "0",
                            "1"
                        ],
                        "type": "string",
                        "description": "For mode=search only. 1 = restrict to review articles, 0 = all article types (default).",
                        "default": "0"
                    },
                    "sort": {
                        "title": "Sort Order (Author Modes)",
                        "enum": [
                            "title",
                            "pubdate"
                        ],
                        "type": "string",
                        "description": "For mode=author_profile and author_articles. 'title' sorts alphabetically, 'pubdate' sorts by publication date (newest first). Omit for the default citation-count sort."
                    },
                    "max_pages": {
                        "title": "Maximum Pages",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "For mode=search and author_articles only. Maximum number of result pages to fetch. Use 0 for no limit. Defaults to 1.",
                        "default": 1
                    },
                    "num": {
                        "title": "Results Per Page",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "For mode=search (1-20) and mode=author_articles (1-100). Page size for paginated modes. Defaults to 10 for search, 20 for author_articles."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
