Google Scholar Search Scraper: hits, citations, PDFs, CSV
Pricing
$0.25 / 1,000 results
Google Scholar Search Scraper: hits, citations, PDFs, CSV
Google Scholar search hits as flat CSV/JSON rows at $1.00 per 1,000 rows: title, link, authors, source, year, snippet, cited-by count and link, PDF link, per query with year filters. Search hits only, not author profiles or citation exports.
Pricing
$0.25 / 1,000 results
Rating
0.0
(0)
Developer
Tallyrake Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Google Scholar Search Scraper: hits, cited-by, PDFs, CSV
Search hits only. Not author profiles, co-author graphs, or citation-format exports. Google Scholar search hits as flat CSV/JSON rows. Give it queries, get each result's title, link, authors, source, year, snippet, cited-by count and link, PDF link when Scholar shows one, and Scholar's total-results estimate, with year filters. One row per hit with a stable id. $0.25 per 1,000 dataset rows.
What you get
| Field | Example |
|---|---|
id | stable per query and Scholar result id; the same paper keeps its id across runs even if its rank moves |
resultId | Scholar's own id for the hit (ZNoXfR7GejYJ) |
query | google trends forecasting |
position | 1 (rank across pages, 10 per page) |
title | Predicting the present with Google Trends |
url | the result's link |
authors | H Choi, H Varian |
source | Economic record - Wiley Online Library |
year | 2012 |
snippet | Scholar's snippet |
citedBy, citedByUrl | 4488, link to the citing papers |
pdfUrl | the [PDF] link when Scholar shows one, else null |
kind | PDF, HTML, BOOK, CITATION when Scholar tags the hit, else null |
versionCount | 39 (from "All 39 versions"), else null |
totalResultsEstimate | 119000 (Scholar's "About N results") |
fetchedAt | ISO timestamp |
Recipes
Literature list for a topic. Queries: your topic phrasings. maxResultsPerQuery 50. Year filters as needed. Sort the CSV by citedBy.
Who cites what. Take citedByUrl from a row and follow it in Scholar; this actor does not crawl citation graphs.
Recent work only. yearFrom 2024. Same queries, fresh papers first.
Weekly watch. Schedule the same queries weekly and diff the id column: a new id is a paper that was not in last week's hits; a rank move alone does not change it.
Input
One query per line, exactly as you would type it into Scholar (quotes, author: and source: work). maxResultsPerQuery is 10 per page, up to 200. pacingMs (default 2,500 ms) is the jittered delay between page requests.
Reliability and cost
Measured 2026-09-14 on Apify with datacenter proxy, one run: 8 queries, 2 pages each, maxResultsPerQuery 20: 16 requests, 160 rows, 0 of 16 blocked, 61 seconds, platform usage $0.0010. That run bills $0.04 in results (160 rows at $0.25 per 1,000). From this machine without a proxy the same day: 3 queries, 6 requests, 57 rows, 0 blocked, 18 seconds.
Scholar blocks by IP and cookie. Each session has its own cookie jar and proxy identity and is retired after 20 requests; a block (429, 403, or Scholar's "unusual traffic" page) rotates the session and retries with exponential backoff. That path was not exercised in the measured runs (0 blocked).
Pay per event: $0.25 per 1,000 dataset rows plus Apify platform usage. A query with no results produces no rows and no results charge.
Where this sits on the shelf
Apify Store search for "google scholar", top 8 results on 2026-09-14, read from the Store API. Price is the pay-per-event charge per dataset item, converted to per 1,000 rows; users, runs and the failed-or-timed-out share are the Store's 30-day public stats for each listing.
| Listing | Users (30d) | Runs (30d) | Failed or timed out | Price per 1,000 rows |
|---|---|---|---|---|
| johnvc/google-scholar-api | 44 | 1,990 | 0% | $0.01 |
| scrape.badger/google-scholar-scraper | 22 | 2,231 | 2% | $0.01 |
| easyapi/google-scholar-scraper | 14 | 194 | 4% | $4.99 |
| crawlerbros/google-scholar-scraper | 5 | 135 | 1% | free |
| fetch_cat/google-scholar-profiles-scraper | 3 | 4,534 | 4% | $5.00 |
| automation-lab/google-scholar-scraper | 3 | 88 | 2% | $10.00 |
| solidcode/google-scholar-scraper | 3 | 232 | 5% | free |
| nexgendata/google-scholar-scraper | 1 | 31 | 0% | $40.00 |
| tallyrake/google-scholar-search-scraper (this actor) | 0 | 0 | no public runs yet | $0.25 |
Cost limit
If a run reaches the "Maximum total charge per run" you set, it stops in process rather than being aborted by the platform: the run ends with status SUCCEEDED, and the run status message on the run detail says how many rows were written and how many were found but not written and not billed. Re-running the same input writes and bills the same prefix again, so raise the cap before re-running if you want the rest.
Limits
Search hits only. Not author profiles, co-author graphs, or citation-format exports. Scholar's "About N results" is an estimate. Google may change the page markup; the parser reads the gs_ class names Scholar has used for years and fails loudly, not silently, if they change.