Files
claude-scientific-skills/scientific-skills/pyzotero/references/saved-searches.md

2.0 KiB

Saved Searches

Retrieving Saved Searches

# Get all saved search metadata (not results)
searches = zot.searches()
# Returns list of dicts with name, key, conditions, version

for search in searches:
    print(search['data']['name'], search['data']['key'])

Note: Saved search results cannot be retrieved via the API (as of 2025). Only metadata is returned.

Creating Saved Searches

Each condition dict must have condition, operator, and value:

conditions = [
    {
        'condition': 'title',
        'operator': 'contains',
        'value': 'machine learning'
    }
]
zot.saved_search('ML Papers', conditions)

Multiple Conditions (AND logic)

conditions = [
    {'condition': 'itemType', 'operator': 'is', 'value': 'journalArticle'},
    {'condition': 'tag', 'operator': 'is', 'value': 'unread'},
    {'condition': 'date', 'operator': 'isAfter', 'value': '2023-01-01'},
]
zot.saved_search('Recent Unread Articles', conditions)

Deleting Saved Searches

# Get search keys first
searches = zot.searches()
keys = [s['data']['key'] for s in searches if s['data']['name'] == 'Old Search']
zot.delete_saved_search(keys)

Discovering Valid Operators and Conditions

# All available operators
operators = zot.show_operators()

# All available conditions
conditions = zot.show_conditions()

# Operators valid for a specific condition
title_operators = zot.show_condition_operators('title')
# e.g. ['is', 'isNot', 'contains', 'doesNotContain', 'beginsWith']

Common Condition/Operator Combinations

Condition Common Operators
title contains, doesNotContain, is, beginsWith
tag is, isNot
itemType is, isNot
date isBefore, isAfter, is
creator contains, is
publicationTitle contains, is
year is, isBefore, isAfter
collection is, isNot
fulltextContent contains