Sync pricing
Refreshes the third-party section of the catalog from its upstream listings and returns the time the refreshed catalog was stamped with.
POST /v1/pricing/sync
| Address | https://api.hanzo.ai/v1/pricing/sync |
| Method | POST |
| Operation | post_pricing_sync |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Refreshes the third-party section of the catalog from its upstream listings and returns the time the refreshed catalog was stamped with. The fetch runs in Go and the markup transform in the pricing bundle. SuperAdmin only; every other caller is refused.
Request
The document declares no body for POST /v1/pricing/sync. The handler is typed in cloud but its shape is not yet emitted, so the fields are not listed here — ask MCP's describe for post_pricing_sync, which answers from the running route.
Response
| Status | Body | Meaning |
|---|---|---|
200 | pricingSyncOut | ok |
200 body — 2 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
status | body | string | — | Status is "ok" when the sync completed. |
updated | body | string | — | Updated is the RFC 3339 time the refreshed catalog was stamped with. |
Failure carries the platform error shape — see Errors.
Examples
hanzo pricing syncimport { Configuration, PricingApi } from 'hanzoai';
const api = new PricingApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postPricingSync();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).post_pricing_sync()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.PricingAPI.PostPricingSync(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::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::post_pricing_sync(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.PricingApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new PricingApi(client).postPricingSync();curl -X POST https://api.hanzo.ai/v1/pricing/sync \
-H "Authorization: Bearer $HANZO_API_KEY"MCP reaches pricing through the pricing tool, which names its 33 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": "get_admin_catalog"
}
}
}'How is this guide?