---
title: "GET /v1/todos/watch"
method: GET
path: "/v1/todos/watch"
tags: ["TodoService"]
---

# GET /v1/todos/watch

`GET /v1/todos/watch`

## Request

- The document declares no server URL.
- Auth: none declared
- TypeScript: <https://skmtc.dev/go-kratos/apis/todoservice-api/docs/v1/todos/watch/get.ts> (a function with typed inputs; its response is checked against the schema)

WatchTodos opens a server-side stream that emits a TodoEvent for every
 create, update, or delete that matches the supplied filter and ordering.
 The stream remains open until the client cancels or the server terminates it.

## Query parameters

- `pageSize` integer
- `pageToken` string
- `filter` string
- `orderBy` string

## Response `200`

OK

- TodoV1TodoEvent: TodoEvent is a server-sent message describing a change to a todo item. It is emitted by both WatchTodos and SyncTodos streams.
  - `action` string: The change that occurred. One of `created`, `updated`, or `deleted`.
  - `todo` TodoV1Todo: Todo is the canonical representation of a todo item.
    - `id` string: Application-generated UUIDv7 identifier. Read-only on create.
    - `title` string: Short human-readable title.
    - `content` string: Detailed description or notes for the todo item.
    - `completed` boolean: Whether the todo item has been completed.
    - `createdAt` string, date-time: Time at which the todo item was created. Server-assigned, read-only.
    - `updatedAt` string, date-time: Time at which the todo item was last modified. Server-assigned, read-only.
    - `status` integer: Lifecycle state. Server-assigned, read-only: call DeleteTodo to move an item to TODO_STATUS_DELETED.
  - `eventTime` string, date-time: Time at which the change was observed by the server.

## Changes

- **2026-08-15** `bbd5b5339910`: 2 warning, 3 info
  - removed the optional property `todo/allOf[#/components/schemas/todo.v1.Todo]/createTime` from the response with the `200` status
  - removed the optional property `todo/allOf[#/components/schemas/todo.v1.Todo]/updateTime` from the response with the `200` status
  - added the optional property `todo/allOf[#/components/schemas/todo.v1.Todo]/createdAt` to the response with the `200` status
  - added the optional property `todo/allOf[#/components/schemas/todo.v1.Todo]/status` to the response with the `200` status
  - …1 more
- **2026-06-18** `d99daada47f9`: 1 info
  - endpoint added
- **2021-12-27** `52ca3c9327fd`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/go-kratos/apis/todoservice-api/changes/v1/todos/watch/get.md)

---

[API](https://skmtc.dev/go-kratos/apis/todoservice-api.md) - [All operations](https://skmtc.dev/go-kratos/apis/todoservice-api/llms.txt) - [OpenAPI document](https://skmtc.dev/go-kratos/apis/todoservice-api/revisions/bbd5b5339910?raw)
