curl -N "https://app.runtm.com/api/cloud/sessions/ses_abc123/events" \
-H "Authorization: Bearer runtm_xxx" \
-H "Accept: text/event-stream"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/sessions/ses_abc123/events",
headers={
"Authorization": "Bearer runtm_xxx",
"Accept": "text/event-stream",
},
stream=True,
)
for line in response.iter_lines():
if line:
print(line.decode())
const eventSource = new EventSource(
"https://app.runtm.com/api/cloud/sessions/ses_abc123/events",
{
headers: { "Authorization": "Bearer runtm_xxx" },
}
);
eventSource.addEventListener("prompt_progress", (e) => {
console.log("Progress:", JSON.parse(e.data));
});
eventSource.addEventListener("file_changed", (e) => {
console.log("File changed:", JSON.parse(e.data));
});
eventSource.addEventListener("state_changed", (e) => {
console.log("State:", JSON.parse(e.data));
});
event: prompt_progress
data: {"type": "text", "content": "Creating the API route..."}
event: file_changed
data: {"path": "/src/routes/users.ts", "action": "created"}
event: state_changed
data: {"state": "active", "previous_state": "paused"}
event: heartbeat
data: {"timestamp": "2026-05-09T21:00:00Z"}
Prompts
Session Events
Subscribe to real-time session events via SSE
GET
/
api
/
sessions
/
{session_id}
/
events
curl -N "https://app.runtm.com/api/cloud/sessions/ses_abc123/events" \
-H "Authorization: Bearer runtm_xxx" \
-H "Accept: text/event-stream"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/sessions/ses_abc123/events",
headers={
"Authorization": "Bearer runtm_xxx",
"Accept": "text/event-stream",
},
stream=True,
)
for line in response.iter_lines():
if line:
print(line.decode())
const eventSource = new EventSource(
"https://app.runtm.com/api/cloud/sessions/ses_abc123/events",
{
headers: { "Authorization": "Bearer runtm_xxx" },
}
);
eventSource.addEventListener("prompt_progress", (e) => {
console.log("Progress:", JSON.parse(e.data));
});
eventSource.addEventListener("file_changed", (e) => {
console.log("File changed:", JSON.parse(e.data));
});
eventSource.addEventListener("state_changed", (e) => {
console.log("State:", JSON.parse(e.data));
});
event: prompt_progress
data: {"type": "text", "content": "Creating the API route..."}
event: file_changed
data: {"path": "/src/routes/users.ts", "action": "created"}
event: state_changed
data: {"state": "active", "previous_state": "paused"}
event: heartbeat
data: {"timestamp": "2026-05-09T21:00:00Z"}
Opens a Server-Sent Events (SSE) stream of real-time session events. Events include prompt progress, file changes, process output, and state transitions.
Required scope:
sessions:prompt
Path Parameters
string
required
The session ID (e.g.
ses_abc123).Headers
string
required
Bearer token. Example:
Bearer runtm_xxxResponse
Returns atext/event-stream with events in SSE format.
string
Event type:
prompt_progress, file_changed, process_output, state_changed, heartbeat.object
Event-specific payload.
curl -N "https://app.runtm.com/api/cloud/sessions/ses_abc123/events" \
-H "Authorization: Bearer runtm_xxx" \
-H "Accept: text/event-stream"
import requests
response = requests.get(
"https://app.runtm.com/api/cloud/sessions/ses_abc123/events",
headers={
"Authorization": "Bearer runtm_xxx",
"Accept": "text/event-stream",
},
stream=True,
)
for line in response.iter_lines():
if line:
print(line.decode())
const eventSource = new EventSource(
"https://app.runtm.com/api/cloud/sessions/ses_abc123/events",
{
headers: { "Authorization": "Bearer runtm_xxx" },
}
);
eventSource.addEventListener("prompt_progress", (e) => {
console.log("Progress:", JSON.parse(e.data));
});
eventSource.addEventListener("file_changed", (e) => {
console.log("File changed:", JSON.parse(e.data));
});
eventSource.addEventListener("state_changed", (e) => {
console.log("State:", JSON.parse(e.data));
});
event: prompt_progress
data: {"type": "text", "content": "Creating the API route..."}
event: file_changed
data: {"path": "/src/routes/users.ts", "action": "created"}
event: state_changed
data: {"state": "active", "previous_state": "paused"}
event: heartbeat
data: {"timestamp": "2026-05-09T21:00:00Z"}