Skip to content

Radio

Connect to the anonymous listening room

GET /api/radio/presence

Requires a same-origin Origin header and WebSocket upgrade. Text frames follow RadioPresenceReportV1; server messages follow RadioPresenceSnapshotV1. Counts are self-reported sessions, expire after 75 seconds, and do not establish unique listeners. Optional normalized cursors are confined to the room. See the radio specification for frame limits and heartbeat requirements.

Markdown · Authoritative OpenAPI

Request policy

Operation
joinRadioPresence
Access
anonymous
Automatic retries
None
Redirects
Returned to the caller without following
Request body limit
No request body
Pagination
No collection iterator

Parameters

No path or query parameters.

Responses

101

WebSocket connected

403

Origin rejected

426

WebSocket upgrade required

429

Admission limited; Retry-After: 60

503

Room unavailable or full

Examples

Examples use synthetic fixture values. Replace fixture identifiers with public IDs returned by the service. Request bodies and precise locations are transient; keep them out of logs.

curl

curl --fail-with-body --max-time 30 --max-filesize 16777216 --request GET 'https://irvinebroque.com/api/radio/presence'

TypeScript

import { PublicApi } from '@irvinebroque/public-api';
const api = new PublicApi();
const result = await api.radio.presenceProbe({});
console.log(result.status, result.headers.get('content-type')); // Keep transient capabilities in memory.

CLI

irvinebroque radio presence-probe

The SDK preserves status, headers, and the server envelope. A 304 has no fresh body. Errors retain structured problem details; ordinary error messages omit response details. Responses are limited to 16 MiB and requests time out after 30 seconds by default.