History
Every call on a screen with the screenshot it returned, kept 30 days.
Read the screen's history
Needs the read permission. Answers within 28 s.
Every call made on the screen, newest first: what was called, its parameters and typed text, which key or app called it, its run label, the result, how long it took and the screenshot it returned. Changes to the screen are rows too. Kept 30 days. With detailed history off, rows keep only what was called, by whom, when and the result. The live view is never recorded, and typed text that matches an organization secret is replaced. Rows are written after the reply, never on the call's path. To follow live, pass since (a row id) with wait_s and get newer rows oldest first.
path Parameters
screen_id^scr_[0-9a-z]{20}$ · requiredScreen id (scr_...).
query Parameters
limitPage size, 1 to 100.
after^[A-Za-z0-9_-]+$Opaque cursor from the previous page's next.
wait_sLong poll: hold the reply up to this many seconds until something changes. 0 answers at once. Capped at 25 so every call ends within 30 s.
since^evt_[0-9a-z]{20}$Follow mode: return rows newer than this id, oldest first.
runOnly rows with this Kubi-Run label.
actorOnly rows by this kind of actor.
errors_onlyOnly rows whose result is an error.
Headers
Kubi-Run^[ -~]{1,100}$Optional label that groups calls into one run in the screen's history. It is only a label and never locks the screen. The SDK fills it from KUBI_RUN, else Claude Code's CLAUDE_CODE_SESSION_ID, else one id per client it creates.
Read the screen's history › Responses
Success.
Get a saved screenshot
Needs the read permission. Answers within 5 s.
The exact image a call returned, from the screen's history, as image bytes. Kept 30 days, then 404 NOT_FOUND. Nothing is saved while detailed history is off.
path Parameters
screen_id^scr_[0-9a-z]{20}$ · requiredScreen id (scr_...).
screenshot_id^shot_[0-9a-z]{20}$ · requiredSaved screenshot id (shot_...), from a reply or a history row.
Headers
Kubi-Run^[ -~]{1,100}$Optional label that groups calls into one run in the screen's history. It is only a label and never locks the screen. The SDK fills it from KUBI_RUN, else Claude Code's CLAUDE_CODE_SESSION_ID, else one id per client it creates.
Get a saved screenshot › Responses
Success.