Agent skill

Zotero API

by wentorai in wentorai/research-plugins

Reference management library and collections API. An agent skill from wentorai/research-plugins.

MITAuto-check passedResearch & Science

Install Zotero API

skills CLI
$ npx skills add wentorai/research-plugins --skill zotero-api -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wentorai/research-plugins zotero-api --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/writing/citation/zotero-api .claude/skills/zotero-api && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
zotero-api
GitHub stars
298
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
612 words
Files
1
Skills in repo
405
Repo updated
First seen
Licence
MIT

At a glance

Reference management library and collections API. An agent skill from wentorai/research-plugins.

  • Works in 4 steps: Log in to your Zotero account at… → Navigate to… → Create a new API key with appropriate… → …
  • Tasks that involve Citation management
  • SKILL.md covers Overview, Authentication, Core Endpoints and Rate Limits, plus 2 more sections
  • Calls curl; reaches api.zotero.org

What it does

Zotero API is an agent skill from wentorai/research-plugins. Reference management library and collections API

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Citation management. It works with Zotero. The repository describes itself as: 350+ academic research skills, MCP configs, and plugins for Research-Claw and AI agents. The licence is MIT.

When your agent uses it

  • Tasks that involve Citation management

Example prompts

  • “/zotero-api”

Requirements

  • Python 3
  • A credential in YOUR_API_KEY
  • A credential in YOUR_KEY

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Log in to your Zotero account at https://www.zotero.org/
  2. Navigate to https://www.zotero.org/settings/keys
  3. Create a new API key with appropriate permissions (read/write access to personal or group libraries)
  4. Include the key in the Zotero-API-Key header

What it can do on your machine

Read from SKILL.md and the folder at commit bf44b3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.zotero.org

    Also links to:

    • zotero.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Zotero API loads about 2.1k tokens when it runs. Until then it costs about 15 tokens; SKILL.md has 612 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~15
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wentorai/research-plugins at commit bf44b3c, republished under its MIT licence (© wentorai). 612 words, ~2,093 tokens.

Download SKILL.mdSave it as .claude/skills/zotero-api/SKILL.md (or your agent's skills folder).
name
zotero-api
description
Reference management library and collections API

Zotero API Guide

Overview

Zotero is a free, open-source reference management software designed to help researchers collect, organize, cite, and share bibliographic references. The Zotero Web API provides programmatic access to user and group libraries stored on Zotero servers, enabling integration with research workflows, automated bibliography management, and custom tool development.

The API supports reading and writing items (books, journal articles, conference papers, web pages, and dozens of other item types), organizing items into collections, managing tags, retrieving attachment metadata, and accessing shared group libraries. It follows RESTful conventions and supports JSON and Atom response formats, making it straightforward to integrate with existing research infrastructure.

Researchers, librarians, research software developers, and digital humanities scholars use the Zotero API to build literature review tools, automate citation workflows, synchronize reference libraries across platforms, generate bibliographies programmatically, and create custom research management dashboards. The API is particularly popular in digital humanities projects where large bibliographic datasets need programmatic manipulation.

Authentication

Authentication is optional for reading public libraries but required for accessing private libraries and all write operations. Zotero uses API keys for authentication.

  1. Log in to your Zotero account at https://www.zotero.org/
  2. Navigate to https://www.zotero.org/settings/keys
  3. Create a new API key with appropriate permissions (read/write access to personal or group libraries)
  4. Include the key in the Zotero-API-Key header
bash
# Authenticated request
curl -H "Zotero-API-Key: YOUR_API_KEY" "https://api.zotero.org/users/USER_ID/items"

# Public group library (no auth needed)
curl "https://api.zotero.org/groups/GROUP_ID/items"

Your user ID can be found at https://www.zotero.org/settings/keys alongside your API key settings.

Core Endpoints

users/{id}/items: User Library Items

Retrieve, search, and manage items in a user's personal Zotero library.

  • URL: GET https://api.zotero.org/users/{userID}/items
  • Parameters:
ParameterTypeRequiredDescription
userIDintYesZotero user ID (in URL path)
qstringNoQuick search query (searches title, creator, year)
qmodestringNoSearch mode: titleCreatorYear or everything
itemTypestringNoFilter by type: journalArticle, book, conferencePaper, etc.
tagstringNoFilter by tag (can be repeated for multiple tags)
sortstringNoSort field: dateAdded, dateModified, title, creator
directionstringNoSort direction: asc or desc
limitintNoResults per request (default 25, max 100)
startintNoPagination offset
formatstringNoResponse format: json (default), atom, bib, keys
  • Example:
bash
# Get all journal articles tagged "machine learning"
curl -H "Zotero-API-Key: YOUR_KEY" \
  "https://api.zotero.org/users/12345/items?itemType=journalArticle&tag=machine+learning&format=json"

# Search for items by keyword
curl -H "Zotero-API-Key: YOUR_KEY" \
  "https://api.zotero.org/users/12345/items?q=neural+networks&format=json"
  • Response: Returns array of item objects, each containing key, version, data (with itemType, title, creators, abstractNote, date, DOI, url, tags, collections, relations), and links.
Show full SKILL.md (241 more words)Show less
groups/{id}/items: Group Library Items

Access items in shared group libraries, which are commonly used for collaborative research projects and reading groups.

  • URL: GET https://api.zotero.org/groups/{groupID}/items
  • Parameters:
ParameterTypeRequiredDescription
groupIDintYesZotero group ID (in URL path)
qstringNoQuick search query
itemTypestringNoFilter by item type
tagstringNoFilter by tag
sortstringNoSort field
limitintNoResults per request (max 100)
startintNoPagination offset
formatstringNoResponse format: json, atom, bib, keys
  • Example:
bash
# List items in a public group library
curl "https://api.zotero.org/groups/67890/items?format=json&limit=50"

# Get formatted bibliography from a group
curl "https://api.zotero.org/groups/67890/items?format=bib&style=apa"
  • Response: Same structure as user library items. Group items may include additional access control metadata depending on the group's privacy settings.

Rate Limits

No strict rate limits are enforced, but Zotero asks users to limit requests to a reasonable rate. The API uses conditional requests via If-Modified-Since-Version headers for efficient synchronization. Responses include a Last-Modified-Version header that should be stored and used in subsequent requests to only retrieve changed items. Batch operations are supported for creating/updating multiple items in a single request (up to 50 items per write request).

Common Patterns

Export a Bibliography in a Specific Citation Style

Generate a formatted bibliography from a Zotero collection:

python
import requests

headers = {"Zotero-API-Key": "YOUR_KEY"}

# Get items formatted as APA bibliography
resp = requests.get(
    "https://api.zotero.org/users/12345/collections/ABCDEF/items",
    headers=headers,
    params={"format": "bib", "style": "apa", "limit": 100}
)
print(resp.text)
Sync Library Items to a Custom Database

Efficiently synchronize Zotero items using version tracking:

python
import requests

headers = {"Zotero-API-Key": "YOUR_KEY"}
last_version = 0  # Store this between syncs

resp = requests.get(
    "https://api.zotero.org/users/12345/items",
    headers={**headers, "If-Modified-Since-Version": str(last_version)},
    params={"format": "json", "limit": 100}
)

if resp.status_code == 200:
    items = resp.json()
    last_version = resp.headers["Last-Modified-Version"]
    for item in items:
        print(f"Updated: {item['data'].get('title', 'No title')} (v{item['version']})")
elif resp.status_code == 304:
    print("No changes since last sync")
Analyze Research Library by Tag Distribution

Explore the thematic distribution of a research library:

python
import requests
from collections import Counter

headers = {"Zotero-API-Key": "YOUR_KEY"}

resp = requests.get(
    "https://api.zotero.org/users/12345/items",
    headers=headers,
    params={"format": "json", "limit": 100, "itemType": "journalArticle"}
)

tag_counts = Counter()
for item in resp.json():
    for tag in item["data"].get("tags", []):
        tag_counts[tag["tag"]] += 1

for tag, count in tag_counts.most_common(20):
    print(f"  {tag}: {count}")

References

© wentorai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/writing/citation/zotero-api of wentorai/research-plugins.

Open the folder on GitHubat commit bf44b3c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in wentorai/research-plugins, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Zotero API next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Zotero API compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Zotero API this skillwentorai/research-plugins2981 repos~2.1kAutomated safety check: PassMIT
Systematic Review ScreenerImbad0202/academic-research-skills51k—~8.4kAutomated safety check: PassCustom licence
Citation Verification GuideGalaxy-Dawn/claude-scholar5.7k2 repos~1.9kAutomated safety check: PassMIT
Cnki Exportcookjohn/cnki-skills9832 repos~1.7kAutomated safety check: PassNone
Annotate Paper54yyyu/zotero-mcp5.3k—~1.5kAutomated safety check: PassMIT
Zotero CLI54yyyu/zotero-mcp5.3k—~2.3kAutomated safety check: PassMIT

Similar skills

  • Systematic Review Screener

    Imbad0202/academic-research-skills

    Screens records for systematic, scoping and rapid reviews against fixed eligibility rules, using two blinded AI reviewers and a third adjudicator, with traceable PRISMA counts.

    51k GitHub stars~8.4k tokensUpdated today
    Research & ScienceAuto-check passed
  • Citation Verification Guide

    Galaxy-Dawn/claude-scholar

    Reference guidance for checking every citation in academic writing against canonical sources such as DOI, arXiv, CrossRef and Semantic Scholar, to catch fake or wrong references.

    5.7k GitHub starsUsed in 2 repos~1.9k tokens
    Research & ScienceAuto-check passed
  • Cnki Export

    cookjohn/cnki-skills

    Export paper from CNKI and push to Zotero, or save as RIS file.

    983 GitHub starsUsed in 2 repos~1.7k tokens
    Research & ScienceAuto-check passed
  • Annotate Paper

    54yyyu/zotero-mcp

    Read the open paper and write study annotations into its PDF with zotero-cli - a context box on the title, a four-part summary on the abstract, role-coded abstract highlights, one box per figure…

    5.3k GitHub stars~1.5k tokensUpdated yesterday
    Research & ScienceAuto-check passed
  • Zotero CLI

    54yyyu/zotero-mcp

    Reads and edits a Zotero library from the shell with zotero-cli: search by keyword or meaning, read PDF text, manage tags, notes and collections, and export bibliographies.

    5.3k GitHub stars~2.3k tokensUpdated yesterday
    Research & ScienceAuto-check passed
  • Deeppapernote

    917Dhj/DeepPaperNote

    Generate a high-quality deep-reading note for a single paper and write it into an Obsidian-style vault.

    1.2k GitHub starsUsed in 1 repo~5.9k tokens
    Research & ScienceAuto-check passed

More from wentorai/research-plugins

All 405 skills in this repo
  • Abstract Writing Guide

    wentorai/research-plugins

    Craft structured research abstracts that maximize clarity and journal acceptance

    298 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Academic Citation Manager

    wentorai/research-plugins

    Manage academic citations across BibTeX, APA, MLA, and Chicago formats

    298 GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed
  • Academic Paper Summarizer

    wentorai/research-plugins

    Summarize academic papers with structured extraction of key elements

    298 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Academic Study Methods

    wentorai/research-plugins

    Evidence-based study techniques for academic learning and retention

    298 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Academic Tone Guide

    wentorai/research-plugins

    Adjust writing tone and register for academic audiences and venues

    298 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Academic Translation Guide

    wentorai/research-plugins

    Academic translation, post-editing, and Chinglish correction guide

    298 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed

Works with

Questions about Zotero API

What does Zotero API do?

Reference management library and collections API. An agent skill from wentorai/research-plugins. Zotero API is an agent skill from wentorai/research-plugins.

When should I use Zotero API?

Zotero API fits situations like: tasks that involve Citation management.

How do I install Zotero API in Claude Code?

Run `npx skills add wentorai/research-plugins --skill zotero-api -a claude-code`. Or copy the skill folder (skills/writing/citation/zotero-api in wentorai/research-plugins) into .claude/skills/zotero-api in your project. Claude Code loads it when a task matches its description.

How do I install Zotero API in Codex?

Run `npx skills add wentorai/research-plugins --skill zotero-api -a codex`. Or copy the skill folder (skills/writing/citation/zotero-api in wentorai/research-plugins) into .agents/skills/zotero-api in your project. Codex loads it when a task matches its description.

Can I use Zotero API in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wentorai/research-plugins --skill zotero-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zotero-api, .gemini/skills/zotero-api, .github/skills/zotero-api and .opencode/skills/zotero-api in your project.

What does Zotero API need to run?

Going by SKILL.md and its folder, Zotero API needs the command-line tools its instructions call (curl). Our summary lists: Python 3; A credential in YOUR_API_KEY; A credential in YOUR_KEY.

Does Zotero API access the network?

SKILL.md names 2 domains. In commands or code: api.zotero.org; the agent is likely to contact it when it follows the instructions. As links in the text: zotero.org. This is read from the text; nothing was executed.

Is Zotero API safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Zotero API use?

Zotero API is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Zotero API use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Zotero API?

Skills that share tags, products or a category with Zotero API: Systematic Review Screener (Imbad0202/academic-research-skills, 51k stars), Citation Verification Guide (Galaxy-Dawn/claude-scholar, 5.7k stars), Cnki Export (cookjohn/cnki-skills, 983 stars) and Annotate Paper (54yyyu/zotero-mcp, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Zotero API?

wentorai (a GitHub user) maintains it in wentorai/research-plugins, which has 298 GitHub stars. The repository holds 405 skills in this directory. The repository was last updated on June 19, 2026.

Source: wentorai/research-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.