| Title: | Retrieve Data from the ORCID Public API |
|---|---|
| Description: | Provides functions to retrieve public data from ORCID (Open Researcher and Contributor ID) records via the ORCID public API. Fetches employment history, education, works (publications, datasets, preprints), funding, peer review activities, and other public information. Returns data as structured data.table objects for easy analysis and manipulation. Replaces the discontinued 'rorcid' package with a modern, CRAN-compliant implementation. |
| Authors: | Lorenzo Fabbri [aut, cre] |
| Maintainer: | Lorenzo Fabbri <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-05-28 07:12:05 UTC |
| Source: | https://github.com/lorenzofabbri/orcidtr |
Search for ORCID profiles using Apache Solr query syntax. This function provides direct access to the ORCID search API with full query capabilities.
orcid(query = NULL, rows = 10, start = 0, token = NULL, ...)orcid(query = NULL, rows = 10, start = 0, token = NULL, ...)
query |
Character string. Solr query string (e.g., "keyword:ecology", "family-name:Smith AND given-names:John"). If NULL, returns empty results. |
rows |
Integer. Number of results to return (default: 10, max: 1000). |
start |
Integer. Starting position for pagination (default: 0). |
token |
Character string or NULL. Optional API token. Most searches work without authentication. |
... |
Additional parameters passed to the API request. |
This function queries the ORCID search endpoint:
https://pub.orcid.org/v3.0/expanded-search
The expanded-search endpoint returns name information along with ORCID IDs, unlike the basic search endpoint which only returns identifiers.
Query Field Examples:
family-name:Smith
given-names:John
keyword:ecology
affiliation-org-name:Harvard
digital-object-ids:10.1371/*
email:*@example.org
Boolean Operators:
Use AND, OR, NOT for complex queries:
"family-name:Smith AND affiliation-org-name:Harvard"
A data.table with columns:
ORCID identifier
Given name(s)
Family name
Credit/published name
Alternative names (list column)
Returns empty data.table if no results found.
The total number of matches is available as attr(result, "found").
ORCID API Search Documentation: https://info.orcid.org/documentation/api-tutorials/api-tutorial-searching-the-orcid-registry/
orcid_search for a more user-friendly interface,
orcid_doi for DOI-specific searches
## Not run: # Search by keyword results <- orcid("keyword:ecology", rows = 20) print(results) attr(results, "found") # Total number of matches # Search by name results <- orcid("family-name:Fabbri AND given-names:Lorenzo") # Search by affiliation results <- orcid("affiliation-org-name:Stanford") # Search by DOI results <- orcid("digital-object-ids:10.1371/*") # Pagination page1 <- orcid("keyword:genomics", rows = 10, start = 0) page2 <- orcid("keyword:genomics", rows = 10, start = 10) ## End(Not run)## Not run: # Search by keyword results <- orcid("keyword:ecology", rows = 20) print(results) attr(results, "found") # Total number of matches # Search by name results <- orcid("family-name:Fabbri AND given-names:Lorenzo") # Search by affiliation results <- orcid("affiliation-org-name:Stanford") # Search by DOI results <- orcid("digital-object-ids:10.1371/*") # Pagination page1 <- orcid("keyword:genomics", rows = 10, start = 0) page2 <- orcid("keyword:genomics", rows = 10, start = 10) ## End(Not run)
Fetches a comprehensive summary of all activities for an ORCID identifier in a single API call. This is more efficient than calling individual endpoints when you need multiple activity types.
orcid_activities(orcid_id, token = NULL)orcid_activities(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/activities
This endpoint provides summary information for all activity types in a single request, which is more efficient than making multiple individual requests. However, the summaries contain less detail than the full individual records.
A named list with data.table elements for each activity section:
Distinctions/awards summary
Education history summary
Employment history summary
Invited positions summary
Professional memberships summary
Qualifications/licenses summary
Service activities summary
Funding records summary
Peer review activities summary
Research resources summary
Works/publications summary
Empty data.tables are returned for sections with no data.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_fetch_record, orcid_person
## Not run: # Fetch all activities activities <- orcid_activities("0000-0002-1825-0097") names(activities) # Access specific sections activities$works activities$employments activities$fundings ## End(Not run)## Not run: # Fetch all activities activities <- orcid_activities("0000-0002-1825-0097") names(activities) # Access specific sections activities$works activities$employments activities$fundings ## End(Not run)
Fetches address/country information associated with an ORCID record.
orcid_address(orcid_id, token = NULL)orcid_address(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/address
A data.table with the following columns:
ORCID identifier
Unique identifier for this address
Country code
Returns an empty data.table with the same structure if no address information is found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch address information address <- orcid_address("0000-0002-1825-0097") print(address) ## End(Not run)## Not run: # Fetch address information address <- orcid_address("0000-0002-1825-0097") print(address) ## End(Not run)
Fetches just the biography/about text for an ORCID record. This is a
simplified alternative to orcid_person when you only need
the biography text.
orcid_bio(orcid_id, token = NULL)orcid_bio(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/biography
A data.table with the following columns:
ORCID identifier
Biography text
Visibility setting (public, limited, private)
Returns a data.table with NA biography if not available.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch biography only bio <- orcid_bio("0000-0002-1825-0097") print(bio$biography) ## End(Not run)## Not run: # Fetch biography only bio <- orcid_bio("0000-0002-1825-0097") print(bio$biography) ## End(Not run)
Fetches distinction records (awards, honors, recognitions) for an ORCID identifier. Returns structured data similar to employments and educations.
orcid_distinctions(orcid_id, token = NULL)orcid_distinctions(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/distinctions
A data.table with the following columns:
ORCID identifier
Unique identifier for this distinction record
Name of the awarding organization
Department name (if available)
Award or distinction title
Award/distinction date (ISO format)
End date (ISO format, if applicable)
City of organization
State/region of organization
Country of organization
Returns an empty data.table with the same structure if no distinction records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_employments, orcid_educations, orcid_activities
## Not run: # Fetch distinctions distinctions <- orcid_distinctions("0000-0002-1825-0097") print(distinctions) ## End(Not run)## Not run: # Fetch distinctions distinctions <- orcid_distinctions("0000-0002-1825-0097") print(distinctions) ## End(Not run)
Search for ORCID profiles associated with specific DOIs. This is a
convenience wrapper around orcid for DOI-based searches.
orcid_doi(dois, fuzzy = FALSE, rows = 10, token = NULL)orcid_doi(dois, fuzzy = FALSE, rows = 10, token = NULL)
dois |
Character vector. One or more DOIs to search for. |
fuzzy |
Logical. Use fuzzy matching for DOI search (default: FALSE). Fuzzy matching allows partial DOI matches. |
rows |
Integer. Number of results per DOI (default: 10). |
token |
Character string or NULL. Optional API token. |
This function searches the digital-object-ids field in the ORCID
registry. When fuzzy = TRUE, wildcard matching is used to find
partial DOI matches.
A named list where each element corresponds to a DOI and contains a data.table of search results. If only one DOI is provided, returns the data.table directly. Empty data.tables are returned for DOIs with no matches.
## Not run: # Search by single DOI results <- orcid_doi("10.1371/journal.pone.0025995") print(results) # Search by multiple DOIs dois <- c("10.1038/nature12373", "10.1126/science.1260419") results <- orcid_doi(dois) names(results) # Fuzzy search (partial DOI) results <- orcid_doi("10.1371/*", fuzzy = TRUE, rows = 20) ## End(Not run)## Not run: # Search by single DOI results <- orcid_doi("10.1371/journal.pone.0025995") print(results) # Search by multiple DOIs dois <- c("10.1038/nature12373", "10.1126/science.1260419") results <- orcid_doi(dois) names(results) # Fuzzy search (partial DOI) results <- orcid_doi("10.1371/*", fuzzy = TRUE, rows = 20) ## End(Not run)
Fetches education records for a given ORCID identifier from the ORCID public API. Returns a structured data.table with education history including institutions, degrees, departments, and dates.
orcid_educations(orcid_id, token = NULL)orcid_educations(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/educations
The function respects ORCID API rate limits and includes appropriate User-Agent headers identifying the orcidtr package.
A data.table with the following columns:
ORCID identifier
Unique identifier for this education record
Name of the educational institution
Department name (if available)
Degree or program name
Education start date (ISO format)
Education end date (ISO format)
City of institution
State/region of institution
Country of institution
Returns an empty data.table with the same structure if no education records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_employments, orcid_works, orcid_fetch_record
## Not run: # Fetch education history for a public ORCID edu <- orcid_educations("0000-0002-1825-0097") print(edu) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") edu <- orcid_educations("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch education history for a public ORCID edu <- orcid_educations("0000-0002-1825-0097") print(edu) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") edu <- orcid_educations("0000-0002-1825-0097") ## End(Not run)
Fetches email addresses associated with an ORCID record. Note that email addresses are typically private and require authentication to access.
orcid_email(orcid_id, token = NULL)orcid_email(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Email addresses usually require authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/email
Email addresses are typically private and will only be returned if you have appropriate authentication permissions.
A data.table with the following columns:
ORCID identifier
Email address
Logical indicating if this is the primary email
Logical indicating if the email is verified
Visibility setting
Returns an empty data.table with the same structure if no emails are found or accessible.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch email (requires authentication) Sys.setenv(ORCID_TOKEN = "your-token-here") email <- orcid_email("0000-0002-1825-0097") print(email) ## End(Not run)## Not run: # Fetch email (requires authentication) Sys.setenv(ORCID_TOKEN = "your-token-here") email <- orcid_email("0000-0002-1825-0097") print(email) ## End(Not run)
Fetches employment records for a given ORCID identifier from the ORCID public API. Returns a structured data.table with employment history including organization names, roles, departments, and dates.
orcid_employments(orcid_id, token = NULL)orcid_employments(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/employments
The function respects ORCID API rate limits and includes appropriate User-Agent headers identifying the orcidtr package.
A data.table with the following columns:
ORCID identifier
Unique identifier for this employment record
Name of the employing organization
Department name (if available)
Job title or role
Employment start date (ISO format)
Employment end date (ISO format, NA if current)
City of organization
State/region of organization
Country of organization
Returns an empty data.table with the same structure if no employment records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_educations, orcid_works, orcid_fetch_record
## Not run: # Fetch employment history for a public ORCID emp <- orcid_employments("0000-0002-1825-0097") print(emp) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") emp <- orcid_employments("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch employment history for a public ORCID emp <- orcid_employments("0000-0002-1825-0097") print(emp) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") emp <- orcid_employments("0000-0002-1825-0097") ## End(Not run)
Fetches external identifier mappings for an ORCID record, such as Scopus Author ID, ResearcherID, Loop profile, and other researcher identification systems.
orcid_external_identifiers(orcid_id, token = NULL)orcid_external_identifiers(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/external-identifiers
A data.table with the following columns:
ORCID identifier
Unique identifier for this external ID
Type of external identifier (e.g., "Scopus Author ID")
The identifier value
URL to the external profile (if available)
Returns an empty data.table with the same structure if no external identifiers are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch external identifiers ext_ids <- orcid_external_identifiers("0000-0002-1825-0097") print(ext_ids) ## End(Not run)## Not run: # Fetch external identifiers ext_ids <- orcid_external_identifiers("0000-0002-1825-0097") print(ext_ids) ## End(Not run)
Fetches data for multiple ORCID identifiers. This is a convenience function that loops over a vector of ORCID iDs and fetches the specified section(s) for each. Results are combined into a single data.table.
orcid_fetch_many( orcid_ids, section = "works", token = NULL, stop_on_error = FALSE )orcid_fetch_many( orcid_ids, section = "works", token = NULL, stop_on_error = FALSE )
orcid_ids |
Character vector. Valid ORCID identifiers in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
section |
Character string. Section to fetch. One of: "employments", "educations", "distinctions", "invited-positions", "memberships", "qualifications", "services", "research-resources", "works", "funding", or "peer-reviews". |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
stop_on_error |
Logical. If TRUE, stops on the first error. If FALSE (default), continues processing and returns results for successful requests, issuing warnings for failures. |
This function makes one API request per ORCID identifier. Be mindful of rate limits when fetching data for many ORCIDs.
The function validates each ORCID identifier and normalizes formats before making requests.
For rate limit compliance, consider adding delays between large batches or using authenticated requests which typically have higher rate limits.
A data.table combining results from all successful requests. The orcid column identifies which ORCID each row belongs to.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_fetch_record, orcid_works, orcid_employments
## Not run: # Fetch works for multiple ORCIDs orcids <- c("0000-0002-1825-0097", "0000-0003-1419-2405") works <- orcid_fetch_many(orcids, section = "works") print(works) # Fetch employments for multiple ORCIDs employments <- orcid_fetch_many(orcids, section = "employments") # Stop on first error works <- orcid_fetch_many(orcids, section = "works", stop_on_error = TRUE) ## End(Not run)## Not run: # Fetch works for multiple ORCIDs orcids <- c("0000-0002-1825-0097", "0000-0003-1419-2405") works <- orcid_fetch_many(orcids, section = "works") print(works) # Fetch employments for multiple ORCIDs employments <- orcid_fetch_many(orcids, section = "employments") # Stop on first error works <- orcid_fetch_many(orcids, section = "works", stop_on_error = TRUE) ## End(Not run)
Fetches all public data for a given ORCID identifier, including employments, education, works, funding, and peer reviews. Returns a named list of data.table objects.
orcid_fetch_record( orcid_id, token = NULL, sections = c("employments", "educations", "works", "funding", "peer-reviews") )orcid_fetch_record( orcid_id, token = NULL, sections = c("employments", "educations", "works", "funding", "peer-reviews") )
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
sections |
Character vector. Sections to fetch. Default is the most commonly used sections: c("employments", "educations", "works", "funding", "peer-reviews"). Available sections are:
You can specify a subset to fetch only specific sections. |
This is a convenience function that calls individual API functions for each section. Each section requires a separate API request.
To minimize API calls, specify only the sections you need using the
sections parameter.
A named list with the following possible elements (each a data.table):
Employment history
Education history
Distinctions and honors
Invited positions
Professional memberships
Qualifications
Service activities
Research resources
Works/publications
Funding records
Peer review activities
Complete person data
Biography
Keywords
Researcher URLs
External identifiers
Other names
Address information
Email addresses
Empty data.tables are returned for sections with no data.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_fetch_many, orcid_employments, orcid_works
## Not run: # Fetch complete record for a public ORCID record <- orcid_fetch_record("0000-0002-1825-0097") names(record) record$works record$employments # Fetch only works and funding record <- orcid_fetch_record( "0000-0002-1825-0097", sections = c("works", "funding") ) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") record <- orcid_fetch_record("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch complete record for a public ORCID record <- orcid_fetch_record("0000-0002-1825-0097") names(record) record$works record$employments # Fetch only works and funding record <- orcid_fetch_record( "0000-0002-1825-0097", sections = c("works", "funding") ) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") record <- orcid_fetch_record("0000-0002-1825-0097") ## End(Not run)
Fetches funding records for a given ORCID identifier from the ORCID public API. Returns a structured data.table with funding details including grant titles, funding organizations, amounts, and dates.
orcid_funding(orcid_id, token = NULL)orcid_funding(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/fundings
The function respects ORCID API rate limits and includes appropriate User-Agent headers identifying the orcidtr package.
A data.table with the following columns:
ORCID identifier
Unique identifier for this funding record
Title of the funded project
Type of funding (e.g., grant, contract, award)
Name of the funding organization
Funding start date (ISO format)
Funding end date (ISO format)
Funding amount (if available)
Currency code (e.g., USD, EUR)
Returns an empty data.table with the same structure if no funding records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_works, orcid_employments, orcid_fetch_record
## Not run: # Fetch funding records for a public ORCID funding <- orcid_funding("0000-0002-1825-0097") print(funding) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") funding <- orcid_funding("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch funding records for a public ORCID funding <- orcid_funding("0000-0002-1825-0097") print(funding) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") funding <- orcid_funding("0000-0002-1825-0097") ## End(Not run)
Fetches invited position records for an ORCID identifier, such as visiting professorships, guest lectureships, etc.
orcid_invited_positions(orcid_id, token = NULL)orcid_invited_positions(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/invited-positions
A data.table with the following columns:
ORCID identifier
Unique identifier for this invited position record
Name of the hosting organization
Department name (if available)
Position title
Position start date (ISO format)
Position end date (ISO format)
City of organization
State/region of organization
Country of organization
Returns an empty data.table with the same structure if no invited position records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_employments, orcid_activities
## Not run: # Fetch invited positions positions <- orcid_invited_positions("0000-0002-1825-0097") print(positions) ## End(Not run)## Not run: # Fetch invited positions positions <- orcid_invited_positions("0000-0002-1825-0097") print(positions) ## End(Not run)
Fetches research keywords associated with an ORCID record. Keywords help identify research areas and interests.
orcid_keywords(orcid_id, token = NULL)orcid_keywords(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/keywords
A data.table with the following columns:
ORCID identifier
Unique identifier for this keyword
Keyword text
Returns an empty data.table with the same structure if no keywords are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch keywords keywords <- orcid_keywords("0000-0002-1825-0097") print(keywords) ## End(Not run)## Not run: # Fetch keywords keywords <- orcid_keywords("0000-0002-1825-0097") print(keywords) ## End(Not run)
Fetches professional membership records for an ORCID identifier, such as memberships in professional societies, organizations, etc.
orcid_memberships(orcid_id, token = NULL)orcid_memberships(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/memberships
A data.table with the following columns:
ORCID identifier
Unique identifier for this membership record
Name of the organization
Department name (if available)
Membership role or title
Membership start date (ISO format)
Membership end date (ISO format)
City of organization
State/region of organization
Country of organization
Returns an empty data.table with the same structure if no membership records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_employments, orcid_activities
## Not run: # Fetch memberships memberships <- orcid_memberships("0000-0002-1825-0097") print(memberships) ## End(Not run)## Not run: # Fetch memberships memberships <- orcid_memberships("0000-0002-1825-0097") print(memberships) ## End(Not run)
Fetches alternative names (also known as, published as, etc.) associated with an ORCID record.
orcid_other_names(orcid_id, token = NULL)orcid_other_names(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/other-names
A data.table with the following columns:
ORCID identifier
Unique identifier for this name
Alternative name
Returns an empty data.table with the same structure if no other names are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch other names other_names <- orcid_other_names("0000-0002-1825-0097") print(other_names) ## End(Not run)## Not run: # Fetch other names other_names <- orcid_other_names("0000-0002-1825-0097") print(other_names) ## End(Not run)
Fetches peer review records for a given ORCID identifier from the ORCID public API. Returns a structured data.table with peer review activities including reviewer roles, review types, and organizations.
orcid_peer_reviews(orcid_id, token = NULL)orcid_peer_reviews(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/peer-reviews
Peer review activities can include journal article reviews, conference paper reviews, grant reviews, and other forms of scholarly evaluation.
The function respects ORCID API rate limits and includes appropriate User-Agent headers identifying the orcidtr package.
A data.table with the following columns:
ORCID identifier
Unique identifier for this peer review record
Role of the reviewer (e.g., reviewer, editor)
Type of review (e.g., review, evaluation)
Date the review was completed (ISO format)
Name of the convening organization (e.g., journal, conference)
Returns an empty data.table with the same structure if no peer review records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_works, orcid_funding, orcid_fetch_record
## Not run: # Fetch peer review records for a public ORCID reviews <- orcid_peer_reviews("0000-0002-1825-0097") print(reviews) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") reviews <- orcid_peer_reviews("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch peer review records for a public ORCID reviews <- orcid_peer_reviews("0000-0002-1825-0097") print(reviews) # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") reviews <- orcid_peer_reviews("0000-0002-1825-0097") ## End(Not run)
Fetches comprehensive personal information including name, biography, keywords, researcher URLs, and other public profile data from an ORCID record.
orcid_person(orcid_id, token = NULL)orcid_person(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/person
This endpoint provides the most comprehensive biographical information in a single request, including name, biography, keywords, URLs, addresses, emails, and external identifiers.
A data.table with the following columns:
ORCID identifier
Given (first) name
Family (last) name
Published/credit name (if provided)
Biography text
Comma-separated research keywords
Comma-separated professional URLs
Country of residence
Returns a data.table with NA values for missing fields.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_bio, orcid_keywords, orcid_researcher_urls
## Not run: # Fetch complete person data person <- orcid_person("0000-0002-1825-0097") print(person) # Access specific fields person$biography person$keywords # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") person <- orcid_person("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch complete person data person <- orcid_person("0000-0002-1825-0097") print(person) # Access specific fields person$biography person$keywords # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") person <- orcid_person("0000-0002-1825-0097") ## End(Not run)
Checks the health and availability of the ORCID public API. Useful for diagnostics and ensuring the API is accessible before making requests.
orcid_ping()orcid_ping()
This function queries the ORCID API status endpoint:
https://pub.orcid.org/v3.0/status
Character string with API status message (typically "OK" if healthy)
## Not run: # Check API status status <- orcid_ping() print(status) ## End(Not run)## Not run: # Check API status status <- orcid_ping() print(status) ## End(Not run)
Fetches professional qualification records for an ORCID identifier, such as licenses, certifications, etc.
orcid_qualifications(orcid_id, token = NULL)orcid_qualifications(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/qualifications
A data.table with the following columns:
ORCID identifier
Unique identifier for this qualification record
Name of the issuing organization
Department name (if available)
Qualification title
Qualification date (ISO format)
Expiration date (ISO format, if applicable)
City of organization
State/region of organization
Country of organization
Returns an empty data.table with the same structure if no qualification records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_educations, orcid_activities
## Not run: # Fetch qualifications qualifications <- orcid_qualifications("0000-0002-1825-0097") print(qualifications) ## End(Not run)## Not run: # Fetch qualifications qualifications <- orcid_qualifications("0000-0002-1825-0097") print(qualifications) ## End(Not run)
Fetches research resource records for an ORCID identifier, such as facilities, equipment, databases, collections, etc.
orcid_research_resources(orcid_id, token = NULL)orcid_research_resources(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/research-resources
Note: Research resources have a different structure than other affiliations, with a focus on the resource itself rather than organizational affiliations.
A data.table with the following columns:
ORCID identifier
Unique identifier for this resource record
Resource title/name
Hosting organizations (comma-separated)
Resource start date (ISO format)
Resource end date (ISO format)
Returns an empty data.table with the same structure if no research resource records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
## Not run: # Fetch research resources resources <- orcid_research_resources("0000-0002-1825-0097") print(resources) ## End(Not run)## Not run: # Fetch research resources resources <- orcid_research_resources("0000-0002-1825-0097") print(resources) ## End(Not run)
Fetches professional and personal URLs associated with an ORCID record, such as personal websites, institutional profiles, social media, etc.
orcid_researcher_urls(orcid_id, token = NULL)orcid_researcher_urls(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/researcher-urls
A data.table with the following columns:
ORCID identifier
Unique identifier for this URL
Name/label for the URL
The actual URL
Returns an empty data.table with the same structure if no URLs are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_person, orcid_external_identifiers
## Not run: # Fetch researcher URLs urls <- orcid_researcher_urls("0000-0002-1825-0097") print(urls) ## End(Not run)## Not run: # Fetch researcher URLs urls <- orcid_researcher_urls("0000-0002-1825-0097") print(urls) ## End(Not run)
Search for ORCID profiles using named parameters instead of Solr query
syntax. This function provides a more intuitive interface than orcid.
orcid_search( given_name = NULL, family_name = NULL, affiliation_org = NULL, email = NULL, keywords = NULL, digital_object_ids = NULL, other_name = NULL, credit_name = NULL, rows = 10, start = 0, token = NULL, ... )orcid_search( given_name = NULL, family_name = NULL, affiliation_org = NULL, email = NULL, keywords = NULL, digital_object_ids = NULL, other_name = NULL, credit_name = NULL, rows = 10, start = 0, token = NULL, ... )
given_name |
Character string. Given (first) name to search for. |
family_name |
Character string. Family (last) name to search for. |
affiliation_org |
Character string. Organization name. |
email |
Character string. Email address (supports wildcards like *@example.org). |
keywords |
Character vector. One or more keywords to search for. |
digital_object_ids |
Character string. DOI or DOI pattern. |
other_name |
Character string. Alternative name. |
credit_name |
Character string. Credit/published name. |
rows |
Integer. Number of results to return (default: 10). |
start |
Integer. Starting position for pagination (default: 0). |
token |
Character string or NULL. Optional API token. |
... |
Additional parameters passed to |
This function constructs a Solr query from the provided parameters and
calls orcid internally. Multiple parameters are combined
with AND logic. Uses the expanded-search endpoint to return name information.
A data.table of search results (same structure as orcid).
The total number of matches is available as attr(result, "found").
orcid for more flexible query syntax
## Not run: # Search by name results <- orcid_search( family_name = "Fabbri", given_name = "Lorenzo" ) # Search by affiliation results <- orcid_search(affiliation_org = "Stanford University") # Search by keywords results <- orcid_search(keywords = c("machine learning", "genomics")) # Combine multiple criteria results <- orcid_search( family_name = "Smith", affiliation_org = "Harvard", rows = 20 ) ## End(Not run)## Not run: # Search by name results <- orcid_search( family_name = "Fabbri", given_name = "Lorenzo" ) # Search by affiliation results <- orcid_search(affiliation_org = "Stanford University") # Search by keywords results <- orcid_search(keywords = c("machine learning", "genomics")) # Combine multiple criteria results <- orcid_search( family_name = "Smith", affiliation_org = "Harvard", rows = 20 ) ## End(Not run)
Fetches service activity records for an ORCID identifier, such as committee memberships, editorial board positions, peer review activities, etc.
orcid_services(orcid_id, token = NULL)orcid_services(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/services
A data.table with the following columns:
ORCID identifier
Unique identifier for this service record
Name of the organization
Department name (if available)
Service role or title
Service start date (ISO format)
Service end date (ISO format)
City of organization
State/region of organization
Country of organization
Returns an empty data.table with the same structure if no service records are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_peer_reviews, orcid_activities
## Not run: # Fetch services services <- orcid_services("0000-0002-1825-0097") print(services) ## End(Not run)## Not run: # Fetch services services <- orcid_services("0000-0002-1825-0097") print(services) ## End(Not run)
Fetches work records (publications, datasets, preprints, etc.) for a given ORCID identifier from the ORCID public API. Returns a structured data.table with work details including titles, types, DOIs, and publication dates.
orcid_works(orcid_id, token = NULL)orcid_works(orcid_id, token = NULL)
orcid_id |
Character string. A valid ORCID identifier in the format XXXX-XXXX-XXXX-XXXX. Can also handle URLs like https://orcid.org/XXXX-XXXX-XXXX-XXXX. |
token |
Character string or NULL. Optional API token for authenticated requests. If NULL (default), checks the ORCID_TOKEN environment variable. Most public data is accessible without authentication. |
This function queries the ORCID public API endpoint:
https://pub.orcid.org/v3.0/{orcid-id}/works
Works can include journal articles, books, datasets, conference papers, preprints, posters, and other scholarly outputs. The type field indicates the specific category of each work.
The function respects ORCID API rate limits and includes appropriate User-Agent headers identifying the orcidtr package.
A data.table with the following columns:
ORCID identifier
Unique identifier for this work record
Title of the work
Type of work. Common values include: "journal-article", "conference-paper", "conference-poster", "book", "book-chapter", "dissertation", "data-set", "preprint", "report", "working-paper", "other". Use this field to distinguish between different publication types.
Publication date (ISO format)
Journal or venue name (if available)
Digital Object Identifier (if available)
URL to the work (if available)
Returns an empty data.table with the same structure if no works are found.
ORCID API Documentation: https://info.orcid.org/documentation/api-tutorials/
orcid_employments, orcid_funding, orcid_fetch_record
## Not run: # Fetch works for a public ORCID works <- orcid_works("0000-0002-1825-0097") print(works) # Filter by type to distinguish between different publication types journal_articles <- works[type == "journal-article"] conference_posters <- works[type == "conference-poster"] datasets <- works[type == "data-set"] preprints <- works[type == "preprint"] # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") works <- orcid_works("0000-0002-1825-0097") ## End(Not run)## Not run: # Fetch works for a public ORCID works <- orcid_works("0000-0002-1825-0097") print(works) # Filter by type to distinguish between different publication types journal_articles <- works[type == "journal-article"] conference_posters <- works[type == "conference-poster"] datasets <- works[type == "data-set"] preprints <- works[type == "preprint"] # With authentication Sys.setenv(ORCID_TOKEN = "your-token-here") works <- orcid_works("0000-0002-1825-0097") ## End(Not run)