Hanzo

Plans

Package plan is the plan catalog: every tier you can buy, what it costs, and what it grants.

Package plan is the plan catalog: every tier you can buy, what it costs, and what it grants.

Base URLhttps://api.hanzo.ai
Operations20
AuthAuthorization: Bearer $HANZO_API_KEY

plans

GET /v1/plans/blockchain

Returns the blockchain RPC plan catalog: the tiers metered in monthly compute units, with their prices, limits and overage terms. It is the canonical catalog for every caller — these plans carry no reseller overrides.

GET /v1/plans/cloud

Returns the cloud plan catalog. It is the same section ListCloudPlans answers and a separate operation because it is a separate address, and an address is what every projection keys on.

GET /v1/plans/dns

ListDNSPlans returns the DNS plan catalog: the tiers priced on zones, records per zone and queries per day. It is the canonical catalog for every caller — these plans carry no reseller overrides.

GET /v1/plans/entitlements/{id}

Returns what one plan GRANTS and not what it costs: the canonical namespaced entitlement block and the flat license-feature list derived from it. It is the entitlement half of ResolvePlan, over the same catalog and the same 404 for an id no catalog holds — the read a licensing or quota gate makes.

ParameterInTypeRequiredDescription
idpathstringyesID is the plan's catalog id or slug — "pro", "team", "world-enterprise", "rpc-growth".

PUT /v1/plans/entries/{slug}

Edit a plan, leaving the fields you omit alone

Loads the addressed plan, applies the body over it and answers the stored result, so a partial edit never silently zeroes a price or the contact-sales flag. The slug is IMMUTABLE: a body naming a different slug is rejected outright before anything is written, because a rename would orphan every subscription that stored the old id — deprecate and create instead. An admin edit marks the row authoritative so the seed stops correcting it. PLATFORM admin only; an unknown slug is 404.

ParameterInTypeRequiredDescription
slugpathstringyes

DELETE /v1/plans/entries/{slug}

Remove a plan from the authority

Deletes the addressed plan and answers 204. It removes the plan from the catalog buyers choose from; it does not touch subscriptions already sold against it, which keep their stored plan id. PLATFORM admin only — an org-level admin is refused 403 — and an unknown slug is 404.

ParameterInTypeRequiredDescription
slugpathstringyes

GET /v1/plans/entries

The raw plan authority rows

Returns every plan row as stored — the administrative view behind the public plan catalog. The plan authority is cross-tenant pricing data, so the gate is a PLATFORM admin enforced by the handler itself: an org-level admin is refused 403 no matter what they may do inside their own org.

POST /v1/plans/entries

Add a subscription plan

Creates a plan from the body and answers it at 201. The slug is required and globally unique — a duplicate is 409 — and the row is marked authoritative on creation, so the corrective seed will leave it alone. Price, annual price and the contact-sales flag are stored exactly as sent, never coerced, so the difference between a free plan and a quote-only plan survives. PLATFORM admin only.

GET /v1/plans/gpu

ListGPUTiers returns the rentable GPU configurations, each with its accelerator count and model, VRAM, vCPUs, host memory and hourly price.

GET /v1/plans/health

Health reports that the plans subsystem is mounted and serving. It answers from the process itself and consults neither the catalog bundle nor the goja host, so it stays "ok" while either is degraded.

GET /v1/plans/policy

Returns the published pricing policy: whether pricing is transparent, the revenue-sharing terms (idle compute resale and the open-source share) and the principles the catalog is priced by.

GET /v1/plans/regions

Returns the regions cloud capacity is offered in, each with its display name and physical location.

GET /v1/plans/resolve/{id}

Resolves one plan to everything a consumer of the catalog needs at once: its canonical entitlement block, the flat license-feature list a signed license carries, its billing reference, and the catalog it came from. The id may be the plan's id or its slug, and it is resolved against the caller's catalog, so a reseller's override wins over the canonical record. An id no catalog holds answers 404.

ParameterInTypeRequiredDescription
idpathstringyesID is the plan's catalog id or slug — "pro", "team", "world-enterprise", "rpc-growth".

GET /v1/plans/schema

Returns the two JSON Schema documents this surface speaks: entitlements.schema.json, which declares every entitlement key with its type, unit and enum, and plan.schema.json, which a catalog plan record conforms to.

POST /v1/plans/seed

Seed the embedded plan catalog, without overwriting administrative edits

Upserts the shipped plan rows and answers how many were created and how many corrected. It is idempotent and non-destructive — a row an administrator authored or edited is left as it stands — so it is safe against a live authority and fills only what is missing or has drifted. PLATFORM admin only, and a deployment with no seed source wired answers 500 rather than quietly seeding nothing.

GET /v1/plans/storage

Returns the block-storage price block: the price per GB per month and the volume size bounds a cloud plan may attach.

GET /v1/plans/subscriptions

Returns the subscription ladder — the personal and team tiers a customer buys to use the cloud, each with its monthly and annual price, seat rules, limits and billing reference. Scoped to the caller's catalog.

GET /v1/plans/tools

Returns the per-use price of every metered tool — web search, code interpreter, image generation, speech — each with the unit it is billed in.

GET /v1/plans/vocab

Returns the entitlement key vocabulary: every key with its namespace, JSON type, nullability, unit, enum and title, the list of namespaces, and the engine features a license can grant. It is derived from entitlements.schema.json on every call, so it cannot fall behind the schema.

GET /v1/plans

Returns the Hanzo cloud plan catalog: every cloud tier with its price, included capacity, limits and feature list, scoped to the caller's catalog. A reseller org sees its own overrides in place of the canonical records it has replaced, and the canonical record for every tier it has not.


All Hanzo APIs · Interactive reference

How is this guide?

On this page