Google Scholar Author Metrics API - Citations & h-index avatar

Google Scholar Author Metrics API - Citations & h-index

Pricing

from $10.00 / 1,000 author profiles

Go to Apify Store
Google Scholar Author Metrics API - Citations & h-index

Google Scholar Author Metrics API - Citations & h-index

Scrape any Google Scholar author profile into one clean row: total and recent citations, h-index, i10-index, the year-by-year citation histogram, the complete publication list and the co-authors. For research offices, hiring committees and bibliometrics — by profile ID or profile URL.

Pricing

from $10.00 / 1,000 author profiles

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Share

Google Scholar Author Metrics API — Citations, h-index, i10

Turn any Google Scholar author profile into clean, structured data. Give this Actor an author's profile ID (or profile URL) and it returns their citation record straight from Google Scholar: total citations, recent citations, h-index, i10-index, the year-by-year citation histogram, the complete publication list, and the co-authors shown on the profile. One tidy row per author, ready for a spreadsheet, a dashboard, or a database.

If you have ever copied these numbers by hand for a grant report, a hiring committee, a literature review, or a league table, this Actor does it for you in seconds and keeps doing it on a schedule. Start it from the Store, or call the same Actor through the Apify API from your own service, and pay only for the author profiles you get back.

What you get from a Google Scholar author profile

For every author you submit, one dataset record with:

  • Profile — name, affiliation, verified email domain, homepage link, research interests, and profile photo.
  • Headline metrics — citations (all-time and since the recent cut-off year Scholar shows), h-index (all-time and recent), and i10-index (all-time and recent).
  • Citation histogram — citations per year, exactly as the bar chart on the profile shows them, as a simple [{ "year": 1990, "count": 3492 }, ...] list you can plot directly.
  • Publications — every paper on the profile: title, link, authors, venue, year, and its cited-by count. Paginated automatically, so you get the whole list, not just the first page.
  • Co-authors — the co-authors listed on the profile, each with their name, affiliation, and their own profile link, so you can walk an entire research group.

Input

FieldTypeDescription
author_idsarray of stringsRequired. Google Scholar author IDs — the user= value in a profile URL (for example JicYPdAAAAAJ). Add as many as you like; you get one row per author.
profile_urlsarray of stringsOptional. Full scholar.google.com/citations?user=... URLs, used instead of or alongside author_ids. The ID is pulled out for you.
include_publicationsbooleanInclude the publication list. Default true. Turn off for a faster, metrics-only run.
max_publicationsintegerCap the publication list per author. 0 means all of them (paginated). Default 100.
include_coauthorsbooleanInclude the co-authors listed on the profile. Default true.
hlstringScholar UI language (en, de, fr, es, …). Metric parsing expects the English labels Scholar shows for hl=en — keep hl=en for complete metrics. Default en.
use_proxybooleanDefault true. Leave it on: it is what lets a batch of authors finish when Scholar is busy. false fetches directly and tries fewer times.
cursorstringOptional. next_cursor from an earlier run with the same author_ids, profile_urls and options, to continue a large batch.

A run needs at least one author ID: an empty author_ids list is rejected as invalid_input, both in the run form and over the API. profile_urls fills that list for you when you already have links.

Where do I find an author's ID?

Open the author's Google Scholar profile and look at the address bar. The ID is the value after user=:

https://scholar.google.com/citations?user=JicYPdAAAAAJ&hl=en
^^^^^^^^^^^^

You can paste the whole URL into profile_urls and skip the copying.

Output

One dataset row per author, always with the same fields (empty lists and null when Scholar does not show a value). Headline fields: author_id, name, affiliation, verified_email_domain, homepage_url, interests, thumbnail, since_year, citations_all, citations_since, h_index_all, h_index_since, i10_index_all, i10_index_since, citations_per_year, publication_count, publications, coauthors, profile_url. Every row also carries source, fetched_at, engine and url, so a snapshot you store later still knows where it came from and when it was read.

The run writes one dataset row per author, plus these key-value records:

  • summary (and OUTPUT) — itemCount, errorCount and billableCount, the run status flags, partial and warnings.
  • errors — only when something failed: {code, author_id, message} per author. A missing profile or a busy period is still a successful, possibly empty run.
  • next_cursor — only when authors remain after a budget stop. Send that value back as cursor with the same input to continue.
  • total_count and processed_count — how many unique authors were requested and how many this run tried.

Output example

A real row from a run with author_ids: ["JicYPdAAAAAJ"] on 6 October 2026, at the defaults (include_publications and include_coauthors on, max_publications: 100). Lists are shortened to their first two entries; the full row had 37 histogram years, 100 publications and 11 co-authors, and the citation numbers move every day.

{
"author_id": "JicYPdAAAAAJ",
"profile_url": "https://scholar.google.com/citations?user=JicYPdAAAAAJ&hl=en",
"name": "Geoffrey Hinton",
"affiliation": "Emeritus Prof. Computer Science, University of Toronto",
"verified_email_domain": "cs.toronto.edu",
"homepage_url": "http://www.cs.toronto.edu/~hinton",
"interests": [
"machine learning",
"psychology",
"artificial intelligence",
"cognitive science",
"computer science"
],
"thumbnail": "https://scholar.googleusercontent.com/citations?view_op=view_photo&user=JicYPdAAAAAJ&citpid=2",
"since_year": 2021,
"citations_all": 1095465,
"citations_since": 630143,
"h_index_all": 195,
"h_index_since": 134,
"i10_index_all": 551,
"i10_index_since": 404,
"citations_per_year": [
{ "year": 1990, "count": 3492 },
{ "year": 1991, "count": 3775 }
],
"publication_count": 100,
"publications": [
{
"title": "Imagenet classification with deep convolutional neural networks",
"url": "https://scholar.google.com/citations?view_op=view_citation&hl=en&user=JicYPdAAAAAJ&pagesize=100&citation_for_view=JicYPdAAAAAJ:VN7nJs4JPk0C",
"citation_id": "JicYPdAAAAAJ:VN7nJs4JPk0C",
"authors": "A Krizhevsky, I Sutskever, GE Hinton",
"venue": "Advances in neural information processing systems 25, 2012",
"year": 2012,
"cited_by_count": 201029
},
{
"title": "Deep learning",
"url": "https://scholar.google.com/citations?view_op=view_citation&hl=en&user=JicYPdAAAAAJ&pagesize=100&citation_for_view=JicYPdAAAAAJ:C-SEpTPhZ1wC",
"citation_id": "JicYPdAAAAAJ:C-SEpTPhZ1wC",
"authors": "Y LeCun, Y Bengio, G Hinton",
"venue": "Nature 521 (7553), 436-44, 2015",
"year": 2015,
"cited_by_count": 121291
}
],
"coauthors": [
{
"name": "Terrence Sejnowski",
"author_id": "m1qAiOUAAAAJ",
"affiliation": "Francis Crick Professor, Salk Institute, Distingished Professor, UC San Diego",
"profile_url": "https://scholar.google.com/citations?user=m1qAiOUAAAAJ"
},
{
"name": "George E. Dahl",
"author_id": "ghbWy-0AAAAJ",
"affiliation": "Google Inc.",
"profile_url": "https://scholar.google.com/citations?user=ghbWy-0AAAAJ"
}
],
"source": "google-scholar-author-metrics",
"fetched_at": "2026-10-06T14:28:44.155Z",
"engine": "google_scholar",
"url": "https://scholar.google.com/citations?user=JicYPdAAAAAJ&hl=en"
}

Use cases for Google Scholar author metrics

  • Research office reporting — pull citations, h-index and i10-index for a whole department on a monthly schedule and drop them into a report.
  • Hiring and tenure review — collect a candidate's metrics and full publication record without visiting a dozen profiles by hand.
  • Collaborator mapping — start from one author, read the co-authors, then feed those IDs back in to map an entire group.
  • Bibliometrics and rankings — build league tables or track how a metric moves over time by re-running on a schedule and storing each snapshot.
  • Literature reviews — export an author's complete publication list with citation counts as a starting bibliography.

How this Google Scholar author metrics API compares

OptionWhat you getWhat to keep in mind
Reading profiles by handExactly what the profile shows, for freeOne author at a time, and the numbers live only as long as your spreadsheet
Google Scholar's own pagesOfficial, free, and the same figuresA profile page and a venue-level Metrics section; no bulk export of authors
OpenAlex or Semantic ScholarFree open indexes with wide coverageA different index: counts and coverage differ from what Scholar displays, and the "since" columns have no equivalent
Your own scraping scriptFull control over parsing and storageYou own the maintenance whenever the profile markup moves
This ActorOne row per author with metrics, histogram, publications and co-authors, as JSONPay per delivered author profile; nothing to install or keep alive

The rows match what a reader sees on the profile, including Scholar's "since" cut-off year, which an open index does not reproduce. That is the point of this Actor: the numbers you report are the numbers on the page.

Pricing and how it is billed

Pay per result. The existing pay-per-event price is $0.01 per delivered author profile (author_profile) plus a small $0.002 when a run starts (actor_start); the exact amounts are on the Pricing tab.

  • One author profile returned and delivered = one author_profile charge.
  • A run that finds nothing (a bad ID, or a temporary busy period) delivers no billable rows: it is a successful, empty run, and only the start charge remains.
  • Duplicate IDs in one input are read once, so they never cost twice.
  • Users on a free plan get at most 10 authors per run; the limit is applied before the fetch, so a free run never runs longer than that. Paying users can submit longer lists.

Notes and limits

  • One row per author. Submitting the same ID twice still returns it once.
  • Public profiles only. Only authors who have made their Scholar profile public are available; a private or non-existent profile is reported in the run's error record rather than silently dropped.
  • Publications are paginated for you. Large profiles are walked page by page up to your max_publications cap. A cap keeps big runs fast; set it to 0 when you truly need every paper.
  • Big batches continue on a cursor. When the run reaches its budget with authors left, it stops cleanly and writes the next_cursor key-value record plus the warning Continue with next_cursor to collect the remaining authors. Send that value back as cursor with the same input to pick up where it stopped.
  • Numbers match the profile, including Scholar's "since" cut-off year, which Scholar moves forward over time; the since_year field tells you which year the recent columns refer to.
  • Busy periods. Google Scholar sometimes throttles heavy traffic; when that happens the affected author is reported with a clear message and the rest of the run still completes. Keep batches sensible and schedule large jobs.

Tips

  • Keep each run to a sensible batch of authors and schedule it, rather than submitting thousands at once.
  • If you only need the headline numbers, set include_publications to false for a noticeably faster run.
  • Store the whole output over time: with the citation histogram and the "since" year on every run, you can chart how an author's impact grows.

FAQ

How do I get an author's Google Scholar author ID? Open their profile and copy the user= value from the address bar, or paste the whole profile URL into profile_urls.

Can I look an author up by name, ORCID or affiliation? No. This Actor works from a profile ID or a profile URL, which is what makes the row unambiguous; names are not unique across profiles. Find the profile in Scholar first, then paste its URL.

Is there an official Google Scholar API? Google does not publish an official API for author profiles, so this Actor reads public profiles and returns them as ordinary dataset rows you can query, store or schedule.

What happens when a profile does not exist? That author is reported in the errors record with code: not_found and the run still succeeds for the other authors. Nothing is silently dropped.

Do I get every publication an author ever wrote? You get every publication on their public Scholar profile, up to max_publications (default 100). Set it to 0 to paginate through the whole list.

Why do the "since" numbers change between runs? Scholar moves its recent cut-off year forward. The since_year field always tells you which year the recent columns refer to.

Can I get only the metrics and skip the publication list? Yes. Set include_publications to false (and optionally include_coauthors to false) for a faster metrics-only run.

Is a run that returns no rows billed? No rows, no author_profile charge; only the $0.002 start charge applies, and a profile that does not exist is reported in errors instead of costing a result.