List events

Answers a job's events after a cursor — status changes, the coordinator's address, metrics, log lines, artifacts and the result — waiting up to wait seconds for the first new one, so a caller following a run holds one request at a time.

GET /v1/train/jobs/{id}/events

Addresshttps://api.hanzo.ai/v1/train/jobs/{id}/events
MethodGET
Operationget_train_jobs_by_id_events
AuthAuthorization: Bearer $HANZO_API_KEY

Answers a job's events after a cursor — status changes, the coordinator's address, metrics, log lines, artifacts and the result — waiting up to wait seconds for the first new one, so a caller following a run holds one request at a time.

Request

3 fields.

FieldInTypeRequiredDescription
idpathstringyesID names the job.
afterqueryinteger—After is the last seq the caller holds; 0 reads from the start.
waitqueryinteger—Wait is how many seconds to hold the request for a first new event, at most 25.

Response

StatusBodyMeaning
200train.eventsOutok
defaultproblem-detailsrefused

200 body — 7 fields.

FieldInTypeAlwaysDescription
databodytrain.event[]—Data is the events after the cursor, in order.
data[].atbodyinteger (int64)—At is when it was recorded, unix seconds.
data[].eventbodyany—Body is the event as its executor reported it.
data[].seqbodyinteger (int64)—Seq orders the job's events from 1.
data[].taskbodystring—Task is the task that reported it.
nextbodyinteger (int64)—Next is the cursor to pass as after.
statusbodystring—Status is the job's status as of this answer.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.

import { Configuration, TrainApi } from 'hanzoai';

const api = new TrainApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getTrainJobsByIdEvents({ id: 'id' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import TrainApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = TrainApi(client).get_train_jobs_by_id_events(id='id')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

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

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

let result = train_api::get_train_jobs_by_id_events(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.TrainApi;

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

var result = new TrainApi(client).getTrainJobsByIdEvents();
curl https://api.hanzo.ai/v1/train/jobs/<id>/events \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP declares no tool for train — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.


Train API · All Hanzo APIs · Interactive reference

Was this page useful?