Discover lists every tool and agent the caller can reach in their own org and…
Discover lists every tool and agent the caller can reach in their own org and project, enriched with any public listing's title, category and price, and…
GET /v1/marketplace
| Address | https://api.hanzo.ai/v1/marketplace |
| Method | GET |
| Operation | get_marketplace |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Discover lists every tool and agent the caller can reach in their own org and project, enriched with any public listing's title, category and price, and with installed=true on the ones already activated for that scope. It is the shop window: one read that answers what exists, what it costs and what is already on.
Request
GET /v1/marketplace takes no parameters and no body — the credential is the whole request.
Response
| Status | Body | Meaning |
|---|---|---|
200 | marketCatalog | ok |
200 body — 14 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
items | body | marketItem[] | — | Items is every capability the caller can see in their own (org, project), each carrying any public listing's shop metadata and whether it is installed. |
items[].activated | body | boolean | — | |
items[].category | body | string | — | Category is that same listing's grouping. |
items[].description | body | string | — | |
items[].dispatchable | body | boolean | — | |
items[].inputSchema | body | any | — | |
items[].installed | body | boolean | — | Installed is whether the tool is activated for THIS caller's (org, project): the same bit as Activated, under the shop's name for it, which install and… |
items[].name | body | string | — | |
items[].price | body | Price | — | |
items[].price.amount | body | any | — | Amount is what ONE call costs, EXACTLY: an 18-decimal USD value, so a per-call price of 0.0025 and not a cent-floored zero. |
items[].price.currency | body | string | — | Currency is the ISO 4217 code, e.g. |
items[].price.recipient | body | string | — | Recipient is the payout wallet ref the marketplace seller is paid at. |
items[].source | body | string | — | |
items[].title | body | string | — | Title is the shop-window name, painted over the registry Name from the CHEAPEST public listing for this tool — several orgs may list the same one, and the row… |
Failure carries the platform error shape — see Errors.
Examples
hanzo marketplace getimport { Configuration, MarketplaceApi } from 'hanzoai';
const api = new MarketplaceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getMarketplace();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketplaceApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketplaceApi(client).get_marketplace()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.MarketplaceAPI.GetMarketplace(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, marketplace_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = marketplace_api::get_marketplace(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketplaceApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new MarketplaceApi(client).getMarketplace();curl https://api.hanzo.ai/v1/marketplace \
-H "Authorization: Bearer $HANZO_API_KEY"Tool marketplace, op get_marketplace — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "marketplace",
"arguments": {
"op": "get_marketplace",
"input": {}
}
}
}'How is this guide?