Skip to content

Consumer API — Persons Endpoints

Migrated from root technical docs.

Complete reference for all endpoints that retrieve person/researcher data through the public Consumer API.

The Consumer API provides three endpoints for fetching person (researcher) data. All endpoints require installation credentials with the people.read scope.

MethodEndpointDescription
GET/v1/peopleList all people with at least one visible publication
GET/v1/people/:orcidFetch a single person by ORCID ID
GET/v1/people/:orcid/publicationsList all visible publications for a person

GET /v1/people
ParameterTypeDefaultMaxDescription
qstringSearch term (queries name and ORCID ID)
pageinteger11-based page number for pagination
per_pageinteger20100Items per page
{
"people": [
{
"orcid_id": "0000-0001-2345-6789",
"name": {
"en": "John Doe",
"pt": "João Silva"
},
"biography": {
"en": "Researcher in artificial intelligence and machine learning",
"pt": null
},
"last_fetched_at": 1704067200,
"sync_status": "complete",
"publication_count": 42
}
],
"page": 1,
"per_page": 20,
"total": 150,
"pages": 8,
"q": "john"
}
FieldTypeDescription
orcid_idstringORCID identifier (e.g., 0000-0001-2345-6789)
nameobjectPerson’s name, keyed by language code (en, pt, etc.). May contain null values for locales without data.
biographyobjectPerson’s biography, keyed by language code. May be null or contain null values per locale.
last_fetched_atintegerUnix timestamp when this person’s ORCID profile was last synced
sync_statusstringStatus of ORCID sync: pending, processing, complete, or failed
publication_countintegerTotal number of visible, non-deleted publications for this person
FieldTypeDescription
pageintegerCurrent page (1-based)
per_pageintegerItems per page
totalintegerTotal count of matching people
pagesintegerTotal number of pages
qstringSearch query used (empty string if none)
Terminal window
# List first page of all people
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
https://api.legaciti.org/v1/people
# Search for "alice"
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
"https://api.legaciti.org/v1/people?q=alice"
# Get 50 items per page, page 2
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
"https://api.legaciti.org/v1/people?page=2&per_page=50"

GET /v1/people/:orcid
ParameterTypeDescription
orcidstringORCID identifier (e.g., 0000-0001-2345-6789)
{
"orcid_id": "0000-0001-2345-6789",
"name": {
"en": "John Doe",
"pt": "João Silva"
},
"biography": {
"en": "Researcher in artificial intelligence and machine learning",
"pt": null
},
"last_fetched_at": 1704067200,
"sync_status": "complete",
"publication_count": 42
}
FieldTypeDescription
orcid_idstringORCID identifier
nameobjectPerson’s name by language code (en, pt, etc.)
biographyobjectPerson’s biography by language code
last_fetched_atintegerUnix timestamp of last ORCID sync
sync_statusstringSync status: pending, processing, complete, or failed
publication_countintegerTotal number of visible publications
Terminal window
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
https://api.legaciti.org/v1/people/0000-0001-2345-6789

GET /v1/people/:orcid/publications
ParameterTypeDescription
orcidstringORCID identifier (e.g., 0000-0001-2345-6789)
ParameterTypeDefaultDescription
pageinteger11-based page number
per_pageinteger20Items per page (max 100)
sortstringlast_fetched_atSort field: last_fetched_at, publication_date, or cited_by_count
dirstringdescSort direction: asc or desc
{
"publications": [
{
"doi": "10.1234/example.doi",
"title": {
"en": "Deep Learning Approaches to Natural Language Processing"
},
"doi_url": "https://doi.org/10.1234/example.doi",
"publication_date": "2023-12-31",
"publication_year": 2023,
"publication_type": "journal-article",
"cited_by_count": 15,
"last_fetched_at": 1704067200
}
],
"page": 1,
"per_page": 20,
"total": 42,
"pages": 3
}
FieldTypeDescription
doistringDigital Object Identifier (normalized, lowercase)
titleobjectPublication title, keyed by language code (en, etc.)
doi_urlstringFull URL for the DOI (https://doi.org/{doi})
publication_datestringPublication date in ISO 8601 format (YYYY-MM-DD)
publication_yearintegerPublication year
publication_typestringType of publication (e.g., journal-article, book, conference-paper, dissertation)
cited_by_countintegerNumber of times cited (from OpenAlex or Crossref)
last_fetched_atintegerUnix timestamp when this publication was last enriched
FieldTypeDescription
pageintegerCurrent page (1-based)
per_pageintegerItems per page
totalintegerTotal publications for this person
pagesintegerTotal number of pages
Terminal window
# List first page of person's publications
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
https://api.legaciti.org/v1/people/0000-0001-2345-6789/publications
# Sort by citation count (descending), 50 per page
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
"https://api.legaciti.org/v1/people/0000-0001-2345-6789/publications?sort=cited_by_count&per_page=50"
# Sort by publication date (ascending)
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
"https://api.legaciti.org/v1/people/0000-0001-2345-6789/publications?sort=publication_date&dir=asc"

Person Fields (Available in all person endpoints)

Section titled “Person Fields (Available in all person endpoints)”

Identifiers

  • orcid_id — ORCID identifier

Profile Data

  • name — Person’s name (multilingual object: en, pt, etc.)
  • biography — Person’s biography (multilingual object or null)

Sync Metadata

  • last_fetched_at — Unix timestamp of last ORCID profile sync
  • sync_status — Status of ORCID synchronization

Statistics

  • publication_count — Total visible publications count

Publication Fields (Available in person’s publications endpoint)

Section titled “Publication Fields (Available in person’s publications endpoint)”

Identifiers

  • doi — Digital Object Identifier (normalized)

Metadata

  • title — Publication title (multilingual object)
  • publication_date — Date in ISO 8601 format
  • publication_year — Year as integer
  • publication_type — Type classification (e.g., journal-article)

Links

  • doi_url — Full DOI URL

Metrics

  • cited_by_count — Citation count

Sync Metadata

  • last_fetched_at — Unix timestamp of last enrichment

All endpoints require installation credentials with the people.read scope.

Terminal window
X-API-Key: YOUR_INSTALLATION_CREDENTIAL

For a full authentication reference and troubleshooting matrix, see Consumer Auth.


CodeDescription
200Success
400Invalid query parameters (e.g., per_page exceeds max)
401Missing API key (missing_api_key) or invalid installation credential
403Insufficient permissions (people.read scope required)
404Person not found (for single person endpoint)
429Rate limit exceeded
500Server error

Rate limits are applied per installation credential. See rate limit headers in responses:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1704153600

  • Start with page 1
  • Use total and pages to determine total results
  • Limit per_page to 100 for performance
  • Cache responses where possible to minimize API calls
Terminal window
# Example: Fetch all people in batches
page=1
while [ $page -le $total_pages ]; do
curl -H "X-API-Key: YOUR_INSTALLATION_CREDENTIAL" \
"https://api.legaciti.org/v1/people?page=$page&per_page=100"
((page++))
done