---
title: "Story change feed since a given time"
method: GET
path: "/api/stories/changes"
---

# Story change feed since a given time

`GET /api/stories/changes`

## Request

- Base URL: `https://techsnif.com`
- URL: `https://techsnif.com/api/stories/changes`
- Auth: none declared

Merged feed of story.new events (cluster first seen after since) and story.updated events (existing cluster re-seen after since), ordered oldest first. Designed for polling: pass nextCursor back as since to continue where the last page ended.

## Query parameters

- `since` string, date-time
- `limit` integer

## Response `200`

Change feed

- ChangesResponse
  - `changes` StoryChange[]
    - `type` 'story.new' | 'story.updated'
    - `at` string, date-time
    - `story` StorySummary: Compact story cluster reference used by the changes feed, trending list, and SSE stream.
      - `slug` string
      - `headline` string
      - `tier` integer: Headline tier: 1=standard, 2=major, 3=top story
      - `rank` integer: Front page position, lower is more prominent
      - `leadUrl` string, uri
      - `sourcePublisher` string, nullable
      - `url` string, uri: TechSnif story page
      - `topics` string[]
  - `nextCursor` string, date-time, nullable: Timestamp of the last returned event. Pass back as since to continue.
  - `hasMore` boolean

---

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