Answers GET /v1/world — the product's front door, naming every wire this…
Answers GET /v1/world — the product's front door, naming every wire this surface answers on.
GET /v1/world
| Address | https://api.hanzo.ai/v1/world |
| Method | GET |
| Operation | get_world |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Answers GET /v1/world — the product's front door, naming every wire this surface answers on.
It exists because two of those wires are INVISIBLE to the generated document. /v1/world/mcp and /v1/world/zap are carved off the cloud catch-all by the ingress and answered by world-gw, so the cloud router never serves them — and openapi.Describe renders prose only for a route the router actually serves, which is the very property that keeps the document from being able to claim an operation nothing answers. Both addresses are real and public, so without this op the only way to learn they exist is to read the ingress config. This is where that fact lives, in the product's own surface.
Public on purpose: discovery precedes credentials. It reports addresses and protocols only — never feed data, and never the caller's plan, which GET /v1/world/limits owns — so there is nothing here to leak.
Request
GET /v1/world takes no parameters and no body — the credential is the whole request.
Response
| Status | Body | Meaning |
|---|---|---|
200 | worldIndex | ok |
200 body — 8 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
product | body | string | — | Product is the product's name as customers know it. |
summary | body | string | — | Summary is one sentence naming what this surface serves. |
wires | body | worldWire[] | — | Wires is every protocol door onto World, REST first. |
wires[].auth | body | string | — | Auth states what the wire asks of the caller, including which parts of it answer without a token. |
wires[].name | body | string | — | Name is the wire's short id — rest, mcp or zap. |
wires[].path | body | string | — | Path is the address the wire answers on, under this same origin. |
wires[].protocol | body | string | — | Protocol names what the wire speaks, so a caller knows which client to point at it. |
wires[].spec | body | string | — | Spec is where this wire's operations are enumerated, when they are enumerated in a document at all. |
Failure carries the platform error shape — see Errors.
Examples
hanzo world getimport { Configuration, WorldApi } from 'hanzoai';
const api = new WorldApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getWorld();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import WorldApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = WorldApi(client).get_world()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.WorldAPI.GetWorld(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, world_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = world_api::get_world(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.WorldApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new WorldApi(client).getWorld();curl https://api.hanzo.ai/v1/world \
-H "Authorization: Bearer $HANZO_API_KEY"Tool world, op get_world — 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": "world",
"arguments": {
"op": "get_world",
"input": {}
}
}
}'How is this guide?