---
title: "Registry change feed stream"
method: GET
path: "/api/registry/feed/stream"
tags: ["Change Feed"]
---

# Registry change feed stream

`GET /api/registry/feed/stream`

Subscribe to registry feed pages over Server-Sent Events. This is a push-friendly transport for the same cursor contract as `/api/registry/feed`: clients still persist `cursor`, apply only feed events, and recover from `cursor_expired` by re-bootstrapping. The stream emits `feed` events containing a full feed page, `heartbeat` events while caught up, and `error` before closing when the cursor expires or the server cannot query the feed.

## Query parameters

- `cursor` string, uuid — Resume after this event ID
- `types` string — Comma-separated event type filters with glob support (e.g. property.*)
- `limit` integer — Max events per SSE feed page (default 100, max 10,000)
- `poll_interval_seconds` integer — Server-side interval while caught up (default 15 seconds). Backlog pages are sent without waiting.

## Response `200`

SSE stream. `event: feed` data validates as a registry feed page.

## Other responses

- `400` — Invalid cursor format, type filter, limit, or poll interval
- `401` — Authentication required
- `410` — Initial cursor expired

---

[API](https://skmtc.net/adcontextprotocol/apis/agenticadvertising-org-registry-api.md) · [All operations](https://skmtc.net/adcontextprotocol/apis/agenticadvertising-org-registry-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adcontextprotocol/agenticadvertising-org-registry-api/revisions/9ea7fedf54c0/schema)
