List limits

Echoes a World plan's rate limits, alert quota and model-API grant, read straight from the live @hanzo/plans catalog, so agents and dashboards configure themselves against the catalog instead of hardcoding tier numbers.

GET /v1/world/limits

Addresshttps://api.hanzo.ai/v1/world/limits
MethodGET
Operationget_world_limits
AuthAuthorization: Bearer $HANZO_API_KEY

Echoes a World plan's rate limits, alert quota and model-API grant, read straight from the live @hanzo/plans catalog, so agents and dashboards configure themselves against the catalog instead of hardcoding tier numbers.

An empty or unknown plan resolves world-free, and a catalog failure serves that same free floor rather than erroring — so this always answers 200, and it can only ever under-grant. It reports the contract; it does not enforce it.

Request

1 field.

FieldInTypeRequiredDescription
planquerystring—Plan is a World plan id from the live @hanzo/plans catalog, e.g. world-pro.

Response

StatusBodyMeaning
200world.limitsViewok
defaultproblem-detailsrefused

200 body — 7 fields.

FieldInTypeAlwaysDescription
limitsbodyworld.limitsBlock—
limits.apiRateLimitbodyinteger (int64)—APIRateLimit is requests per minute allowed against the REST /v1/world surface.
limits.maxAlertsbodyinteger (int64)—MaxAlerts is how many saved OSINT alert rules the plan allows.
limits.mcpRateLimitbodyinteger (int64)—MCPRateLimit is requests per minute allowed against the MCP surface.
limits.modelApibodyboolean—ModelAPI is whether the plan reaches the World model endpoint and the SSE stream.
planbodystring—Plan echoes the plan id the limits were resolved for, after the empty-means- world-free default.
unitbodystring—Unit names what the two rate numbers are counted in: requests/minute.

Failure carries the platform error shape — see Errors.

Examples

hanzo world limits
import { Configuration, WorldApi } from 'hanzoai';

const api = new WorldApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getWorldLimits();
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_limits()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.WorldAPI.GetWorldLimits(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::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_limits(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.WorldApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new WorldApi(client).getWorldLimits();
curl https://api.hanzo.ai/v1/world/limits \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches world through the world tool, which names its 5 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": "list_worlds"
         }
       }
     }'

World API · All Hanzo APIs · Interactive reference

Was this page useful?