Google Scholar API
The Google Scholar API for developers
There is no official Google Scholar API — Searlo's is a third-party endpoint like every other option on the market, returning papers with authors, year, citation count, and free PDF links as structured JSON, plus clusterId and citesId to walk the citation graph. 1 credit per query, the same rate as web search.
{ "searchTime": 0.17, "totalResults": 85000, "page": 1, "organic": [ { "position": 1, "title": "31.10. Connection Pools and Data Sources", "link": "www.postgresql.org/docs/…", "domain": "postgresql.org", "snippet": "For an environment without an application se…" }, { "position": 2, "domain": "medium.com", … }, { "position": 3, "domain": "stackoverflow.blog", … } ], "credits": 1}Is there an official Google Scholar API, and what does a third-party one cost?
No. Google has never published an official Scholar API, so every result for that phrase — including this one — is a third party in front of the same public pages. Searlo's endpoint returns papers with authors, year, citation count and free PDF links at $0.30 per 1,000 queries, versus SerpAPI's $15.00 per 1,000 on its Developer plan.
That is also why there is no free official alternative to fall back on for Scholar the way there is for patents (USPTO's PatentsView) — every option, at every price, is an unsanctioned scraper of Google's own public site. Pick on reliability and price, not on which one claims to be official, because none of them are.
- Official Google Scholar API
- Does not exist — Google has never published one— casrai.org
- Cost per query
- $0.0003 (=$0.30 per 1,000)— our pricing
- Free to start
- 3,000 credits, no card— our pricing
- SerpAPI Google Scholar (Developer tier)
- $15.00 per 1,000 ($75/5,000/mo)— serpapi.com/pricing
- Citation-graph fields
- clusterId (every version of a work) and citesId (what cites it) on every result
Third-party figures on this page last verified against the sources linked above. Prices change; if you find one of these stale, tell us and we will correct it.
Search "google scholar api" and the results agree before they even get to a vendor name: ScrapingBee's roundup of alternatives, Octoparse's post titled "(No Official API)", and CASRAI's own dictionary entry all open with the same fact. Google has never shipped a Scholar API — no key to request, no rate-limited free tier from Google itself, nothing. Every callable option, this one included, is a third party sitting in front of the same public Scholar pages.
Searlo's /search/scholar endpoint is one of those third parties, priced and shaped like the rest of the product instead of as a specialty add-on: 1 credit per query — the same rate as plain web search — for structured JSON instead of a page you'd otherwise have to parse yourself.
Every result carries two ids most Scholar tools don't expose at all. clusterId groups every version of one work — preprint, published PDF, conference copy — into a single id; citesId is the key to the papers that cite it. Pass either back as cluster or cites and the next call walks the citation graph without touching a browser.
That makes the endpoint useful for more than a one-off paper lookup: literature-review tooling, citation-count monitoring for a lab's own publication list, and research trend-tracking by publication year all run on the same call.
Features
Structured paper results
Title, authors, publication venue, year and citation count parsed into JSON — nothing to scrape out of HTML.
Walk the citation graph
Every result carries clusterId and citesId; pass either back as cluster or cites to fetch all versions of a work, or everything that cites it.
Free PDF links
Where Scholar shows an open-access copy, the link comes back in the response — surface the free version instead of a paywall.
Year range and sort order
yearFrom / yearTo narrow by publication year; sortByDate switches from relevance to newest-first.
Include or exclude patents
includePatents toggles patent literature in or out of the corpus, matching Scholar's own toggle.
$0.30 per 1,000 queries
The same headline rate as every other search type — no per-vertical markup the way SerpAPI prices Scholar as a separate engine.
Get started in one request
One GET request returns the organic array of papers. Each entry's clusterId and citesId are what a second call uses to walk the citation graph.
curl -G "https://api.searlo.tech/api/v1/search/scholar" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "q=transformer attention mechanism" \
--data-urlencode "limit=10" \
--data-urlencode "yearFrom=2020" \
--data-urlencode "sortByDate=false"import requests
resp = requests.get(
"https://api.searlo.tech/api/v1/search/scholar",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"q": "transformer attention mechanism",
"limit": 10,
"yearFrom": 2020,
},
)
data = resp.json()
for paper in data["organic"]:
print(paper.get("title"), paper.get("year"), paper.get("citedBy"))
# Walk the citation graph: everything that cites this paper.
cites_id = paper.get("citesId")
if cites_id:
citing = requests.get(
"https://api.searlo.tech/api/v1/search/scholar",
headers={"x-api-key": "YOUR_API_KEY"},
params={"cites": cites_id, "limit": 10},
).json()
print(f" cited by {len(citing.get('organic', []))} results in this page")const params = new URLSearchParams({
q: "transformer attention mechanism",
limit: "10",
yearFrom: "2020",
});
const resp = await fetch(
`https://api.searlo.tech/api/v1/search/scholar?${params}`,
{ headers: { "x-api-key": "YOUR_API_KEY" } },
);
const data = await resp.json();
for (const paper of data.organic) {
console.log(paper.title, paper.year, paper.citedBy);
// Every version of this same work (preprint, journal copy, conference PDF).
if (paper.clusterId) {
const versions = await fetch(
`https://api.searlo.tech/api/v1/search/scholar?cluster=${paper.clusterId}`,
{ headers: { "x-api-key": "YOUR_API_KEY" } },
).then((r) => r.json());
console.log(` ${versions.organic?.length ?? 0} version(s) of this work`);
}
}Searlo vs SerpAPI
SerpAPI sells google_scholar as its own priced engine, the same as Searlo does. The difference is the rate.
| Capability | Searlo | SerpAPI |
|---|---|---|
| Price per 1,000 queries | $0.30 | $15.00 (Developer tier) |
| 100,000 queries | $43.97 one-time ($0.44/1K) | $725/mo Searcher ($7.25/1K) |
| Free credits to start | 3,000 | 250/month |
| clusterId / citesId citation graph | Yes, on every result | Not verified |
| Native MCP tool for AI agents | Yes (scholar_search) | Not verified |
Why there is no official Google Scholar API
Google has reasons to keep Scholar API-free that don't apply to most of its other products. Scholar indexes content it doesn't own — university repositories, journal publishers, preprint servers — each with its own reuse terms, so Google has no clean right to hand that corpus over through a first-party API the way it can for, say, Maps. On top of that, Scholar is rate-limited hard against automated access at the page level, which is a blunter, cheaper control than building and maintaining a public API surface.
The practical upshot: "which Scholar API is official" is not a question with a right answer to look for. Every vendor in this space, including Searlo, is an unsanctioned reader of the same public pages, and the honest way to choose between them is price and reliability, not a claim to legitimacy none of them can back.
Walking the citation graph with clusterId and citesId
A single search rarely answers "how influential is this paper" or "what's the newest work that cites it" — that takes a second hop, and Scholar's citation graph is exactly what citedBy, citedByLink, clusterId, and citesId expose together. citedBy is the citation count itself, and citedByLink is a direct URL to Scholar's own list of citing papers — the fast path when a count and a link are all you need. clusterId groups every version of one work under one id, so a preprint, its published copy, and a conference version resolve to the same cluster instead of showing up as three separate hits. citesId is the id you pass back as cites to pull those same citing papers through Searlo's own API instead of following the link.
All four ride along on every normal search result, so there's no separate lookup to fetch them — search once, then walk the graph from whichever result you care about. q is optional the moment you're using cluster or cites: the endpoint accepts any one of the three.
- citedBy / citedByLink — the citation count, and a direct link to Scholar's own citing-papers view
- cluster — every version of one work: preprint, journal PDF, conference copy
- cites — every paper Scholar has indexed as citing a given work
- Omit q entirely when passing cluster or cites — the endpoint accepts either alone
- Combine cites with yearFrom to see how citations to a paper have grown since a given year
What Scholar data does and doesn't give you
The response is bibliographic, not full-text: title, authors, venue, year, a citation count, and a link to a free PDF where Scholar surfaces one — not the paper's body. includePatents and includeCitations toggle two corpus-level choices Scholar itself exposes: whether patent literature counts as a result, and whether citation-only records (works Scholar knows exist but hasn't fully indexed) are included.
Rate limiting is the other honest caveat, and it isn't specific to Searlo: Google Scholar meters aggressively per exit IP, which is true of every Scholar-scraping API on the market. The practical implication is the same one that applies to scraping Scholar directly — avoid hammering the same query in a tight loop from a single source — rather than anything particular to this endpoint.
What people build on the Scholar API
- Literature-review tools that pull citation counts and free-PDF links automatically
- Citation-graph explorers built on clusterId / citesId
- Publication-trend research using yearFrom / yearTo and sortByDate
- Self-citation and lab-output monitoring for a research group's own papers
- Prior-art checks that start from academic literature rather than patent filings
FAQ
Frequently asked questions
Is there an official Google Scholar API?
No. Google has never published one. Every Scholar API on the market — SerpAPI, SearchAPI, ScrapingDog, Searlo — is a third party reading the same public Scholar pages; none of them, including this one, is officially sanctioned.
What does the Scholar endpoint cost?
1 credit per query — the same rate as web search — which works out to $0.30 per 1,000 queries. You start with 3,000 free credits, no card required.
What are clusterId and citesId?
clusterId identifies every version of one paper (preprint, published copy, conference PDF) as a single work. citesId is the key to the papers citing it. Pass either back as cluster or cites to walk the citation graph in a follow-up call.
Can I filter by publication year?
Yes. yearFrom and yearTo bound the range, and sortByDate switches the result order from relevance to newest-first.
Does it return the full text of a paper?
No. The response is bibliographic — title, authors, venue, year, citation count, and a link to a free PDF where one exists — not the paper's body text.
What does includePatents do?
It toggles whether patent literature counts as part of the search corpus, mirroring the same option Google Scholar's own interface exposes.
Is there rate limiting?
Google Scholar meters aggressively per exit IP, and that applies to every Scholar API, not just Searlo's. Avoid firing the same query repeatedly in a tight loop from one source.
How is this different from the Patents API?
Scholar returns academic papers; Patents returns filed patents with assignee, inventor, and filing/grant dates. Some Scholar results are patents when includePatents is set, but the dedicated /search/patents endpoint is the one built for patent-specific filters like assignee and status.
Is there an MCP tool for Scholar search?
Yes — scholar_search is a native MCP tool, so Claude, Cursor and other MCP clients can call it directly without a REST wrapper.
Is there a free alternative to a paid Scholar API?
Not really, and that's a genuine difference from patent data. Google Patents has USPTO's free PatentsView API as a real (if US-only) alternative; Scholar has no equivalent free, official source at all.