Create extend

Gives your running coding run more time.

POST /v1/agent/coding/{session}/extend

Addresshttps://api.hanzo.ai/v1/agent/coding/{session}/extend
MethodPOST
Operationpost_agent_coding_by_session_extend
AuthAuthorization: Bearer $HANZO_API_KEY

Gives your running coding run more time. A run is held to the time it was asked for (timeoutSeconds) and, when it is up, keeps its work on its branch and ends; this moves that time later while the run works, so a task expected to take five minutes that is nearly done is given two more rather than restarted. seconds is added to the time the run has left, as far as the longest a run may be given; the answer says when the run is up now, so asking for more than that reads what you got.

The run must be yours and still working: a run that is paused or already out of time is a conflict (start a new one with after set to its session), and one that is not running is not found. A run sent to a machine of your own keeps that machine's time and cannot be extended.

Request

3 fields, body application/json (required).

FieldInTypeRequiredDescription
sessionpathstringyesSession is the run's handle, from the path.
secondsbodyinteger (int64)—Seconds is how much to add to the time the run is held to.
sessionbodystring—Session is the run's handle, from the path.

Response

StatusBodyMeaning
200agent.CodingExtendedok
defaultproblem-detailsrefused

200 body — 2 fields.

FieldInTypeAlwaysDescription
secondsbodyinteger (int64)—Seconds is how long the run has left.
untilbodystring—Until is when the run is ended for time now, as an RFC 3339 time.

Failure carries the platform error shape — see Errors.

Examples

hanzo agent coding extend <session>
import { Configuration, AgentApi } from 'hanzoai';

const api = new AgentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postAgentCodingBySessionExtend({ session: 'session', seconds: 0, session: "<session>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AgentApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AgentApi(client).post_agent_coding_by_session_extend(session='session', seconds=0, session="<session>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.AgentAPI.PostAgentCodingBySessionExtend(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, agent_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = agent_api::post_agent_coding_by_session_extend(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AgentApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new AgentApi(client).postAgentCodingBySessionExtend();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl -X POST https://api.hanzo.ai/v1/agent/coding/<session>/extend \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "seconds": 0,
       "session": "<session>"
     }'

MCP reaches agent through the agent tool, which names its 51 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_agents"
         }
       }
     }'

Agent API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.