Media

Money

Dispatch

Company

WAVE · Realtime

WAVE Realtime

Your broadcast talks back. Two IETF standards, WHIP ingest and WHEP egress, plus N-to-N rooms, gated on the same gateway and the same token as WAVE broadcast. No second stack, no second bill.

  browser
    │  WebRTC
    ▼
  POST /v1/whip/publish    ─▶ ingest (IETF WHIP)
  POST /v1/whep/subscribe  ─▶ egress (IETF WHEP)
  POST /rtk/join           ─▶ N-to-N room + voice agent
    │
    └─ an internal trust header, stamped by api.wave.online AFTER it authenticates and charges the call
ingestPOST /v1/whip/publish standard WHIP · live
egressPOST /v1/whep/subscribe standard WHEP · live
roomsPOST /rtk/join N-to-N meeting + join token · live
authAuthorization: Bearer <key> (via api.wave.online; this edge makes zero auth decisions)
healthGET /health → 200 {"ok":true}
WHIPWHEProomsvoice agents

Three routes. Check that all three are real.

A roadmap page returns 404. A demo returns 200 to anyone. These return 401, which is the interesting answer: the request reached a live handler and was refused for exactly one reason, the gateway's trust header. Run all three yourself. No key needed.

$ curl -s -X POST https://rt.wave.online/v1/whip/publish
$ curl -s -X POST https://rt.wave.online/v1/whep/subscribe
$ curl -s -X POST https://rt.wave.online/rtk/join

401 {"error":"UNAUTHORIZED",
     "message":"paid endpoint — call via api.wave.online"}

Every route answers. None answers for free. WHIP ingest, WHEP egress and rooms pass the same chokepoint, so one place decides who is authorized and one meter charges them.

Get a WAVE key → Read /skill.md →

One plane, both directions. WAVE is media infrastructure for the agentic internet: one call shape moves live and on-demand media, and both kinds of user, people and agents, call it and pay for it per call. The broadcast plane carries one-to-many. This spoke is the interactive half, with rooms, calls and voice agents authorized by the same token and metered through the same gateway.