Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub release (latest by date) GitHub Downloads all releases GitHub Downloads (latest release)

Citation Tally

zotero target version Using Zotero Plugin Template

Displays citation counts for Zotero library items.

Screenshot

This is a plugin for Zotero, a research source management tool. The Citation Tally plugin automatically fetches and displays citation counts for research papers in your library from multiple academic databases.

Plugin Functions

  • Automatic Citation Tracking - Fetches citation counts when new items are added to your library
  • Smart Auto-Updates - Keeps citation data current with configurable update schedules
  • Visual Integration - Adds a sortable "Citations" column to your Zotero library view
  • Multiple Databases - Shows counts from Crossref, Semantic Scholar, and INSPIRE side by side
  • Intelligent Rate Limiting - Respects API limits with adaptive throttling
  • Persistent Storage - Stores citation data in item's Extra field for sync compatibility

Please post any bugs, questions, or feature requests in the GitHub issues.

Installation

  • Download the plugin (the .xpi file) from the latest release
  • Open Zotero
  • From Tools → Plugins
  • Select Install Plugin From File... from the gear icon ⛭
  • Choose the .xpi file you downloaded (e.g. citation-tally.xpi)
  • Restart Zotero

Note

The last release with support for Zotero 7 was v0.0.11.

The last release with support for Zotero 8 was v0.0.12.

Setup and Configuration

Citation Tally tallies bibliographic items as you add them. It does not automatically backfill items already in your libraries. To update existing items in My Library, run Tools → Retally outdated item citations, which scans for counts that are missing or older than the configured cutoff. For editable items in other libraries, select them, right-click, and choose "Update Citation Tallies".

Initial Setup

  • After installation, restart the Zotero app. The plugin adds a "Citations" column to your Zotero library view.

    • If you don't see the column, right-click the column titles and check "Citations".

      show Citations column

  • Configure the plugin from Zotero → Settings → Citation Tally on macOS, or Edit → Settings → Citation Tally on Windows and Linux.

Automatic Behavior

  • New Items: Citation counts are fetched for newly added bibliographic items with DOIs or arXiv IDs, in My Library or a group library you can edit. Feed items are skipped. This is on by default.
  • Auto-Updates: Missing and outdated counts in My Library can be refreshed the next time Zotero starts. This is off by default.

Manual Actions

  • Update Selected Items: Right-click → "Update Citation Tallies"

    • NB Selected-item updates bypass the retry schedule, and can update editable items outside My Library
  • Update All Outdated: Tools menu → "Retally outdated item citations"

    • Scans My Library for counts that are missing or older than the configured cutoff. This runs whether or not automatic updates are switched on.

Configuration Options

Citation Databases
  • Databases: Which databases to use. Their counts appear in the Citations column in the order you list them, separated by |. Hover a cell to see which database each number came from.
    • Default: crossref, semanticscholar
    • For physics papers you might prefer inspire, crossref, semanticscholar
Automatic Updates
  • Fetch tallies for new items: On by default. Turn it off to stop counts being fetched as you add items.
  • Automatic updates: Off by default. Set it to refresh missing and outdated counts in My Library the next time Zotero starts.
  • Consider citations outdated after: How old a count can be before it is considered outdated — 3, 6, 12, or 24 months. The default is 6. This applies both to startup updates and to Tools → Retally outdated item citations.
Display Options
  • Colors: On by default. Each database's count gets its own color when more than one database is shown; turn it off to display every count in the default color.
API Keys
  • Semantic Scholar API key (optional, but recommended): Enter a key under Settings → Citation Tally → API keys. Without one, requests share Semantic Scholar's anonymous pool with every other client using it, so lookups are slower and less reliable.
    • Request a key at semanticscholar.org/product/api.
    • Zotero stores the key unencrypted in its local preferences. Citation Tally sends it only to Semantic Scholar.
    • If Semantic Scholar rejects the key twice in a row, the plugin stops using it, carries on anonymously, and tries it again after a cooldown. A single rejection triggers one confirming request rather than pausing the key.

Troubleshooting

Common Issues
  • No citation data found: Citation Tally looks items up by DOI or arXiv ID only, not by title, ISBN, PMID, or a database's own record ID. Journal articles and conference papers usually carry a DOI; web pages, theses, and datasets often carry neither identifier.
  • Updates are slow: Each database paces its own requests and the plugin backs off further when a server throttles it, so a large update can take a while. See Rate Limiting and Retries.
  • Semantic Scholar has been turned off: If Zotero's plugin runtime doesn't provide the web APIs the Semantic Scholar client needs, Citation Tally disables that database, shows a notice, and carries on with the other databases you have configured.
  • Network issues: Ensure Zotero has internet access and your firewall isn't blocking requests to academic databases.

Advanced Behavior

Retries, rate limiting, and identifiers

Retries

Startup updates and Tools → Retally outdated item citations both scan My Library, and both back off when a database comes up empty: 7 days after the first failure, then 30, then 90, then 180 days for every attempt after that. API errors hit during a scan follow the same schedule.

Rate Limiting

Crossref and INSPIRE each start at one request per second, and are throttled independently. A rate-limit error multiplies the delay by 1.5, up to ten times the base; each success eases it back by 0.9, never below the base.

Semantic Scholar runs its own scheduler: at least 1 second between requests made with an API key, and at least 3 seconds without one. Transient failures back off exponentially with full jitter, never sooner than the server's Retry-After.

Other Behavior

  • If an item has no usable identifier for a database, a library scan skips that item–database pair for the rest of the Zotero session. Selected-item updates do not consult this cache.
  • A library scan does not start updating items if Zotero is already offline, and stops before the next item if Zotero goes offline during the run.
  • Retry records for deleted items are cleared out shortly after startup and every 30 days. Counts already written to the Extra field are left alone.

Supported Identifiers

Crossref needs a DOI. INSPIRE and Semantic Scholar can also use an arXiv ID.

Citation Tally reads the DOI field, then looks for an arXiv ID in Archive ID, Report Number, Extra, URL, and Call Number, in that order.

Supported Databases

  • Crossref: DOI registration agency; broad coverage of journal and conference publications
  • Semantic Scholar: Academic search index run by AI2, with citation graph data
  • INSPIRE: High-energy physics literature

Related Projects

Notes

GitHub: Source code repository

This extension uses the zotero-plugin-template.

License

Distributed under the GNU Affero General Public License v3.0.

Author

Personal Website Bluesky

About

Plugin that tallies citation counts for Zotero items.

Topics

Resources

Stars

128 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages