---
title: "时间线事件流 (SSE)"
method: GET
path: "/p1/timeline/-/events"
tags: ["timeline"]
---

# 时间线事件流 (SSE)

`GET /p1/timeline/-/events`

这是一个 SSE (Server-Sent Events) 流，不是普通的 JSON 响应。客户端需要使用 EventSource 或类似的 SSE 客户端来订阅此接口。每个事件以 `data: {...}\n\n` 格式发送。

## Query parameters

- `cat` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 — 时间线类型 - 1 = 日常行为 - 2 = 维基操作 - 3 = 收藏条目 - 4 = 收视进度 - 5 = 状态 - 6 = 日志 - 7 = 目录 - 8 = 人物 - 9 = 天窗
- `mode` 'all' | 'friends' — 过滤模式 - all = 全站 - friends = 好友

## Response `200`

SSE 事件数据

- object — SSE 事件数据
  - `event` string, required — 事件类型: 'connected' | 'timeline'
  - `timeline` Timeline
    - `batch` boolean, required
    - `cat` 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, required — 时间线类型 - 1 = 日常行为 - 2 = 维基操作 - 3 = 收藏条目 - 4 = 收视进度 - 5 = 状态 - 6 = 日志 - 7 = 目录 - 8 = 人物 - 9 = 天窗
    - `createdAt` integer, required
    - `id` integer, required
    - `memo` TimelineMemo, required
      - `blog` SlimBlogEntry
        - `createdAt` integer, required
        - `icon` string, required
        - `id` integer, required
        - `public` boolean, required
        - `replies` integer, required
        - `summary` string, required
        - `title` string, required
        - `type` integer, required
        - `uid` integer, required
        - `updatedAt` integer, required
        - `user` SlimUser
          - `avatar` Avatar, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `group` integer, required
          - `id` integer, required
          - `isFriend` boolean, required — Whether the authenticated user has added this user as a friend; false when the endpoint does not populate viewer friendship
          - `joinedAt` integer, required
          - `nickname` string, required
          - `sign` string, required
          - `username` string, required
      - `daily` object
        - `groups` SlimGroup[]
          - `accessible` boolean, required
          - `createdAt` integer, required
          - `creatorID` integer, required
          - `icon` Avatar, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `id` integer, required
          - `members` integer, required
          - `name` string, required
          - `nsfw` boolean, required
          - `title` string, required
        - `users` SlimUser[]
          - `avatar` Avatar, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `group` integer, required
          - `id` integer, required
          - `isFriend` boolean, required — Whether the authenticated user has added this user as a friend; false when the endpoint does not populate viewer friendship
          - `joinedAt` integer, required
          - `nickname` string, required
          - `sign` string, required
          - `username` string, required
      - `index` SlimIndex
        - `createdAt` integer, required
        - `id` integer, required
        - `private` boolean, required
        - `stats` IndexStats, required
          - `blog` integer
          - `character` integer
          - `episode` integer
          - `groupTopic` integer
          - `person` integer
          - `subject` object, required
            - `anime` integer
            - `book` integer
            - `game` integer
            - `music` integer
            - `real` integer
          - `subjectTopic` integer
        - `title` string, required
        - `total` integer, required
        - `type` 0 | 1 | 2, required — 目录类型 - 0 = 用户 - 1 = 公共 - 2 = TBA
        - `uid` integer, required
        - `updatedAt` integer, required
        - `user` SlimUser
          - `avatar` Avatar, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `group` integer, required
          - `id` integer, required
          - `isFriend` boolean, required — Whether the authenticated user has added this user as a friend; false when the endpoint does not populate viewer friendship
          - `joinedAt` integer, required
          - `nickname` string, required
          - `sign` string, required
          - `username` string, required
      - `mono` object
        - `characters` SlimCharacter[], required
          - `comment` integer, required
          - `id` integer, required
          - `images` PersonImages
            - `grid` string, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `info` string, required
          - `lock` boolean, required
          - `name` string, required
          - `nameCN` string, required
          - `nsfw` boolean, required
          - `role` integer, required
        - `persons` SlimPerson[], required
          - `career` string[], required — 职业
          - `comment` integer, required
          - `id` integer, required
          - `images` PersonImages
            - `grid` string, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `info` string, required
          - `lock` boolean, required
          - `name` string, required
          - `nameCN` string, required
          - `nsfw` boolean, required
          - `type` integer, required
      - `progress` object
        - `batch` object
          - `epsTotal` string, required
          - `epsUpdate` integer
          - `subject` SlimSubject, required
            - `id` integer, required
            - `images` SubjectImages
              - …
            - `info` string, required
            - `interest` SlimSubjectInterest
              - …
            - `locked` boolean, required
            - `metaTags` string[], required
            - `name` string, required
            - `nameCN` string, required
            - `nsfw` boolean, required
            - `rating` SubjectRating, required
              - …
            - `type` 1 | 2 | 3 | 4 | 6, required — 条目类型 - 1 = 书籍 - 2 = 动画 - 3 = 音乐 - 4 = 游戏 - 6 = 三次元 没有 5
          - `volsTotal` string, required
          - `volsUpdate` integer
        - `single` object
          - `episode` Episode, required
            - `airdate` string, required
            - `collection` object
              - …
            - `comment` integer, required
            - `desc` string, required
            - `disc` integer, required
            - `duration` string, required
            - `id` integer, required
            - `name` string, required
            - `nameCN` string, required
            - `sort` number, required
            - `subject` SlimSubject
              - …
            - `subjectID` integer, required
            - `type` 0 | 1 | 2 | 3 | 4 | 5 | 6, required — 话数类型 - 0 = 本篇 - 1 = 特别篇 - 2 = OP - 3 = ED - 4 = 预告/宣传/广告 - 5 = MAD - 6 = 其他
          - `subject` SlimSubject, required
            - `id` integer, required
            - `images` SubjectImages
              - …
            - `info` string, required
            - `interest` SlimSubjectInterest
              - …
            - `locked` boolean, required
            - `metaTags` string[], required
            - `name` string, required
            - `nameCN` string, required
            - `nsfw` boolean, required
            - `rating` SubjectRating, required
              - …
            - `type` 1 | 2 | 3 | 4 | 6, required — 条目类型 - 1 = 书籍 - 2 = 动画 - 3 = 音乐 - 4 = 游戏 - 6 = 三次元 没有 5
      - `status` object
        - `nickname` object
          - `after` string, required
          - `before` string, required
        - `sign` string
        - `tsukkomi` string
      - `subject` object[]
        - `collectID` integer
        - `comment` string, required
        - `rate` number
        - `subject` SlimSubject, required
          - `id` integer, required
          - `images` SubjectImages
            - `common` string, required
            - `grid` string, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `info` string, required
          - `interest` SlimSubjectInterest
            - `comment` string, required
            - `id` integer, required
            - `rate` integer, required
            - `tags` string[], required
            - `type` 1 | 2 | 3 | 4 | 5, required — 条目收藏状态 - 1 = 想看 - 2 = 看过 - 3 = 在看 - 4 = 搁置 - 5 = 抛弃
            - `updatedAt` integer, required
          - `locked` boolean, required
          - `metaTags` string[], required
          - `name` string, required
          - `nameCN` string, required
          - `nsfw` boolean, required
          - `rating` SubjectRating, required
            - `count` integer[], required
            - `rank` integer, required
            - `score` number, required
            - `total` integer, required
          - `type` 1 | 2 | 3 | 4 | 6, required — 条目类型 - 1 = 书籍 - 2 = 动画 - 3 = 音乐 - 4 = 游戏 - 6 = 三次元 没有 5
      - `wiki` object
        - `subject` SlimSubject
          - `id` integer, required
          - `images` SubjectImages
            - `common` string, required
            - `grid` string, required
            - `large` string, required
            - `medium` string, required
            - `small` string, required
          - `info` string, required
          - `interest` SlimSubjectInterest
            - `comment` string, required
            - `id` integer, required
            - `rate` integer, required
            - `tags` string[], required
            - `type` 1 | 2 | 3 | 4 | 5, required — 条目收藏状态 - 1 = 想看 - 2 = 看过 - 3 = 在看 - 4 = 搁置 - 5 = 抛弃
            - `updatedAt` integer, required
          - `locked` boolean, required
          - `metaTags` string[], required
          - `name` string, required
          - `nameCN` string, required
          - `nsfw` boolean, required
          - `rating` SubjectRating, required
            - `count` integer[], required
            - `rank` integer, required
            - `score` number, required
            - `total` integer, required
          - `type` 1 | 2 | 3 | 4 | 6, required — 条目类型 - 1 = 书籍 - 2 = 动画 - 3 = 音乐 - 4 = 游戏 - 6 = 三次元 没有 5
    - `reactions` Reaction[]
      - `users` SimpleUser[], required
        - `id` integer, required
        - `nickname` string, required
        - `username` string, required
      - `value` integer, required
    - `replies` integer, required
    - `source` TimelineSource, required
      - `name` string, required
      - `url` string
    - `type` integer, required
    - `uid` integer, required
    - `user` SlimUser
      - `avatar` Avatar, required
        - `large` string, required
        - `medium` string, required
        - `small` string, required
      - `group` integer, required
      - `id` integer, required
      - `isFriend` boolean, required — Whether the authenticated user has added this user as a friend; false when the endpoint does not populate viewer friendship
      - `joinedAt` integer, required
      - `nickname` string, required
      - `sign` string, required
      - `username` string, required

## Other responses

- `500` — 意料之外的服务器错误

---

[API](https://skmtc.net/bangumi/apis/bangumi-private-api.md) · [All operations](https://skmtc.net/bangumi/apis/bangumi-private-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bangumi/bangumi-private-api/revisions/645c5a56dde8/schema)
