Google Scholar Profiles Scraper avatar

Google Scholar Profiles Scraper

Pricing

$2.00 / 1,000 profile extracteds

Go to Apify Store
Google Scholar Profiles Scraper

Google Scholar Profiles Scraper

Extract Google Scholar author profiles, citation metrics, h-index, i10-index, publications, coauthors, and citation history in bulk.

Pricing

$2.00 / 1,000 profile extracteds

Rating

0.0

(0)

Developer

Zapticx

Zapticx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

🎓 Google Scholar Profiles Scraper

Turn public Google Scholar author profiles into clean, structured data: citation counts, h-index, i10-index, citation history, publications and coauthors, for one researcher or a long list.

Built for research offices, bibliometric analysts and anyone maintaining a researcher directory. Paste profile links or author IDs, then export to CSV, Excel or JSON, or pull the results through the API.

💰 Pricing: $2.00 per 1,000 profiles. No start fee, and you only pay for profiles that are delivered.

Data source: Google Scholar

What can you do with this Actor?

  • Academic research analytics: compare citation impact across a group of researchers.
  • University research intelligence: build a current view of a department's output and collaborators.
  • Scholar profile monitoring: schedule regular snapshots and track how metrics change.
  • Citation analysis: chart year-by-year citations for an author or a single paper.
  • Research collaboration mapping: use coauthor lists to see who works with whom.
  • Bibliometric analysis: feed publication lists into your own models and dashboards.
  • Researcher directory enrichment: add affiliation, interests and metrics to the records you already keep.

How to use this Actor

  • 👉 Register for a free Apify account — no credit card required.
  • 🎉 Just click Sign up free on Apify → and complete a quick signup.
  • 💰 A free Apify account includes $5 in monthly credits — enough to test this Actor.
  • ⏳ Start on Apify's free plan, with no commitment or upfront payment required.
  • 🎓 Open the Actor and paste Google Scholar profile URLs or author IDs.
  • ▶️ Click Start and export the results to JSON, CSV, Excel, or use them through the API.

Features

  • Flexible input: profile URLs from any Scholar country domain, bare author IDs, or a dataset from an earlier run. Duplicates are removed automatically.
  • Lifetime and recent metrics: citations, h-index and i10-index, with the exact recent window Scholar displays.
  • Citation history: citations per year, with zero-citation years kept in place.
  • Your choice of depth: metrics only, or up to 100 publications per profile, sorted by citations, year or title.
  • Publication details: optionally open each paper for full author names, date, publisher, abstract, links and citations per year.
  • Coauthors: the coauthors shown on the profile, with an option for the full list.
  • Clear outcomes: every target gets a status, and failed, blocked or missing profiles are never charged.
  • Safe batches: one bad profile never stops a run, and runs stop cleanly before their time limit.
  • Easy recovery: every run saves a ready-to-paste input for the profiles worth retrying.
  • Three ready-made views: Profiles, Publications and Coauthors, each as a clean table.

Data fields

Each profile is one record. These are the fields most people use, and the All fields view shows the rest.

FieldDescription
statusOutcome for this target (see below)
scholarIdGoogle Scholar author ID
nameAuthor name
affiliationAffiliation as written on the profile
emailDomainDomain of the verified email, for example mit.edu
verifiedEmailWhether Scholar shows a verified email domain
homepageHomepage link
interestsResearch interest labels
profileImageUrlProfile photo, or null if the default avatar is shown
citationsAllLifetime citations
citationsRecentCitations in the recent window
hIndexAllLifetime h-index
hIndexRecentRecent h-index
i10IndexAllLifetime i10-index
i10IndexRecentRecent i10-index
recentPeriodLabelThe window as shown by Scholar, for example Since 2021
citationHistoryCitations per year, as far back as Scholar's graph shows
publicAccessAvailableArticles available under funding mandates, when shown. publicAccessNotAvailable holds the rest
publicationsPublications with title, authors, year, venue, citation count and links
publicationsTruncatedTrue when your limit stopped collection and more publications exist
coauthorsCoauthors with name, ID, profile link, affiliation and email domain
warningsAnything that reduced completeness for this record
errorMessagePlain-English reason when a target did not succeed
scrapedAtWhen the record was produced

The status field tells you what happened:

StatusMeaningCharged
successThe profile and everything requested were deliveredYes
partialThe profile was delivered, but an optional part failed. See warningsYes
empty_profileThe profile exists but has no metrics or articlesNo
not_foundNo public profile exists for this IDNo
blockedGoogle refused the request. Run this ID againNo
failedThe profile could not be read after retriesNo
invalid_inputThe value was not a valid profile URL or author IDNo
not_processedThe run ended before reaching this profileNo

Missing values are always null or an empty list. Nothing is guessed, and personal email addresses are never inferred from a domain.

Input

Only one of profileUrls, authorIds or inputDatasetId is needed. Everything else has a sensible default.

InputTypeDescription
profileUrlsarrayProfile URLs. Bare author IDs also work here
authorIdsarray12-character author IDs
inputDatasetIdstringID of an Apify dataset holding URLs or IDs
inputDatasetFieldstringDataset field to read, if it is not detected automatically
maxProfilesintegerMaximum profiles per run. Default 100, up to 10,000
maxPublicationsPerProfileintegerPublications per profile, from 0 (metrics only) to 100. Default 20
includePublicationsbooleanCollect publications. Default true
publicationSortstringcitations, year, title or source. Default citations
includeCitationHistorybooleanAdd citations per year. Default true
includeCoauthorsbooleanAdd the coauthors shown on the profile. Default true
includeAllCoauthorsbooleanFetch the full list when a profile shows its limit of 20. Default false
includePublicationDetailsbooleanOpen each publication's page. Default false
maxPublicationDetailsPerProfileintegerDetail pages per profile. Default 20, up to 100
maxConcurrencyintegerProfiles processed at once. Default 2, up to 5
minRequestDelayMsintegerMinimum delay between requests. Default 1,000
maxRequestRetriesintegerRetries after temporary errors. Default 2
requestTimeoutSecsintegerTimeout for one response. Default 30
proxyConfigurationobjectConnection settings. Apify Proxy is required, and the default works for most runs

Example input:

{
"profileUrls": ["https://scholar.google.com/citations?user=qc6CJjYAAAAJ&hl=en"],
"authorIds": ["JicYPdAAAAAJ"],
"maxPublicationsPerProfile": 20,
"publicationSort": "citations",
"includeCoauthors": true
}

Output

Results go to the run's dataset, with one record per author. Open the Profiles, Publications or Coauthors view for a clean table, and export any of them as JSON, CSV, Excel or through the API. Nested data in the All fields view expands into many columns in a spreadsheet, so the three views are usually easier to work with. With publication details on, a Publications CSV also includes per-paper citation history columns.

Retrying unfinished profiles

If any profiles end as blocked, failed or not_processed, choose Retry input in the selector on the run's Output tab. It holds a ready-made input with each ID listed once and your settings kept. Paste it into a new run. You are only charged for the profiles delivered this time.

{
"authorIds": ["qc6CJjYAAAAJ", "JicYPdAAAAAJ"],
"maxPublicationsPerProfile": 50
}

Profiles marked not_found or invalid_input are left out, because a retry would not change the result. The Run summary record holds the same IDs grouped by status, along with the run's totals.

Example record

Real output, shortened to one publication and one coauthor:

{
"status": "success",
"errorCode": null,
"errorMessage": null,
"scholarId": "DhtAFkwAAAAJ",
"name": "Kaiming He",
"affiliation": "Associate Professor, EECS, MIT",
"affiliationOrgId": "16345133980181568013",
"emailDomain": "mit.edu",
"verifiedEmail": true,
"homepage": "https://people.csail.mit.edu/kaiming/",
"interests": [
"Computer Vision",
"Machine Learning"
],
"profileImageUrl": "https://scholar.googleusercontent.com/citations?view_op=view_photo&user=DhtAFkwAAAAJ&citpid=8",
"profileUrl": "https://scholar.google.com/citations?user=DhtAFkwAAAAJ&hl=en",
"sourceUrl": "https://scholar.google.com/citations?user=DhtAFkwAAAAJ&hl=en",
"citationsAll": 894296,
"citationsRecent": 707039,
"hIndexAll": 78,
"hIndexRecent": 74,
"i10IndexAll": 95,
"i10IndexRecent": 94,
"recentPeriodLabel": "Since 2021",
"recentPeriodStartYear": 2021,
"citationHistory": [
{
"year": 2024,
"citations": 130865
},
{
"year": 2025,
"citations": 132240
},
{
"year": 2026,
"citations": 105965
}
],
"publicAccessAvailable": 11,
"publicAccessNotAvailable": 0,
"publications": [
{
"ownerScholarId": "DhtAFkwAAAAJ",
"ownerName": "Kaiming He",
"title": "Deep Residual Learning for Image Recognition",
"authors": "K He, X Zhang, S Ren, J Sun",
"publicationYear": 2016,
"publicationDate": null,
"venue": "Computer Vision and Pattern Recognition (CVPR), 2016",
"publisher": null,
"volume": null,
"issue": null,
"pages": "2016",
"description": null,
"citationCount": 354124,
"citationsMerged": false,
"scholarPublicationId": "DhtAFkwAAAAJ:ALROH1vI_8AC",
"scholarPublicationUrl": "https://scholar.google.com/citations?user=DhtAFkwAAAAJ&hl=en&view_op=view_citation&citation_for_view=DhtAFkwAAAAJ:ALROH1vI_8AC",
"externalPublicationUrl": null,
"pdfUrl": null,
"citedByUrl": "https://scholar.google.com/scholar?oi=bibs&hl=en&cites=9281510746729853742,7487146795671115667,2689236077899720732,5801613056663068940,9229762417497317300,17634140231156417900,7546803073980351828,10835837808483619908,14586216232957520117,9942392906694851393,18372721534470382083,47763651013056423,17937211382055683225,2028843693838236151,5605570888801956403,16013406159877531928,7329882628777945228,9499035182050352470,15594360731912031688,7454386611891521023,2049745923102830674,2336648171815687686,3318125700009504314,15462043844848318371,17590291061863551079,4974310621250679772,1902020056034411164",
"citationHistory": [],
"detailsFetched": false
}
],
"publicationCountExtracted": 1,
"publicationsTruncated": true,
"coauthors": [
{
"ownerScholarId": "DhtAFkwAAAAJ",
"ownerName": "Kaiming He",
"name": "Jian Sun",
"scholarId": "ALVSZAYAAAAJ",
"profileUrl": "https://scholar.google.com/citations?user=ALVSZAYAAAAJ&hl=en",
"affiliation": "Chief Scientist of Megvii, Managing Director of Megvii Research",
"emailDomain": "megvii.com"
}
],
"coauthorCount": 1,
"warnings": [],
"scrapedAt": "2026-11-05T15:33:29.338Z"
}

Pricing

EventPricePer 1,000
Profile extracted$0.002$2.00
  • You pay only for success and partial records. See the status table above.
  • There is no start fee, and platform usage is included in the price.
  • Publications, coauthors, citation history and publication details are included. A profile costs the same whichever options you choose.
  • Example: 500 delivered profiles cost $1.00.
  • Set a maximum charge on your run if you want a hard ceiling. The Actor stops cleanly when it is reached.

Examples / Ready-to-use Tasks

Department citation snapshot

Metrics only, for a fast and low-cost overview of a group.

{
"authorIds": ["JicYPdAAAAAJ", "kukA0LcAAAAJ", "WLN3QrAAAAAJ"],
"includePublications": false,
"includeCoauthors": false
}

Recent output review

An author's 100 newest publications.

{
"authorIds": ["kukA0LcAAAAJ"],
"maxPublicationsPerProfile": 100,
"publicationSort": "year"
}

Collaboration map

Metrics plus every listed coauthor. Feed the coauthor IDs into your next run to grow the network one step at a time.

{
"authorIds": ["gLnCTgIAAAAJ"],
"maxPublicationsPerProfile": 0,
"includeAllCoauthors": true
}

Literature review with abstracts

The most cited papers of an author, with full metadata and abstracts.

{
"authorIds": ["JicYPdAAAAAJ"],
"maxPublicationsPerProfile": 10,
"includePublicationDetails": true,
"maxPublicationDetailsPerProfile": 10
}

API & Integrations

Run the Actor from the Apify API, a schedule, or tools such as Make, Zapier and n8n. Use a webhook to send finished runs to Google Sheets, a database or a dashboard.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("zapticx/google-scholar-profiles-scraper").call(
run_input={"authorIds": ["qc6CJjYAAAAJ"], "maxPublicationsPerProfile": 5}
)
for profile in client.dataset(run.default_dataset_id).iterate_items():
print(profile["status"], profile["name"], profile["citationsAll"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('zapticx/google-scholar-profiles-scraper').call({
authorIds: ['qc6CJjYAAAAJ'],
maxPublicationsPerProfile: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL:

curl -X POST "https://api.apify.com/v2/acts/zapticx~google-scholar-profiles-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"authorIds": ["qc6CJjYAAAAJ"], "maxPublicationsPerProfile": 5}'

Limitations

  • Google may refuse some requests. Expect some profiles to end as blocked. They are not charged, and running them again usually works. Full delivery cannot be promised, and the Actor does not solve CAPTCHAs. If many profiles in a row are refused, the run stops early.
  • Apify Proxy is required. Scholar refuses direct requests from Apify's servers.
  • Public profiles only. Private or removed profiles return not_found.
  • Up to 100 publications per profile. publicationsTruncated shows when an author has more.
  • List data can be shortened. Scholar's list can abbreviate authors and venues, and volume, issue and pages are filled only when they are clear. Publication details give the full text but take longer.
  • Large lists take time. Raise the run timeout or split long lists. A run that reaches its limit stops cleanly and lists what it did not reach.

Built by Zapticx — AI automation and data solutions. zapticx.com

Search keywords

google scholar scraper, google scholar profiles scraper, google scholar api, apify google scholar, scholar author profile data, h-index extractor, i10-index data, citation metrics scraper, citation history data, academic publications scraper, coauthor network data, bibliometric data extraction, researcher directory data, university research analytics, google scholar data extraction

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC.