---
title: "List Notifications"
method: GET
path: "/api/v1/notifications"
tags: ["Notifications"]
---

# List Notifications

`GET /api/v1/notifications`

## Request

- Base URL: `https://api.gemstoneaiapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gemstoneaiapp.com/api/v1/notifications`
- Auth: HTTP bearer

GET /api/v1/notifications?limit=&cursor=&include_read=
The caller's inbox, newest first, excluding dismissed and expired rows.

Cursor-paged rather than page/page_size (the convention elsewhere in this
API) because this is the one prepend-heavy list we serve: producers insert
at the top between a client's page 1 and page 2 requests, and offset paging
would then re-show rows the user already scrolled past. The cursor is an
opaque (created_at, id) pair — treat it as a token, not a number.

`unread_count` is returned on every page so the client can reconcile its
badge without a second call.

## Query parameters

- `limit` integer
- `cursor` string, nullable
- `include_read` boolean

## Response `200`

Successful Response

- NotificationFeedResponse
  - `items` NotificationItem[], required
    - `id` integer, required
    - `type` string, required
    - `title` string, required
    - `body` string, nullable
    - `data` object, nullable
    - `deep_link` string, nullable
    - `created_at` string, date-time, required
    - `read_at` string, date-time, nullable
  - `next_cursor` string, nullable
  - `unread_count` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/gemstoneaiapp/apis/gemstoneai-api.md) · [All operations](https://skmtc.dev/gemstoneaiapp/apis/gemstoneai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gemstoneaiapp/apis/gemstoneai-api/revisions/fcb441f55161?raw)
