---
title: "List Notes"
method: GET
path: "/notes"
tags: ["Notes"]
---

# List Notes

`GET /notes`

List all notes

## Query parameters

- `model_type` 'automation' | 'comment' | 'conversation' | 'email' | 'external_feed' | 'invitation' | 'socialmention' | 'stripe_customer' | 'subscriber' | 'survey' | 'tag' | 'webmention' — Filter notes by the type of object they are attached to.
- `model_id` string — Filter notes by the UUID or TypeID of the object they are attached to.
- `expand` string[] — If provided, expand the given field.
- `page` integer — The page number of the paginated response.

## Response `200`

OK

- NotePage
  - `results` Note[], required — The list of results for this page.
    - `id` string, required — A unique TypeID associated with the object.
    - `creation_date` string, date-time, required — The date and time at which the object was first created.
    - `body` string, required — The text content of the note.
    - `model_type` 'automation' | 'comment' | 'conversation' | 'email' | 'external_feed' | 'invitation' | 'socialmention' | 'stripe_customer' | 'subscriber' | 'survey' | 'tag' | 'webmention', required — The type of object this note is attached to (e.g., 'email', 'subscriber').
    - `model_id` string, required — The UUID or TypeID of the object this note is attached to.
    - `metadata` object, required
    - `source` 'admin' | 'user', required — The source of the note. If the note was created by a Buttondown admin, this will be 'admin'; otherwise, it will be 'user'.
    - `user_id` string, nullable
    - `user` User
      - `permissions` Permissions, required
        - `subscriber` 'none' | 'read' | 'write' — An enumeration.
        - `email` 'none' | 'read' | 'write' — An enumeration.
        - `sending` 'none' | 'read' | 'write' — An enumeration.
        - `styling` 'none' | 'read' | 'write' — An enumeration.
        - `administrivia` 'none' | 'read' | 'write' — An enumeration.
        - `automations` 'none' | 'read' | 'write' — An enumeration.
        - `surveys` 'none' | 'read' | 'write' — An enumeration.
        - `forms` 'none' | 'read' | 'write' — An enumeration.
      - `email_address` string, required — The email address of the user.
      - `id` string, required — A unique TypeID associated with the object.
      - `creation_date` string, date-time, required — The date and time at which the object was first created.
      - `status` 'pending' | 'accepted' | 'declined' | 'revoked' | 'owner', required — An enumeration.
      - `last_logged_in` string, date-time, nullable — When the user last logged in, or null if they haven't accepted the invitation.
  - `next` string, nullable — The URL to the next page of results, if any.
  - `previous` string, nullable — The URL to the previous page of results, if any.
  - `count` integer, required — The total number of results across all pages.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `409` — Conflict
- `422` — Unprocessable Entity
- `429` — Too Many Requests

## Changes

- **2026-08-08** `3a702c095d22` — 1 warning, 1 info
  - changed the pattern of the `query` request parameter `model_id` from `^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|(?:bsky_ss_doc|bsky_ss_pub|permission|unsub_req|auth_tok|rec_code|webauthn|api_req|aut_att|ext_evt|str_cus|str_sub|sub_imp|sub_tag|adslot|em_dom|em_evt|em_imp|le_evt|str_pd|adsku|socmn|webmn|book|bulk|cnvs|form|hook|inbx|news|note|resp|rssi|snip|snpr|acc|att|aut|com|emr|exp|img|inv|mes|rss|smp|srv|sub|dr|em)_(?:[0-7][0-9abcdefghjkmnpqrstvwxyz]{25}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))$` to `^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|(?:bsky_ss_doc|bsky_ss_pub|permission|unsub_req|auth_tok|rec_code|webauthn|api_req|aut_att|ext_evt|segment|str_cus|str_sub|sub_imp|sub_tag|adslot|em_dom|em_imp|le_evt|str_pd|adsku|socmn|webmn|book|bulk|cnvs|form|hook|inbx|news|note|resp|rssi|snip|snpr|acc|att|aut|com|emr|exp|img|inv|mes|rss|smp|srv|sub|dr|em)_(?:[0-7][0-9abcdefghjkmnpqrstvwxyz]{25}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))$`
  - the `results/items/model_id` response's property pattern was changed from `^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|(?:bsky_ss_doc|bsky_ss_pub|permission|unsub_req|auth_tok|rec_code|webauthn|api_req|aut_att|ext_evt|str_cus|str_sub|sub_imp|sub_tag|adslot|em_dom|em_evt|em_imp|le_evt|str_pd|adsku|socmn|webmn|book|bulk|cnvs|form|hook|inbx|news|note|resp|rssi|snip|snpr|acc|att|aut|com|emr|exp|img|inv|mes|rss|smp|srv|sub|dr|em)_(?:[0-7][0-9abcdefghjkmnpqrstvwxyz]{25}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))$` to `^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|(?:bsky_ss_doc|bsky_ss_pub|permission|unsub_req|auth_tok|rec_code|webauthn|api_req|aut_att|ext_evt|segment|str_cus|str_sub|sub_imp|sub_tag|adslot|em_dom|em_imp|le_evt|str_pd|adsku|socmn|webmn|book|bulk|cnvs|form|hook|inbx|news|note|resp|rssi|snip|snpr|acc|att|aut|com|emr|exp|img|inv|mes|rss|smp|srv|sub|dr|em)_(?:[0-7][0-9abcdefghjkmnpqrstvwxyz]{25}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))$` for the status `200`

[Change history](https://skmtc.dev/buttondown/apis/buttondown-api/changes/notes/get.md)

---

[API](https://skmtc.dev/buttondown/apis/buttondown-api.md) · [All operations](https://skmtc.dev/buttondown/apis/buttondown-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/buttondown/buttondown-api/revisions/e0ac41d86464/schema)
