List Notes
list_notesLists notes from Apple Notes app. Optionally filter by folder.
Paginated: limit is capped at 500 per call, so page with offset (offset=500 returns notes 501-1000) instead of asking for a bigger limit. The response carries total (how many notes match in all) and has_more (whether anything is left past this page), so you never have to guess whether you got everything — page until has_more is false, which is exact even when total_is_estimated says the count is only a lower bound. To read a WHOLE library, pass order="id" — see the order parameter.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Notes per page (default 50, capped at 500). To get more, page with offset. | 50 |
| order | No | order: "modified" (default) sorts newest-modified first — what you want to SHOW someone, but NOT safe for paging: modification date changes, so a note edited between two calls jumps to the front and another note is pushed past your cursor and never returned. "id" sorts by the note's immutable store id — stable, never renumbered, new notes append at the end — so use order="id" to walk an entire library page by page: edits and insertions mid-crawl are safe with it. One case it cannot cover, because pages are addressed by offset: if a note is DELETED mid-crawl, every note after the hole shifts one slot back and the note that was on the page boundary is skipped, silently. If completeness matters, re-run the crawl and reconcile against total, or crawl while nothing is deleting notes. | modified |
| folder | No | ||
| offset | No | How many notes to skip (default 0). offset=500 with limit=500 returns notes 501-1000. An offset past the end returns an empty page with has_more=false, not an error. | 0 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Notes in THIS page | |
| notes | No | ||
| order | No | The ordering actually applied (modified | id) | |
| total | No | Notes matching in total, ignoring limit/offset. A LOWER BOUND, not the exact figure, when total_is_estimated is true | |
| offset | No | Where this page started | |
| has_more | No | True when notes remain past this page — call again with offset = offset + count | |
| next_actions | No | ||
| total_is_estimated | No | True when the exact count could not be taken (the unbounded COUNT failed, or the JXA fallback answered) — total is then only a lower bound. has_more stays exact either way: page until it is false, never until count reaches total |