Skip to main content
All run-control verbs ship as both SDK methods and HTTP endpoints. The HTTP layer is what AgentOS exposes for the FE; the SDK is what you call from your own Python code.

Endpoint Summary

Team variants exist at /teams/{team_id}/... with identical shapes.

POST /continue

Form-encoded body. All fields optional.

Example: HITL resolve

Example: Regenerate

Example: Fork at boundary

Response

The new RunOutput (or the resumed one if same run_id). Lineage fields populated when applicable:

GET /checkpoints

List the message boundaries the FE can offer as resume points.

Response

Fields

Every message_index returned is pair-safe. Passing it back as continue_from will never get snapped.

GET /checkpoints/{message_index}

Return a truncated snapshot of the run at the chosen boundary. The stored run is never mutated.

Response

Use to preview “this is what the run will look like if you continue from here” before firing the actual /continue.

POST /sessions/{session_id}/branch

Deep-copy every run from the source session into a new session.

Response

The caller’s user_id scopes the source session read. Users cannot branch sessions they don’t own.

Status Codes

Team Endpoints

Identical surface at /teams/{team_id}/...:
  • POST /teams/{team_id}/runs/{run_id}/continue
  • GET /teams/{team_id}/runs/{run_id}/checkpoints
  • GET /teams/{team_id}/runs/{run_id}/checkpoints/{message_index}
  • POST /teams/{team_id}/sessions/{session_id}/branch
Same request shape, same response shape. Team runs have team_id instead of agent_id and a member_responses array on the run.

SDK Equivalents

All async variants exist (acontinue_run, abranch_session).