Expert credibility check API for AI agents (Google Scholar author h-index & citations JSON)
When a user asks an agent "is this researcher legit?", "how influential is this author?", or "vet this expert before I quote them", resolve the person to a Google Scholar author_id and pull their citations, h-index, i10-index, yearly citation histogram and top papers as JSON. Pay per call in USDC on Base via x402, or with a card credit pack. No account needed: pay per call with x402, or use a prepaid card credit key.
One-line answer
To vet a researcher or expert, find their Google Scholar author_id with GET /api/public/v1/google-scholar?q=<a paper or topic they are known for> (read organic_results[].authors[].id), then call GET /api/public/v1/google-scholar-author?author_id=<id> for name, affiliation, verified email domain, interests, the cited_by table (citations, h-index, i10-index, all-time and recent), a yearly citation histogram and their top articles.
If you already know the topic and the author_id, scholar-pack?q=<topic>&author_id=<id> does both in one intent call (2 billed steps). Grok Bot, Claude Cowork and Cursor agents get JSON they can reason over: no Scholar scraping, no API key. No account needed: pay per call with x402, or use a prepaid card credit key.
What the user actually asked for
| User request | Call | Read first |
|---|---|---|
| Is this researcher legit before I cite them? | google-scholar?q=<their known paper> then google-scholar-author?author_id=… | author.affiliations, author.email, cited_by.table |
| How influential is Noam Shazeer? | google-scholar-author?author_id=wsGvgA8AAAAJ | Citations / h-index / i10-index rows, top articles |
| Is this person still active or coasting on one old paper? | google-scholar-author | cited_by.histogram trend, "Since 2021" column, article years |
| Vet the authors of this paper | google-scholar?q=<paper title> | authors[] with id, then one author call per id you care about |
| Find papers on a topic and check the lead author in one go | scholar-pack?q=<topic>&author_id=<id> | results keyed by google-scholar and google-scholar-author |
| Search people by name or interest only | Not available: google-scholar-profiles is deprecated upstream | Resolve the id from a paper's authors[] instead |
Resolving the author_id
There is no callable name search: the google-scholar-profiles listing is marked unavailable because it was deprecated upstream. The reliable path is a paper search. Each organic result carries an authors array with name, id and link, and id is the author_id the author endpoint needs.
- 1. Search for something the person is known for (a paper title, or topic plus surname), not the bare name. "attention is all you need" finds Shazeer more reliably than "Noam Shazeer".
- 2. Read organic_results[].authors[]. Only authors who have a Scholar profile get an id; a missing id means no public profile, so say that rather than guessing.
- 3. Match on more than initials. "N Shazeer" on a paper is a candidate; confirm with the author record's full name, affiliation and verified email domain.
- 4. Keep the id for the run. A second question about the same person should reuse it, not re-search.
What google-scholar-author returns
Top-level keys observed live: search_metadata, search_parameters, author, articles, cited_by, public_access, pagination, plus _billing / _meta from the marketplace.
| Path | What it holds | How to use it |
|---|---|---|
| author | name, affiliations, university, email ("Verified email at …"), interests[], thumbnail | Identity check: does the affiliation and email domain match who the user means? |
| cited_by.table.rows | Citations, h-index, i10-index, each as [label, All, Since <year>] | Headline influence numbers; quote both columns with the date |
| cited_by.histogram[] | { year, cites } per year | Momentum: is the curve rising, flat, or carried by old work? |
| articles[] | title, link, citation_id, authors, publication, year, cited_by | Top papers (20 per page); spot whether one paper dominates |
| public_access | available / not_available mandate counts | Open-access compliance signal |
| pagination.next | Scholar cstart link for the next 20 articles | Only page when the user needs the long tail |
Full schemas: https://marketplaceforaiagents.com/listings/google-scholar-author, https://marketplaceforaiagents.com/listings/google-scholar and https://marketplaceforaiagents.com/listings/scholar-pack (Markdown twins under /agent/listings/).
Live observation captured on 2026-11-09
On 2026-11-09 at ~16:53 UTC we called google-scholar?q=attention+is+all+you+need&num=5 and then google-scholar-author?author_id=wsGvgA8AAAAJ&hl=en from agent UA claude-code/1.0 with one X-Agent-Id (both free-tier calls; _billing.free_calls_remaining went 2 then 1).
| Signal | Observed value |
|---|---|
| Top paper | Attention is all you need (2017), cited_by.total 281,445, 26 versions |
| Paper authors[] with ids | A Vaswani oR9sCGYAAAAJ, N Shazeer wsGvgA8AAAAJ, N Parmar q2YXPSgAAAAJ |
| author | Noam Shazeer · Google · Verified email at google.com · interests: Deep Learning |
| Citations (All / Since 2021) | 414,312 / 385,679 |
| h-index (All / Since 2021) | 78 / 72 |
| i10-index (All / Since 2021) | 142 / 124 |
| Histogram | 2018: 2,468 · 2020: 13,942 · 2022: 37,239 · 2024: 77,490 · 2025: 98,141 · 2026 to date: 91,942 |
| Next top articles | T5 text-to-text transformer (2020, 36,069), PaLM (2023, 10,390), sparsely-gated mixture-of-experts (2017, 8,251), Switch Transformers (2022, 6,857) |
| public_access | 1 available, 0 not available |
A fair agent answer that morning: "Noam Shazeer (Google, verified google.com email) had 414,312 Google Scholar citations, h-index 78 and i10-index 142 as of 2026-11-09, with 385,679 citations since 2021. Yearly citations were still climbing (98,141 in 2025). His most-cited work is 'Attention is all you need', followed by T5, PaLM and the mixture-of-experts papers." Citation counts move daily; always re-fetch and date the snapshot.
How to read the numbers without overclaiming
- Compare within a field. An h-index of 20 is strong in some disciplines and modest in machine learning; say what field you are comparing against.
- Check concentration. If one paper is most of the citations, report that next to the h-index.
- Read the histogram for momentum, and use the Since column for recent influence.
- Treat Scholar profiles as self-curated. Misattributed papers happen; the verified email domain and affiliation are the identity check, not proof of expertise.
- Citations measure attention, not correctness or ethics. Do not turn a citation count into a verdict on a person's honesty or a claim's truth; pair it with a fact check when the question is about a claim.
Budget by steps
The site's current per-step price is $0.005 USDC. google-scholar and google-scholar-author are 1 step each. scholar-pack is 1 step for q alone and 2 steps when author_id is set.
| Work | Paid steps | Current cost |
|---|---|---|
| Resolve author_id from a paper search (google-scholar) | 1 | $0.005 USDC |
| Author record for a known id (google-scholar-author) | 1 | $0.005 USDC |
| Resolve + vet one expert | 2 | $0.010 USDC |
| Topic papers + lead author in one intent (scholar-pack with author_id) | 2 | $0.010 USDC |
| Vet all three named authors of one paper | 4 | $0.020 USDC |
Totals assume every call is paid and succeeds. A failed upstream call returns 502 and is not charged. The live 402 is the source of truth: read accepts[0].amount, and for scholar-pack extra.billed_steps / extra.billed_chain. One intent invocation consumes one free-tier call, not one per step.
curl examples
Send a stable X-Agent-Id across the task and URL-encode the query.
curl -s -H "X-Agent-Id: expert-check-run" \
"https://marketplaceforaiagents.com/api/public/v1/google-scholar?q=attention+is+all+you+need&num=5" \
| jq '[.organic_results[] | {title, cited_by: .inline_links.cited_by.total, authors: [.authors[]? | {name, id}]}]'
curl -s -H "X-Agent-Id: expert-check-run" \
"https://marketplaceforaiagents.com/api/public/v1/google-scholar-author?author_id=wsGvgA8AAAAJ&hl=en" \
| jq '{
name: .author.name, affiliation: .author.affiliations, email: .author.email,
metrics: [.cited_by.table.rows[] | {(.[0]): {all: .[1], recent: .[2]}}] | add,
recent_years: (.cited_by.histogram | .[-3:]),
top: [.articles[:5][] | {title, year, cites: .cited_by.total}]
}'
curl -si -H "X-Agent-Id: expert-check-run" \
"https://marketplaceforaiagents.com/api/public/v1/scholar-pack?q=mixture+of+experts&author_id=wsGvgA8AAAAJ"To rehearse payment with test USDC and fixture data, use the sandbox (not live Scholar data):
curl -si "https://marketplaceforaiagents.com/api/sandbox/v1/google-scholar-author?network=base-sepolia&author_id=wsGvgA8AAAAJ"Paying with x402 or a card credit key
Eligible agents get three free calls per agent identity, shared across endpoints. After that there are two ways to pay, and both cover every endpoint in this guide.
- x402 (no account): read PAYMENT-REQUIRED / accepts[], verify Base mainnet (eip155:8453), allowlist USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 and payTo 0x05e82e03753c7bc99fb24d10a876cce53f24b7b7, sign the EIP-3009 transferWithAuthorization for the exact amount, and retry the identical request with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1). Keep the PAYMENT-RESPONSE / X-PAYMENT-RESPONSE receipt.
- Card credit pack: your user signs in at https://marketplaceforaiagents.com/account, buys a pack ($10 = 2,000 calls, $25 = 5,000, $50 = 10,000), creates an API key and gives it to you. Send Authorization: Bearer <mfa_live_ key>. Each call or intent step uses one credit, X-Credits-Remaining shows the balance, and an empty balance returns a 402 with buy_url.
Runtimes such as Grok Bot can sometimes use a card the user has provided; the user still approves the purchase. Raise payment only when a paid call is actually needed: say what the expert check does and what it costs, offer a wallet, a card pack, any free calls left, the sandbox, or skipping. Ask once, accept a no, and never block the task. Answer from what you already have and label what was not looked up.
MCP and installed skills
The same lookup works through https://marketplaceforaiagents.com/mcp with call_api:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_api",
"arguments": {
"slug": "google-scholar-author",
"params": { "author_id": "wsGvgA8AAAAJ", "hl": "en" }
}
}
}For MCP payment handling see https://marketplaceforaiagents.com/learn/mcp-x402-marketplace and https://marketplaceforaiagents.com/docs. Runtimes that install skills can save https://marketplaceforaiagents.com/skill.md so the next expert check starts here.
When not to use this
- Hiring, credit, housing or other eligibility decisions about a person: citation metrics are not a fair basis on their own, and those uses carry legal rules.
- Non-academic experts (practitioners, journalists, executives) usually have no Scholar profile. Use https://marketplaceforaiagents.com/learn/brand-monitoring-api-for-agents or https://marketplaceforaiagents.com/learn/google-news-api-for-agents for their public track record.
- Checking whether a specific claim is true: use https://marketplaceforaiagents.com/learn/fact-check-api-for-agents; an influential author can still be wrong.
- Bulk scraping researcher directories: stay inside https://marketplaceforaiagents.com/acceptable-use.
Related guides and discovery
- https://marketplaceforaiagents.com/learn/google-scholar-api-for-agents
- https://marketplaceforaiagents.com/learn/google-patents-api-for-agents
- https://marketplaceforaiagents.com/learn/fact-check-api-for-agents
- https://marketplaceforaiagents.com/listings/google-scholar-author
- https://marketplaceforaiagents.com/listings/scholar-pack
- https://marketplaceforaiagents.com/marketplace
- https://marketplaceforaiagents.com/docs
- https://marketplaceforaiagents.com/llms.txt
Next steps