feat(world): document GET /v1/world/limits + World subscription tiers

- world/openapi.yaml: add /v1/world/limits (plan -> resolved limits contract
  echo: apiRateLimit, mcpRateLimit, maxAlerts in req/min, modelApi gate).
- pricing/openapi.yaml: correct the subscriptions description to cover the
  world/social categories now returned (was stale: Developer/Pro/Team/Enterprise).
- hanzo.yaml: regenerated via merge.py (1794 paths, 68 services).
This commit is contained in:
2026-07-08 13:52:10 -07:00
parent efecb9afca
commit 5e2483c897
3 changed files with 92 additions and 2 deletions
+55 -1
View File
@@ -51256,7 +51256,8 @@ paths:
get:
operationId: listPlans
summary: Subscription plans
description: 'Returns platform subscription plans (Developer, Pro, Team, Enterprise).
description: 'Returns platform subscription plans across the personal, team, world, social, and enterprise categories
(e.g. Developer, Pro, Max, Team, World Free/Pro/Team/Enterprise).
Alias for /v1/pricing/subscriptions.
@@ -57702,6 +57703,59 @@ paths:
application/json:
schema:
type: object
/v1/world/limits:
get:
tags:
- Plan
summary: Resolved World plan limits (contract echo)
description: 'Returns the Hanzo World enforcement limits for a plan, resolved from the @hanzo/plans catalog (the single
source of truth) via the world.* entitlement vocabulary. Agents and the dashboard read this to self-config against
the live catalog instead of hardcoding tier numbers. Defaults to world-free; degrades to the fail-closed Free floor
on a catalog outage.
'
operationId: world_limits
parameters:
- name: plan
in: query
required: false
description: Plan id (world-free | world-pro | world-team | world-enterprise). Defaults to world-free.
schema:
type: string
default: world-free
responses:
'200':
description: Resolved plan limits
content:
application/json:
schema:
type: object
properties:
plan:
type: string
example: world-pro
unit:
type: string
example: requests/minute
limits:
type: object
properties:
apiRateLimit:
type: integer
description: world.api_rate_limit, req/min; -1 = unlimited
example: 6000
mcpRateLimit:
type: integer
description: world.mcp_rate_limit, req/min; -1 = unlimited
example: 3000
maxAlerts:
type: integer
description: world.max_alerts; -1 = unlimited
example: -1
modelApi:
type: boolean
description: "world.model_api \u2014 /v1/world/model + SSE stream access"
example: true
/v1/world/macro-signals:
get:
tags:
+3 -1
View File
@@ -208,7 +208,9 @@ paths:
get:
operationId: listPlans
summary: Subscription plans
description: 'Returns platform subscription plans (Developer, Pro, Team, Enterprise).
description: 'Returns platform subscription plans across the personal, team,
world, social, and enterprise categories (e.g. Developer, Pro, Max, Team,
World Free/Pro/Team/Enterprise).
Alias for /v1/pricing/subscriptions.
+34
View File
@@ -418,6 +418,40 @@ paths:
- { name: videoId, in: query, required: true, schema: { type: string } }
responses:
'200': { description: HTML player page, content: { text/html: { schema: { type: string } } } }
/v1/world/limits:
get:
tags: [Plan]
summary: "Resolved World plan limits (contract echo)"
description: >
Returns the Hanzo World enforcement limits for a plan, resolved from the
@hanzo/plans catalog (the single source of truth) via the world.*
entitlement vocabulary. Agents and the dashboard read this to self-config
against the live catalog instead of hardcoding tier numbers. Defaults to
world-free; degrades to the fail-closed Free floor on a catalog outage.
operationId: world_limits
parameters:
- name: plan
in: query
required: false
description: "Plan id (world-free | world-pro | world-team | world-enterprise). Defaults to world-free."
schema: { type: string, default: world-free }
responses:
'200':
description: Resolved plan limits
content:
application/json:
schema:
type: object
properties:
plan: { type: string, example: world-pro }
unit: { type: string, example: requests/minute }
limits:
type: object
properties:
apiRateLimit: { type: integer, description: "world.api_rate_limit, req/min; -1 = unlimited", example: 6000 }
mcpRateLimit: { type: integer, description: "world.mcp_rate_limit, req/min; -1 = unlimited", example: 3000 }
maxAlerts: { type: integer, description: "world.max_alerts; -1 = unlimited", example: -1 }
modelApi: { type: boolean, description: "world.model_api — /v1/world/model + SSE stream access", example: true }
/v1/world/health:
get:
tags: [Meta]