List skills

Lists the skills the caller's org can reach — the brand's embedded catalogue plus the org's own authored ones — with each one's activation flag.

GET /v1/tool/skills

Addresshttps://api.hanzo.ai/v1/tool/skills
MethodGET
Operationget_tool_skills
AuthAuthorization: Bearer $HANZO_API_KEY

Lists the skills the caller's org can reach — the brand's embedded catalogue plus the org's own authored ones — with each one's activation flag. A skill is discovery and activation metadata attached to an agent, never called directly, so every entry here is non-dispatchable. It is GET /v1/tool narrowed to one source, not a second store: a name a caller sees here is the same entry, with the same activation state, that discovery reports.

Request

1 field.

FieldInTypeRequiredDescription
activatedquerystring—Activated keeps only the tools activated for the caller's org and project, and only when it is exactly the string "true".

Response

StatusBodyMeaning
200tool.sourceToolListok
defaultproblem-detailsrefused

200 body — 12 fields.

FieldInTypeAlwaysDescription
sourcebodystring—Source is the source these tools came from.
toolsbodytool.Tool[]—Tools is the caller's tools from that source.
tools[].activatedbodyboolean—Activated is filled by the registry from the activation store for the requesting (org,project); providers leave it zero.
tools[].descriptionbodystring—Description is the prose a model reads to decide whether to call the tool.
tools[].dispatchablebodyboolean—Dispatchable is whether the tool can be CALLED.
tools[].inputSchemabodyany—Schema is the JSON Schema of the call arguments — the MCP inputSchema.
tools[].namebodystring—Name is the tool's id in the flat, fleet-wide tool namespace — the value a tools/call passes.
tools[].pricebodytool.Price—
tools[].price.amountbodyany—Amount is what ONE call costs, EXACTLY: an 18-decimal USD value, so a per-call price of 0.0025is0.0025 is 0.0025 and not a cent-floored zero.
tools[].price.currencybodystring—Currency is the ISO 4217 code, e.g. "USD".
tools[].price.recipientbodystring—Recipient is the payout wallet ref the marketplace seller is paid at.
tools[].sourcebodystring—Source is where the tool comes from: connector, function, zap-service, agent, skill or mcp.

Failure carries the platform error shape — see Errors.

Examples

hanzo tool skills list
import { Configuration, ToolApi } from 'hanzoai';

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

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

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

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

let result = tool_api::get_tool_skills(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ToolApi;

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

var result = new ToolApi(client).getToolSkills();
curl https://api.hanzo.ai/v1/tool/skills \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches tool through the tool tool, which names its 17 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_tools"
         }
       }
     }'

Tool API · All Hanzo APIs · Interactive reference

Was this page useful?