A browser-based bibliometric tool for surfacing the most-cited papers published in any academic journal within a user-defined time window, powered by the OpenAlex open scholarly metadata API.
Select a journal, set a year range and work type, and the tool returns up to 100 papers ranked by citation count — with FWCI, open-access status, authorship, and cascading topic filters, all client-side.
Live demo: https://teowaits.github.io/citations-summoner/
| Feature | Detail |
|---|---|
| Journal autocomplete | Resolves journal names to OpenAlex Source IDs; debounced search with ISSN display |
| Year range | Configurable from/to year (1990 – present) |
| Work type filter | All · Research Articles (type:article) · Reviews (type:review) |
| Top 100 most-cited papers | Single API page, sorted by cited_by_count descending |
| Period totals | Total research articles and reviews published in the selected period (parallel API calls) |
| Sort | Citation count · FWCI · Year — all client-side, no re-fetch |
| Topic / subfield filters | Cascading Subfield → Topic pickers built from topics[0] of results; client-side filtering |
| Title-phrase filter | Fetch-time OpenAlex title.search (stemmed); multi-phrase OR/AND; quick-add presets; total-match count |
| FWCI | Field-Weighted Citation Impact displayed per paper; null shown as — |
| Open access badge | OA status disaggregated (gold/diamond/hybrid vs green vs bronze/closed) |
| Retracted badge | Amber RETRACTED badge; column hidden when no retractions in results |
| Corresponding author | ★ prefix on corresponding authors; collapsed display for large author lists |
| CSV export (papers) | Visible (filtered) rows; title cell encodes full search parameters; UTF-8 BOM for Excel |
| CSV export (authors) | Deduped author list with OpenAlex A… IDs for Published With Us Yet? |
No build step. No dependencies. Open index.html directly (classic <script src> files under src/ — no bundler):
git clone https://github.com/teowaits/citations-summoner.git
cd citations-summoner
cp src/config.example.js src/config.local.js # optional — see API key below
open index.html # macOS
# or: xdg-open index.html (Linux)
# or: start index.html (Windows)The app works without config.local.js (mailto-only, same as before). A missing local config file may log a 404 in the console; that is harmless.
OpenAlex meters usage. Without a key you are on the testing tier (~$0.10/day). A free key at openalex.org/settings/api raises the budget to $1/day. Paste it into src/config.local.js (gitignored):
var OPENALEX_API_KEY = 'your_actual_key_here';All OpenAlex calls pick up api_key= via the shared apiFetch wrapper.
| Request type | Examples | Cost per call |
|---|---|---|
| List + filter | Top papers, type counts, topic lenses over fetched rows | $0.0001 |
| Search | Journal autocomplete, title.search phrase filter |
$0.001 |
Title-phrase search is a search-tier call (10× a list/filter call). Phrase-match count uses the same filter without sort=.
Edit PRESET_TITLE_PHRASES in src/config.js (duplicated from Gem Finder's src/constants.js — keep both in sync when changing either):
const PRESET_TITLE_PHRASES = [
'closed loop',
{ label: 'XC regularizers', phrase: 'Physical exact conditions as regularizers…' },
];- Journal resolution — journal names are resolved to OpenAlex Source IDs via the
/sourcessearch endpoint withfilter=type:journal. - Works fetch — up to 100 works are retrieved from
/workssorted bycited_by_count:desc, filtered by source, year range, optional work type, and optionaltitle.searchphrases (OR pipe-joined or AND as separate clauses). Citation ranking is computed within the phrase-matched subset when a title filter is active. - Period totals — two lightweight
/works?per_page=1calls (one fortype:article, one fortype:review) run concurrently with the main fetch to surface total publication counts for the period. - Phrase-match count — when title phrases are set, a third
per_page=1call readsmeta.countso the UI can show “12 total matches” vs “Top 100 of 340 total matches”. - Topic index — a subfield → topic index is built in-memory from the
topics[0]field of each returned work (client-side lens over the fetched page — unlike title phrases). - Client-side operations — subfield/topic filtering, sorting, and CSV export operate on the fetched data with no re-fetch.
select=field filtering to minimise response payload&mailto=polite crawling identifier on every request- Retry with exponential backoff on 429 and 5xx responses
- Concurrent
Promise.allfor the type-count pair to avoid serial latency
The tool fetches a single page of 100 results. Journals with fewer than 100 publications in the selected period return all available papers. Cursor pagination is intentionally not implemented — the goal is a fast, focused overview, not exhaustive enumeration.
All scholarly metadata is provided by OpenAlex — a fully open, free index of global research output maintained by OurResearch. OpenAlex data is released under the CC0 1.0 Universal public domain dedication.
Priem, J., Piwowar, H., & Orr, R. (2022). OpenAlex: A fully-open index of the world's research. arXiv. https://doi.org/10.48550/arXiv.2205.01833
- Run Citations Summoner on a competitor or source journal to surface highly cited papers in a period.
- Click Export authors CSV — one row per author (corresponding authors when flagged; otherwise the last author on the list), deduped across visible papers.
- Upload that file in Published With Us Yet? to see which authors have (or have not) already published in your target journal.
The author export uses headers compatible with Published With Us Yet? (Rank, Name, OpenAlex ID, optional Institution, Note). The paper export remains separate (Work OpenAlex ID for papers, not authors).
| Tool | What it does |
|---|---|
| Journal Overlap Finder | Authorship overlap between two sets of journals |
| Citations Summoner | Most-cited papers for any journal and time window |
| Published With Us Yet? | Check whether author IDs already published in your journal |
| Journal Profile Analyser | (coming soon) |
| Gem Finder | (coming soon) |
This tool was built with the assistance of Claude Sonnet 4.6 by Anthropic, following OpenAlex API best practices:
- Two-step journal resolution (search → Source ID) rather than filtering by name
select=field filtering to minimise response payload- Concurrent parallel API calls to avoid serial request latency
- Client-side topic indexing and filtering to avoid redundant API calls
- Retry with exponential backoff on 429 / 5xx errors
&mailto=identifier on all requests for polite crawling
| Version | Date | Changes |
|---|---|---|
| 1.2.0 | 2026-07-27 | Title-phrase fetch-time filter (OR/AND, presets, phrase-match count); OpenAlex API key via config.local.js; split into classic src/*.js scripts; OA status disaggregation; optional Crossref type check |
| 1.1.0 | 2026-05-21 | Author CSV export for Published With Us Yet?; paper CSV column renamed to Work OpenAlex ID; ASCII * for corresponding authors in paper CSV; UTF-8 BOM on exports |
| 1.0.0 | 2026-05-20 | Initial release — journal autocomplete, year range and work type filters, top 100 most-cited papers, FWCI, OA and retraction badges, period article/review totals, cascading subfield/topic filters, corresponding-author display, CSV export with search parameters |