Google Scholar Author Metrics API - Citations & h-index
Pricing
from $10.00 / 1,000 author profiles
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
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
| Field | Type | Description |
|---|---|---|
author_ids | array of strings | Required. 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_urls | array of strings | Optional. Full scholar.google.com/citations?user=... URLs, used instead of or alongside author_ids. The ID is pulled out for you. |
include_publications | boolean | Include the publication list. Default true. Turn off for a faster, metrics-only run. |
max_publications | integer | Cap the publication list per author. 0 means all of them (paginated). Default 100. |
include_coauthors | boolean | Include the co-authors listed on the profile. Default true. |
hl | string | Scholar 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_proxy | boolean | Default true. Leave it on: it is what lets a batch of authors finish when Scholar is busy. false fetches directly and tries fewer times. |
cursor | string | Optional. 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(andOUTPUT) —itemCount,errorCountandbillableCount, the run status flags,partialandwarnings.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 ascursorwith the same input to continue.total_countandprocessed_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
| Option | What you get | What to keep in mind |
|---|---|---|
| Reading profiles by hand | Exactly what the profile shows, for free | One author at a time, and the numbers live only as long as your spreadsheet |
| Google Scholar's own pages | Official, free, and the same figures | A profile page and a venue-level Metrics section; no bulk export of authors |
| OpenAlex or Semantic Scholar | Free open indexes with wide coverage | A different index: counts and coverage differ from what Scholar displays, and the "since" columns have no equivalent |
| Your own scraping script | Full control over parsing and storage | You own the maintenance whenever the profile markup moves |
| This Actor | One row per author with metrics, histogram, publications and co-authors, as JSON | Pay 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_profilecharge. - 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_publicationscap. A cap keeps big runs fast; set it to0when 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_cursorkey-value record plus the warningContinue with next_cursor to collect the remaining authors.Send that value back ascursorwith 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_yearfield 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_publicationstofalsefor 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.

