ORCID Researcher Lookup — Public Profile API
Pricing
Pay per event
ORCID Researcher Lookup — Public Profile API
Look up researchers by ORCID iD against the official, free ORCID public registry. Get name, biography, country, employment history, keywords, and total works count. Pay only for iDs that resolve to a real record.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
ORCID Researcher Lookup
Look up any researcher by ORCID iD against the official, free ORCID public registry — name, biography, country, full employment history, keywords, and total works count. No API key, no scraping — this hits the official public ORCID API directly.
Features
- ORCID iD → full researcher profile. Given name, family name, credit name, and a resolved display name.
- Employment history. Every employment record on file — organization, role, and start/end years — plus the inferred current employer (the most recent entry with no end year).
- Biography, country & keywords. The researcher's self-reported biography, country, and research keyword tags.
- Works count. A quick count of works linked to the profile.
- Pay only for hits. ORCID iDs that don't resolve to a real record cost nothing — see Pricing.
- Built for bulk. Feed in thousands of ORCID iDs; concurrency, keyword filtering, column selection, and a one-row-per-employment-record expansion are all configurable.
How to use ORCID Researcher Lookup — Public Profile API
- In the Apify Console. Open the actor page and click Start — the
orcidIdsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~orcid-researcher-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"orcidIds":["0000-0002-1825-0097"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"orcidIds": ["0000-0002-1825-0097"]}
One ORCID iD per line, in 0000-0002-1825-0097 format (a full orcid.org URL also works). Accepted formats: 0000-0002-1825-0097, https://orcid.org/0000-0002-1825-0097.
{"orcidIds": ["0000-0002-1825-0097", "https://orcid.org/0000-0002-1825-0097"],"testRun": false,"onlyFound": false,"expandRows": false,"maxConcurrency": 5}
orcidIds is a list of ORCID iDs — plain 0000-0002-1825-0097 format or a full orcid.org URL,
both work. testRun limits a run to the first 5 items so you can check your input before
spending on the full list. onlyFound hides rows where nothing was found (misses are always
free regardless). Optional includeKeywords/excludeKeywords filter results by keyword, and
maxResults stops the run early once that many results have been found. columns lets you pick
which fields to include (all are on by default). expandRows gives each employment record its
own row instead of grouping them under the ORCID iD — you're still only charged once per iD no
matter how many rows it produces. maxConcurrency (default 5, max 20) caps parallel requests.
Output
| query | found | status | displayName | orcid | givenName | familyName | biography | country | keywords | currentEmployer | employments | worksCount | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0000-0002-1825-0097 | true | OK | Josiah Carberry | 0000-0002-1825-0097 | Josiah | Carberry | Josiah Carberry is a fictitious person. This account is used as a demonstration account by ORCID, CrossRef and others who wish to demonstrate the interaction of ORCID with other scholarly communication systems without having to use a real-person's account. |
Josiah Stinkney Carberry is a fictional professor, created as a joke in 1929. He is said to still teach at Brown University, and to be known for his work in "psychoceramics", the supposed study of "cracked pots". See his Wikipedia entry for more details. | | ["psychoceramics","ionian philology"] | Wesleyan University | [{"organization":"Wesleyan University","role":"Professor","startYear":"1930","endYear":null},{"organization":"Brown University","role":"Professor","startYear":"1929","endYear":null}] | 6 | 2026-08-31T06:20:16.366Z |
One row per ORCID iD, for example:
{"query": "0000-0002-1825-0097","found": true,"status": "OK","orcid": "0000-0002-1825-0097","givenName": "Josiah","familyName": "Carberry","creditName": null,"displayName": "Josiah Carberry","biography": "Josiah Carberry is a fictitious person...","country": "US","keywords": ["psychoceramics"],"employments": [{ "organization": "Brown University", "role": "Professor", "startYear": "1975", "endYear": null }],"currentEmployer": "Brown University","worksCount": 27,"scrapedAt": "2026-08-21T12:00:00.000Z"}
An ORCID iD with no matching record comes back as "found": false with status: "NOT_FOUND"
(or "BAD_FORMAT" if it doesn't match the 0000-0002-1825-0097 shape to begin with) and a
plain-English message — these rows are never charged.
Use cases
- Researcher identity verification. Confirm a name, affiliation, and country before crediting or contacting an author.
- Grant & publication pipelines. Bulk-enrich a list of ORCID iDs with current employer and works count for reporting.
- Institutional research audits. Cross-check employment history against claimed affiliations.
- Peer-review & editorial workflows. Pull a reviewer or author's biography and keywords to assess subject-matter fit.
- Academic directory building. Turn a bare list of ORCID iDs into a searchable researcher directory.
Pricing
$4 per 1,000 ORCID iDs, plus a $0.00005 start fee. Misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~orcid-researcher-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"orcidIds":["0000-0002-1825-0097"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~orcid-researcher-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"orcidIds":["0000-0002-1825-0097"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~orcid-researcher-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"orcidIds":["{{ORCID iD}}"]}, mapping the row's ORCID iD into the orcidIds array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "ORCID API — Researcher Identity & Employment Lookup" — the agent will find and run this actor.
FAQ
What counts as "not found"? An ORCID iD that doesn't match the 0000-0002-1825-0097 format
is flagged BAD_FORMAT before a request is even made. A correctly formatted iD with no
registered ORCID record returns HTTP 404 and is flagged NOT_FOUND. Neither is charged.
Can I paste a full orcid.org URL instead of the bare iD? Yes — the actor extracts the
0000-0002-1825-0097-shaped iD from anywhere in the input string, so a full profile URL works
the same as the bare iD.
How is "current employer" determined? It's the most recent employment record with no
endYear on file; if every record has an end year, the actor falls back to the first
(most-recently-added) employment entry.
Why does the actor set a custom Accept header? ORCID's public API returns XML by default —
this actor explicitly requests Accept: application/json to get structured JSON instead.
Is every field always populated? No — biography, country, keywords, and employment history
depend entirely on what the researcher has chosen to make public on their ORCID profile; a
minimal profile may return mostly null fields alongside the name.
What proxy should I use? Apify Proxy is enabled by default; ORCID's public API is generally permissive, but residential proxies are available if you see blocks on large runs.