Streaming
New rows pushed as they land, over server-sent events on the same key.
The door
builder plan and upGET https://pnl.meme/v1/stream
A browser's EventSource cannot send an Authorization header, and a key does not belong in a page anyway. Stream from your server, and forward what you need.
Channels
A channel is a read you could make yourself: its rows are exactly what that capability answers on POST /v1/skills/run. A row is sent the first time the connection sees it.
Query
What arrives
Four kinds of frame. A client that reads event, id and data, and skips comment lines, reads all of them.
event: open
data: {"channels":["early","radar"]}
event: early
id: <event id>
data: <row>
: ping
event: end
data: {"reason":"lifetime"}
Connect
curl -N "https://pnl.meme/v1/stream?channels=early,radar&snapshot=1" \
-H "Authorization: Bearer pnl_..."
Open streams per plan
A stream ends itself after a fixed lifetime with an end frame. Reconnect then: each open counts one call against the day.
Refusals
The partner Data APIs carry streams of their own, resumable by cursor: /v1/fomo/stream and /v1/pump/stream, each on its reference page. Every refusal is the shared error shape.