Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Research Article Fetcher

Svend GundestrupSvend Gundestrup94 downloads

Fetch research article metadata from PubMed, PMC, DOI, arXiv, and Web of Science links automatically.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates24

Fetch research article metadata from PubMed, PMC, DOI, arXiv, and Web of Science links automatically.

Quality Gate Status CodeFactor

Features

  • Multiple Input Formats: PubMed ID, PMC ID, DOI, arXiv ID, WoS ID, or their URLs/tags
  • Smart Detection: Automatically identifies input type
  • Rich Citations: Title, journal, year, and clickable links
  • Duplicate Prevention: Skips already cited articles
  • Failure Markers: Unmatched references are marked 🔴(id) ![icon] — red means not found (no auto-retry), yellow means temporary error (auto-retry)
  • Failure Index: Optional research-article-unmatched.md page (customizable) listing every unmatched link, grouped by note
  • Batch Processing: Update all links in notes or vault
  • Full Text Access: PMC links provide free full text

Quick Start

  1. Install plugin and enable in Obsidian
  2. Use any of these methods:

Command Palette

  • "Fetch research article" - Create a new note with article metadata
  • Enter ID/URL: 38570095 or https://pubmed.ncbi.nlm.nih.gov/38570095/

Right-Click Menu

  • Select text → "Fetch research article for selected link"
  • Replaces selected text with a formatted citation

Batch Processing

  • "Fetch research articles in current note" - Process the active note
  • "Force fetch research articles in current note" - Same, but also retries 🔴-marked references
  • "Open unmatched research article references" - Open the generated failure-index note directly
  • "Fetch research articles in all notes" - Process the entire vault (enable in settings first)
  • "Force fetch research articles in all notes" - Same, but also retries 🔴-marked references (enable in settings first)

Failed lookups

When a reference cannot be matched, the link is kept and marked with the provider's icon:

🔴(pmc=PMC6792392) ![PMC|16](pmc-logo) https://pmc.ncbi.nlm.nih.gov/articles/PMC6792392/
  • 🔴 Not found (permanent) — the ID does not exist. Skipped on later runs; retried only when you change the ID or run a Force update command.
  • 🟡 Temporary error (transient) — timeout, network, or server error. Automatically retried on the next run.

Enable Failure index page in settings to maintain the configured failure-index note (default: research-article-unmatched.md) — a page listing every unmatched reference with its icon and a [[link]] to the note containing it. The filename can be changed in settings. The file is rewritten on each run and removed when nothing is unmatched.

Supported Formats

Each citation is prefixed with a small provider logo badge (hosted in assets/ on GitHub) that links to the source, followed by a central article-type icon, the article type, linked title, year, and journal. Extra identifiers appear as trailing badges. Shared status and article-type icons are centrally defined so their representation can be changed in one place.

Type Example Result
PubMed ID 38570095 [PubMed badge] Review: [Title](link) - Year, Journal
PMC ID PMC6792392 [PubMed badge] Article: [Title](link) - Year, Journal [PMC badge](full-text)
DOI 10.1016/j.clinme.2024.100038 [DOI badge] Article: [Title](link) - Year, Journal
arXiv ID arXiv:2609.12218 [arXiv badge] Preprint: [Title](link) - Year, arXiv preprint
WoS ID WOS:001607817500001 [WoS badge] Article: [Title](link) - Year, Journal

Article types are normalized to a uniform vocabulary across providers (Article, Review, Preprint, Proceedings, Book, Book Chapter, Clinical Trial, Case Report, Editorial, Letter, News, Dataset, Report, Thesis, Guideline, Comment, Other) — so PubMed's Journal Article, CrossRef's journal-article, and WoS's Article all render as Article.

Settings

  • PubMed/PMC API Key: Optional NCBI key for higher rate limits (arXiv and CrossRef need no key)
  • Web of Science API Key: Required for WoS lookups — each user registers their own free key (see below)
  • Failure Index Filename: Name the generated failure-index note; defaults to research-article-unmatched.md
  • Enable Failure Index: Maintain the configured failure-index note listing all unmatched links grouped by note
  • Enable Global Update: Safety toggle for vault-wide operations

Getting a Web of Science API key

The plugin does not ship a WoS key — every user registers their own:

  1. Create an account at the Clarivate developer portal
  2. Register an application and subscribe it to the Web of Science Starter API (free tier)
  3. When asked for a client type, choose Public (Native) — this plugin is a desktop application, not a server or browser app
  4. Copy the generated API key into the plugin settings field above

Development

npm install          # Install dependencies
npm run build        # Build plugin
npm test             # Run tests
npm run lint         # Check code quality

Testing

  • Unit Tests: Comprehensive suite covering core functionality
  • Coverage: URL extraction, formatting, duplicate detection, API parsing (80% threshold enforced in CI)

API Sources

  • PubMed: NCBI E-utilities
  • DOI: Crossref API
  • PMC: PubMed Central
  • arXiv: arXiv API (Atom feed, no key required)
  • Web of Science: Clarivate Starter API (requires a free API key)

Network use: This plugin sends requests to NCBI E-utilities (PubMed/PMC), the Crossref API, the arXiv API, and the Clarivate Web of Science Starter API to fetch article metadata, only when you invoke its commands. No data is collected or shared beyond the article identifiers you provide.

Thank you to arXiv for use of its open access interoperability.

License

AGPL-3.0

HealthExcellent
ReviewPassed
About
Fetch article metadata from PubMed, PMC, arXiv, Web Of Science or DOIs by entering IDs or pasting URLs, and insert formatted citations with title, journal, year and clickable links. Detect input types automatically, skip duplicates, include PMC full-text links when available, and batch-update links in a note or across the vault.
ResearchImportLinks
Details
Current version
1.4.14
Last updated
4 days ago
Created
6 months ago
Updates
24 releases
Downloads
94
Compatible with
Obsidian 1.13.1+
Platforms
Desktop, Mobile
License
AGPL-3.0
Report bugRequest featureReport plugin
Author
Svend GundestrupSvend Gundestrupgundestrup
www.borg-collective.eu
GitHubgundestrup
sgundestrup
  1. Community
  2. Plugins
  3. Research
  4. Research Article Fetcher

Related plugins

Zotero Integration

Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.

RSS Dashboard

A dashboard for organizing and consuming RSS feeds, YouTube channels, and podcasts with smart tagging, media playback, and seamless content flow.

Citations

Automatically search and insert citations from a Zotero library.

Influx

A bullet journaling plugin that aggregates a terse stream of backlinked clippings in the footer of notes.

ZotLit

Integrate with Zotero, create literature notes, and insert citations from a Zotero library.

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Self-hosted LiveSync

Sync vaults securely to self-hosted servers or WEBRTC.

Advanced URI

Control everything with URI.