Create artifact meta
The HTTP transport binding for the RESTful router-config nouns (/v1/ai/router/{policy,defaults,ledger,rewards,artifact-meta} and /v1/ai/org/settings[/list]).
POST /v1/ai/router/artifact-meta
| Address | https://api.hanzo.ai/v1/ai/router/artifact-meta |
| Method | POST |
| Operation | post_ai_router_artifact-meta |
| Auth | Authorization: Bearer $HANZO_API_KEY |
The HTTP transport binding for the RESTful router-config nouns (/v1/ai/router/{policy,defaults,ledger,rewards,artifact-meta} and /v1/ai/org/settings[/list]). It dispatches IN-PROCESS through dispatchGateway — the SAME canonical ZAP gateway registry (zap_registry.go) that the MsgType 200 handler serves over the gateway transport. The native ZAP handler is the ONE and ONLY implementation of these routes; this is purely the api.hanzo.ai HTTP binding, so there is NO controller twin to drift from and the split-brain the router refactor removed stays removed.
Why a bridge and not a twin controller method: one handler serves both transports, so the HTTP route and the ZAP message read and write router settings through the same code and cannot come to disagree about them. Routing these nouns through the ZAP handler over one adapter keeps a single source of truth.
Identity is the request's own Bearer credential (Authorization header), which the native handlers resolve exactly as the gateway does — every caller (console, chat, app) already sends it. The dispatched handler returns a ZAP message whose status is field 0 and body is field 4 (BuildCloudResponse / BuildGatewayResponse layout); both are relayed verbatim. The route is mapped "*" (any verb) because the native handler is method-aware: /v1/ai/router/policy splits GET (read) vs PUT (write), /v1/ai/org/settings GET/PUT/DELETE, and returns 405 for a verb it does not own.
Request
The document declares no body for POST /v1/ai/router/artifact-meta. 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_ai_router_artifact-meta, which answers from the running route.
Response
| Status | Body | Meaning |
|---|---|---|
200 | ai.Response | Success. |
401 | — | No credential, or one this service does not accept. |
403 | — | A valid credential that may not do this. |
200 body — 5 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
code | body | string | — | |
data | body | any | — | |
data2 | body | any | — | |
msg | body | string | — | |
status | body | string | — |
Failure carries the platform error shape — see Errors.
Examples
hanzo ai router artifact-meta createimport { Configuration, AiApi } from 'hanzoai';
const api = new AiApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postAiRouterArtifact-meta();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AiApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AiApi(client).post_ai_router_artifact-meta()cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.AiAPI.PostAiRouterArtifact-meta(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, ai_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = ai_api::post_ai_router_artifact-meta(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AiApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new AiApi(client).postAiRouterArtifact-meta();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl -X POST https://api.hanzo.ai/v1/ai/router/artifact-meta \
-H "Authorization: Bearer $HANZO_API_KEY"MCP declares no tool for ai — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.