---
title: "Live Vote Feed"
method: GET
path: "/api/v1/rankings/{ranking_id}/live"
tags: ["Live Feed"]
---

# Live Vote Feed

`GET /api/v1/rankings/{ranking_id}/live`

## Request

- Base URL: `https://app.aimrank.io` (the document declares no server; this is the origin it was published from)
- URL: `https://app.aimrank.io/api/v1/rankings/{ranking_id}/live`
- Auth: none declared

Stream live vote events for a ranking via Server-Sent Events.

Visibility-gated: a private ranking returns 404 to anonymous / non-owner
callers (never 403), exactly like every other ranking-scoped read — so the
live preference stream of an owner_private ranking can't be observed by
guessing its id.

Connect with EventSource:
    const es = new EventSource('/api/v1/rankings/{id}/live');
    es.addEventListener('vote', (e) => console.log(JSON.parse(e.data)));
    es.addEventListener('viewers', (e) => console.log(JSON.parse(e.data)));

Events:
    - vote: {entity_a, entity_b, winner, timestamp}
    - viewers: {count}
    - heartbeat: {time} (every 15s)

## Path parameters

- `ranking_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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