API Documentation

Google Scholar API

Academic article searches, citing articles, versions, pagination and billing.

Test API

Search academic articles with GoAnyAPI, refine language, publication years and sorting, and explore citing articles and article versions.

Test the Google Scholar API →

Endpoint and authentication

GET https://api.goanyapi.com/api/v1/google-scholar
Authorization: Bearer YOUR_API_KEY

With the current configuration, each successful request costs 1 credit.

Nonempty successful pages use the current configured credit rate. Each page is billed separately. Empty results, invalid requests and failures are not charged.

Request parameters

ParameterTypeRequiredDescription and constraints
querystringNoSearch text, at most 8192 UTF-8 bytes. Required unless cites or cluster is supplied; optional with cites, forbidden with cluster.
Maximum characters: 8192
machine learning
languagestringNoInterface language code, for example en or zh-CN; omit to use the search default.
Maximum characters: 20
^[A-Za-z]{2,3}(?:-[A-Za-z]{2,4})?$
en
pageintegerNoOne-based page number (GoAnyAPI range 1–100), default 1 when start is absent; mutually exclusive with start.
Default: 1
1 – 100
1
citesstringNoComma-separated decimal Scholar article IDs from cited_by_url. Find citing articles; query optionally narrows them. Mutually exclusive with cluster.
Maximum characters: 1024
^[0-9]+(?:,[0-9]+)*$
1234567890123456789
clusterstringNoDecimal Scholar cluster ID from versions_url. Find article versions; mutually exclusive with query and cites.
Maximum characters: 100
^[0-9]+$
1234567890123456789
as_ylointegerNoInclusive publication year lower bound; must not exceed as_yhi.
1 – 9999
as_yhiintegerNoInclusive publication year upper bound; must not be below as_ylo.
1 – 9999
scisbdintegerNoSort: 0 relevance, 1 recent abstracts, 2 recent articles; default 0.
0 / 1 / 2
Default: 0
0 – 2
filterintegerNoSimilar/omitted result filtering: 1 enabled, 0 disabled; omit to keep the search default.
0 / 1
0 – 1
as_visintegerNoCitation-only records: 1 exclude, 0 include; omit to keep the search default.
0 / 1
0 – 1
as_rrintegerNoReview articles: 1 only reviews, 0 all article types; omit to keep the search default.
0 / 1
0 – 1
startintegerNoZero-based result offset, mutually exclusive with page.
0 – 990
numintegerNoRequested page size, default 10; actual result count may be smaller.
Default: 10
1 – 20
lrstringNoResult language restriction: lang_<code>, alternatives joined by |, e.g. lang_fr|lang_de.
Maximum characters: 256
^lang_[A-Za-z-]+(?:\|lang_[A-Za-z-]+)*$
lang_fr|lang_de
as_sdtstringNoNative article/patent filter or comma-separated court codes, for example 4,33,192.
Maximum characters: 256
^[0-9]+(?:,[0-9]+)*$
0
devicestringNoDevice context: desktop, mobile, tablet; omit to keep the search default.
desktop / mobile / tablet
Maximum characters: 8192
safestringNoSafe search: active enables filtering; off requests unfiltered results.
active / off
Maximum characters: 8192

This endpoint returns structured JSON only. Unknown, repeated and empty parameters are rejected; omit unused parameters. Public limits are page 1–100, offset 0–990 and page size 1–20.

Query modes

  • Article search: supply query, for example machine learning.
  • Citing articles: supply cites, optionally with query to narrow results. Extract the decimal cites parameter from a returned cited_by_url; separate multiple IDs with commas.
  • Article versions: supply cluster, without query or cites. Extract the decimal cluster parameter from a returned versions_url.

Do not substitute results[].id for a cites or cluster ID. Author profiles and citation-format exports are outside this endpoint.

All scisbd values are 0 (relevance), 1 (recent abstracts), and 2 (recent articles). Year bounds are inclusive; as_ylo must not exceed as_yhi. Either bound may be supplied alone.

Request examples

GET /api/v1/google-scholar?query=machine%20learning&language=en&page=1
Authorization: Bearer YOUR_API_KEY

Citation and version request formats (IDs below illustrate syntax only; use IDs from actual response links):

GET /api/v1/google-scholar?cites=1234567890123456789&query=review
GET /api/v1/google-scholar?cluster=1234567890123456789

Pagination

Use one-based page or zero-based start, never both. Omission starts from the first page; num defaults to 10. Keep other search controls unchanged. Each call retrieves one page without automatic traversal. Use has_next_page when present; do not infer total counts or invent pagination state.

Response fields

FieldMeaning
data.endpointgoogle-scholar
data.querySubmitted search parameters
data.costCreditsActual credits charged
data.remainingCreditsRemaining balance
data.result.formatjson
data.result.content.results[]Academic article records
data.result.content.results[].title / url / snippetTitle, URL and snippet
data.result.content.results[].publication_infoPublication information
data.result.content.results[].cited_by / cited_by_urlCitation information and citing-article link
data.result.content.results[].versions / versions_urlVersion information and versions link
data.result.content.results[].resourceArticle resource information
data.result.content.has_next_pagePagination state when returned

Business fields may be null, empty or absent. Titles, citation counts and authors are not invented. Missing display fields do not discard records or fail the search. Empty results return successfully without a charge.

Errors

Invalid parameters return 400 invalid_params, missing authentication 401, insufficient balance 402 insufficient_credits, rate limits 429, search failures or invalid responses 502 request_failed, and unavailable configuration 503 service_not_configured. Errors are not charged. Check parameters and authentication; retry temporary search errors later.