---
title: "Incremental delta feed"
method: GET
path: "/api/v1/feed"
tags: ["feed"]
---

# Incremental delta feed

`GET /api/v1/feed`

## Request

- Base URL: `https://horizon.alchemylab.sh`
- URL: `https://horizon.alchemylab.sh/api/v1/feed`
- Auth: HTTP bearer

Poll for newly-added items without re-fetching. Pass the returned nextCursor back as `since` on the next call. Full bodies, up to 200 items/page.

## Query parameters

- `since` string
- `limit` integer

## Response `200`

Items oldest→newest plus a forward cursor.

- object
  - `items` ContentItem[]
    - `id` string, uuid, required
    - `source` 'hackernews' | 'reddit' | 'twitter' | 'bluesky' | 'rss' | 'arxiv' | 'huggingface' | 'lobsters' | 'modelscope', required
    - `url` string, nullable
    - `title` string, required
    - `body` string, nullable
    - `author` string, nullable
    - `publishedAt` string, date-time, required
    - `relevanceScore` number, nullable: 0–1 AI-relevance score.
    - `trendingScore` number, nullable
    - `topics` string[]
    - `clusterSize` integer: How many near-duplicate stories this representative stands for.
    - `corroboration` object: How independently this story is corroborated across its cluster — a provenance signal, never a truth verdict.
      - `level` 'primary' | 'corroborated' | 'reported' | 'unverified'
      - `publishers` integer: Distinct independent publisher hosts in the cluster.
      - `tiers` object: Distinct publishers per credibility tier.
        - `primary` integer
        - `expert` integer
        - `media` integer
        - `community` integer
      - `label` string: Short, glanceable summary.
  - `nextCursor` string, nullable
  - `hasMore` boolean

## Other responses

- `400`: Error
- `401`: Error
- `429`: Error

---

[API](https://skmtc.dev/alchemylab/apis/horizon-api.md) · [All operations](https://skmtc.dev/alchemylab/apis/horizon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/alchemylab/apis/horizon-api/revisions/936cb3804026?raw)
