Zotero logo Zotero automation · runs weekly

Turn Zotero PDF highlights into a literature note

You highlighted a paper in the Zotero reader a month ago, and the highlights are still sitting in the PDF instead of in the note you need for your review.

Cotlet does it in your own Zotero account with search_items, get_annotations and create_note, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Zotero do this on its own?

Zotero does this in the desktop reader (checked 16 Oct 2026). The Web API docs describe notes as child items with parentItem and full text of attachments, and they do not describe annotation items, so reading highlights from your own code is not documented. No official MCP server exists to ask for it.

How you do it in Zotero today

  1. Open the PDF in the Zotero reader; the Annotations tab in the left sidebar lists every highlight and underline.
  2. Right-click the parent item in the items list and choose Add Note from Annotations to create a child note, or select several items and choose Create Note from Annotations for one standalone note.
  3. Annotations can also be dragged into an open note one by one, or added with Add to Note from the right-click menu.
  4. Each quote keeps a link back to its page in the PDF, and Show Annotation Colors in the note menu keeps the color of each highlight.
  5. The note holds quotes only: the synthesis you wanted still has to be written by hand.

How to turn Zotero PDF highlights into a literature note

Prompt

Find the Zotero item "Sparse attention for long documents", read its PDF annotations and write one literature note on it with the quotes grouped by color and the page of each.
  1. 01

    Find the right item

    search_items looks the paper up by title. If more than one item matches, your agent asks you to pick, because a note on the wrong paper is hard to spot later.

  2. 02

    Read the annotations

    get_annotations returns each highlight with its color, page and comment. The agent skips items with no PDF annotations and says so instead of writing an empty note.

  3. 03

    Group the quotes

    The agent groups quotes by color and keeps the page next to each one. You decide what each color means, for example yellow for claims and red for doubts, and put it in the prompt.

  4. 04

    Write the note

    create_note adds a child note on the item. It does not touch the PDF or its highlights, and the note is a new item you can delete in Zotero with Move Item(s) to Trash….

What you get back

Example data

Note added to "Sparse attention for long documents"
3 highlights read, 2 colors
Yellow (claims): 2 quotes, pages 4 and 9
Red (doubts): 1 quote, page 12

Other ways to ask

  • Do this for every item in the collection "Chapter 2" that has annotations and no note yet.
  • Write the note as a standalone note instead, with a heading per paper.
  • Only include highlights that have a comment, and put the comment under each quote.

What Zotero allows, and what to know first

  • Reader annotations are stored in the Zotero database; other PDF readers show them only after you export a PDF with embedded annotations.
  • Child notes attach to one item; standalone notes belong to no item and appear next to other items in the library.
  • Notes sync with item metadata and do not count against file storage, except for embedded images.
  • The reader description covers highlights and underlines, so the note is built from those first.

create_note changes only your own Zotero data and reach no one else, so it runs without asking first.

Sources: Zotero: PDF reader · Zotero: notes · Zotero Web API v3: write requests

Call create_note from a script

curl

curl -X POST https://cotlet.dev/api/v1/zotero/notes \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parent_item_key":"H6R2VB5D","note":"Yellow (claims): p. 4 \"Attention cost grows linearly with window size.\" p. 9 \"Recall holds up to 64k tokens.\" Red (doubts): p. 12 \"Evaluation uses one dataset.\""}'

Example response

{
  "note_key": "T3P6YK8R",
  "parent_item_key": "H6R2VB5D",
  "created_at": "2026-10-16T09:00:00+02:00"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is zotero_write → create_note. Example data.

Schedule it in n8n, Make, Zapier or cron

Zotero tools this automation uses

Cotlet Zotero tools used to turn Zotero PDF highlights into a literature note
Tool Parameters
search_items library, query, full_text, tag, item_type, collection_key, unfiled, added_since, limit, cursor
get_annotations library, item_key
create_note parent_item_key, note, collection_key
All 11 Zotero tools with descriptions

Frequently asked questions

Is it safe to connect Zotero to Cotlet?

Yes. You sign in to Zotero yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Zotero once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to Zotero.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Zotero.