scientific-skills/pyzotero/references/saved-searches.md
# 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.
Each condition dict must have condition, operator, and value:
conditions = [
{
'condition': 'title',
'operator': 'contains',
'value': 'machine learning'
}
]
zot.saved_search('ML Papers', conditions)
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)
# 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)
# 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']
| 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 |