API Documentation
← All tools
GET/api/v1/researchers/:authorId/works

Researcher Works

researchersNo success wrapper

Paginated publication list (OpenAlex works) for a researcher already resolved to an OpenAlex author: title, full DOI url, type, publication_date, publication_year, venue, cited_by_count, is_open_access. Use this for 'what has this PI published', citation-impact and publication-trend questions about one author; use Researcher Profile instead for identity metadata, h-index and trial counts. The author id must come from a real source - the Trial Full Record tool's data.researchers[].author_key, a Researcher Profile result, or the user - there is no name-to-id resolution, so never invent one. meta.totalItems is the exact count for the applied filters (quote it; never recount a page). NO abstracts are returned here (they belong to the deferred works detail endpoint) - do not claim to have abstracts from this tool.

When to use it

  • list a principal investigator's publications (most-cited or most-recent first)
  • the publications behind a trial's PI (trial -> PI -> publications chain)
  • citation-impact view of one researcher's body of work

Getting started

Base URL

https://app.caelrith.com/api/v1/tools

Authentication

Include your API key in the x-api-key header.

Parameters

Path parameters

ParameterTypeRequiredDescription
authorId(path)stringYesOpenAlex author id of a researcher resolved by the pipeline; prefer the flat forms A5027151969 or openalex_A5027151969 (the https URL form is accepted but gets URL-encoded on the wire).

Query parameters

ParameterTypeRequiredDescription
pageintegerNoPage number (default 1).
Range: 1 to ∞
limitintegerNoResults per page (1-100, default 20).
Range: 1 to 100
sortstringNoSort field (default publication_date). cited_by_count = citation impact; publication_date = chronology.
Allowed values: publication_date, cited_by_count
orderstringNoSort direction (default desc).
Allowed values: asc, desc
publication_date_fromstringNoYYYY-MM-DD; matches works published on or after this date. Must be <= publication_date_to - an inverted window returns HTTP 400.
publication_date_tostringNoYYYY-MM-DD; matches works published on or before this date.
typestringNoOpenAlex work type, case-insensitive (common values: article, review, preprint, conference-paper, book-chapter, editorial, letter). Unknown values are rejected with HTTP 400.

Example request

curl -H "x-api-key: YOUR_API_KEY" \
  "https://app.caelrith.com/api/v1/researchers/{authorId}/works"

Response envelope

This endpoint returns an implicit 2xx response - there is no success flag in the body.

{
  "data": { /* payload */ },
  "meta": { /* pagination, totals */ }
}

// No "success" flag on this endpoint - any 2xx JSON is a success.

Response shape

List responsePUBLICATIONS

Payload: data — Publications

Exact total: meta.totalItems

Pagination: server-side via page and limit

Common row fields

FieldDescription
work_idWork ID
titleTitle
doiDOI
typeType
publication_datePublished
venueVenue
cited_by_countCitations
is_open_accessOpen Access

Empty results: No matching rows (HTTP 200)

OpenAlex-backed publication list for one resolved PI. meta.author (author_key / name / orcid) is the identity-verification hook - check it against the requested researcher before answering (same pattern as sponsors.profile); a 404 means the author is not in the resolved-researcher registry - report that rather than guessing another id (no name-to-id resolution). meta.totalItems is the EXACT count for the applied filters: quote it, never a page length; a page beyond the end returns 200 with an empty data list and hasMore=false, never 404. meta.fetched_at is the snapshot cache write time (per-author 24h cache, citations drift slowly) - qualify citation numbers with it when precision matters. NO abstracts in this list response - abstracts belong to the deferred works detail endpoint; do not claim to have them. The first call of a day for an author may take a few seconds to build the snapshot; repeats are warm.

Catalog version 0.0.0-generated · generated from the API source