List logs
Is the output of a function's most recent run — its error text when that run failed, else what it printed.
GET /v1/function/{name}/logs
| Address | https://api.hanzo.ai/v1/function/{name}/logs |
| Method | GET |
| Operation | get_function_by_name_logs |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Is the output of a function's most recent run — its error text when that run failed, else what it printed.
It is the LAST run only, and it is empty when the function has never run. There is no log retention behind this beyond the recorded invocation itself.
Request
1 field.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
name | path | string | yes | Name is the function the URL names. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | function.logLines | ok |
default | problem-details | refused |
200 body — 1 field.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
logs | body | string | — | Logs is that run's error text when it failed, else its output. |
Failure carries the platform error shape — see Errors.
Examples
hanzo function logs <name>import { Configuration, FunctionApi } from 'hanzoai';
const api = new FunctionApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getFunctionByNameLogs({ name: 'name' });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import FunctionApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = FunctionApi(client).get_function_by_name_logs(name='name')cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.FunctionAPI.GetFunctionByNameLogs(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, function_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = function_api::get_function_by_name_logs(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.FunctionApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new FunctionApi(client).getFunctionByNameLogs();The method above is the one at the current release of the document. [email protected] (npm) was 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 https://api.hanzo.ai/v1/function/<name>/logs \
-H "Authorization: Bearer $HANZO_API_KEY"MCP reaches function through the functions tool, which names its 10 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_functions"
}
}
}'How is this guide?