List tools

Returns the per-use tool prices — web search, web fetch, code interpreter, file storage, image generation, speech-to-text and text-to-speech — each with the unit it is billed by and its price in that unit.

GET /v1/pricing/tools

Addresshttps://api.hanzo.ai/v1/pricing/tools
MethodGET
Operationget_pricing_tools
AuthAuthorization: Bearer $HANZO_API_KEY

Returns the per-use tool prices — web search, web fetch, code interpreter, file storage, image generation, speech-to-text and text-to-speech — each with the unit it is billed by and its price in that unit.

The two WEB rows are priced from the rate card rather than from the catalog, because those are the rows the platform charges by the call and a published number that is also a charged one has exactly one home (see tariff.go). Read them as integer micro-USD at /v1/pricing/tariff; the decimal here is the display this list has always carried.

Request

GET /v1/pricing/tools takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200pricing.pricingToolListok
defaultproblem-detailsrefused

200 body — 2 fields.

FieldInTypeAlwaysDescription
toolsbodyobject[]—Tools are the metered tools, each an opaque object exactly as the pricing source emits it — typically name, billing unit and price.
tools[].*bodyany—

Failure carries the platform error shape — see Errors.

Examples

hanzo pricing tools
import { Configuration, PricingApi } from 'hanzoai';

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

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

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

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

let result = pricing_api::get_pricing_tools(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.PricingApi;

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

var result = new PricingApi(client).getPricingTools();
curl https://api.hanzo.ai/v1/pricing/tools \
  -H "Authorization: Bearer $HANZO_API_KEY"

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

Pricing API · All Hanzo APIs · Interactive reference

Was this page useful?