Refreshes the third-party section of the catalog from its upstream listings and…
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 the MCP door'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"The door reaches pricing through the pricing tool, which names its 33 operations with its own verbs — this one among them, under a name only the door 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?