Create report

Completes a claimed run: it delivers the terminal result to the run's durable owner, which is what lets that workflow finish.

POST /v1/agent/targets/{id}/runs/{runId}/report

Addresshttps://api.hanzo.ai/v1/agent/targets/{id}/runs/{runId}/report
MethodPOST
Operationpost_agent_targets_by_id_runs_by_runid_report
AuthAuthorization: Bearer $HANZO_API_KEY

Completes a claimed run: it delivers the terminal result to the run's durable owner, which is what lets that workflow finish. Scoped to (org, target, run) and claim-key authenticated, so a machine can only ever report a run it legitimately holds. Idempotent — a report for an unknown or already-finished run answers delivered:false rather than failing, because the session's terminal state was already set by the machine's own stream.

Request

10 fields, body application/json (required).

FieldInTypeRequiredDescription
idpathstringyesID is the machine reporting, from the path.
runIdpathstringyesRunID is the routed run being completed, from the path.
branchbodystring—Branch, CommitSha and Diffstat describe what the run produced; Error is the failure when OK is false.
changedbodyboolean—Changed says whether the run produced any commit.
commitShabodystring—CommitSha is the tip the run pushed, clamped to 128 characters.
diffstatbodystring—Diffstat is the run's own summary of what it changed, as text, clamped to 64 KiB.
errorbodystring—Error is why the run failed, clamped to 64 KiB.
idbodystring—ID is the machine reporting, from the path.
okbodyboolean—OK is whether the run succeeded; Changed whether it produced any commit.
runIdbodystring—RunID is the routed run being completed, from the path.

Response

StatusBodyMeaning
200agent.reportOutok
defaultproblem-detailsrefused

200 body — 1 field.

FieldInTypeAlwaysDescription
deliveredbodyboolean—Delivered is true when a waiting durable owner received this result.

Failure carries the platform error shape — see Errors.

Examples

hanzo agent targets runs report <id> <runId>
import { Configuration, AgentApi } from 'hanzoai';

const api = new AgentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postAgentTargetsByIdRunsByRunidReport({ id: 'id', runId: 'runId', branch: "<branch>", changed: false });
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_targets_by_id_runs_by_runid_report(id='id', run_id='runId', branch="<branch>", changed=False)
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.AgentAPI.PostAgentTargetsByIdRunsByRunidReport(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_targets_by_id_runs_by_runid_report(&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).postAgentTargetsByIdRunsByRunidReport();
curl -X POST https://api.hanzo.ai/v1/agent/targets/<id>/runs/<runId>/report \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "branch": "<branch>",
       "changed": false
     }'

MCP reaches agent through the agent tool, which names its 38 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?