Hanzo

Ai

Package ai is Hanzo AI — the model API on /v1 (/v1/chat/completions, /v1/messages, /v1/models and the rest of hanzoai/ai's surface) — mounted into a cloud binary with the money, ingest and telemetry…

Package ai is Hanzo AI — the model API on /v1 (/v1/chat/completions, /v1/messages, /v1/models and the rest of hanzoai/ai's surface) — mounted into a cloud binary with the money, ingest and telemetry callbacks cloud BUILDS but cannot INSTALL.

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

ai

GET /v1/ai/account

Account

GET /v1/ai/activities

List activities

List the caller's activities.

GET /v1/ai/answer

Answer

GET /v1/ai/articles/{owner}/{name}

Retrieve a article

Read one article by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/articles/{owner}/{name}

Replace a article

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/articles/{owner}/{name}

Update a article

Update one article. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/articles/{owner}/{name}

Delete a article

Delete one article.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/articles/global

List articles across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/articles

List articles

List the caller's articles.

POST /v1/ai/articles

Create a article

Create one article.

POST /v1/ai/assets/{owner}/{name}/scan

Scan (asset)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/assets/{owner}/{name}

Retrieve a asset

Read one asset by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/assets/{owner}/{name}

Replace a asset

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/assets/{owner}/{name}

Update a asset

Update one asset. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/assets/{owner}/{name}

Delete a asset

Delete one asset.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/assets/scan

Scan (asset)

GET /v1/ai/assets

List assets

List the caller's assets.

POST /v1/ai/assets

Create a asset

Create one asset.

GET /v1/ai/chats/{owner}/{name}

Retrieve a chat

Read one chat by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/chats/{owner}/{name}

Replace a chat

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/chats/{owner}/{name}

Update a chat

Update one chat. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/chats/{owner}/{name}

Delete a chat

Delete one chat.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/chats/global

List chats across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/chats

List chats

List the caller's chats.

POST /v1/ai/chats

Create a chat

Create one chat.

GET /v1/ai/connections/{provider}/authorize

Begins an OAuth connection for the caller's org: it binds the org into a signed state and sends the caller to the provider's authorize URL. By default it 302-redirects (a top-level browser "connect your login" click); a SPA/BFF that needs to drive the redirect itself passes ?format=json and gets {authorizeUrl} in the standard envelope. The org is the VERIFIED principal, so only the caller's own connection can result.

ParameterInTypeRequiredDescription
providerpathstringyes

GET /v1/ai/connections/{provider}/callback

Completes OAuth: the org is recovered from the SIGNED state (not a header), the code is exchanged for a token, the token is SEALED into KMS (never the row/logs) through the same path as a BYOK key, and the org's provider row is upserted to "connected". The browser is then redirected back to the console with ?ai_connected=<provider> (or ?ai_connect_error=<provider> on failure). Because the org comes from the state THIS server signed, an attacker cannot land their token in a victim org — which is why this endpoint is state-authenticated rather than credential-gated.

ParameterInTypeRequiredDescription
providerpathstringyes

GET /v1/ai/connections/{provider}/usage

Imports the caller org's usage for a connected third-party account. The org is resolved from the VERIFIED principal (requireConnectionOrg), so a tenant reads only its own connection. The key is unsealed SERVER-SIDE and never returned. An unconnected account, a missing importer, or a scope-denied provider all return a 200 ProviderUsage with connected/available flags + a human note — the UI's honest-empty states — never a fabricated figure.

ParameterInTypeRequiredDescription
providerpathstringyes

POST /v1/ai/connections/{provider}

Disconnects a third-party AI account: it deactivates the org's row so completion resolution falls back to the global Hanzo account (no BYO), and best-effort tombstones the sealed secret. Idempotent.

ParameterInTypeRequiredDescription
providerpathstringyes

DELETE /v1/ai/connections/{provider}

Disconnects a third-party AI account: it deactivates the org's row so completion resolution falls back to the global Hanzo account (no BYO), and best-effort tombstones the sealed secret. Idempotent.

ParameterInTypeRequiredDescription
providerpathstringyes

GET /v1/ai/connections

Lists the org's connectable AI accounts and whether each is currently connected. Never returns a key or a kms:// reference.

POST /v1/ai/connections

Connects (or reconnects) a third-party AI account for the org by sealing the supplied key into KMS and upserting the org's provider row. The raw key is sealed BEFORE the row is built and is never persisted or echoed.

GET /v1/ai/dashboards/agents

Dashboards Agents

GET /v1/ai/dashboards/vm

Dashboards Vm

POST /v1/ai/deployments/{owner}/{name}/deploy

Deploy (application)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/deployments/{owner}/{name}/undeploy

Undeploy (application)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/deployments/{owner}/{name}

Retrieve a application

Read one application by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/deployments/{owner}/{name}

Replace a application

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/deployments/{owner}/{name}

Update a application

Update one application. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/deployments/{owner}/{name}

Delete a application

Delete one application.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/deployments

List deployments

List the caller's deployments.

POST /v1/ai/deployments

Create a application

Create one application.

POST /v1/ai/files/{owner}/{name}/vectors

Vectors (file)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/files/{owner}/{name}

Retrieve a file

Read one file by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/files/{owner}/{name}

Replace a file

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/files/{owner}/{name}

Update a file

Update one file. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/files/{owner}/{name}

Delete a file

Delete one file.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/files/activate

Activate (file)

GET /v1/ai/files/active

Active (file)

GET /v1/ai/files/global

List files across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

POST /v1/ai/files/upload

Upload (file)

GET /v1/ai/files

List files

List the caller's files.

POST /v1/ai/files

Create a file

Create one file.

GET /v1/ai/forms/{owner}/{name}

Retrieve a form

Read one form by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/forms/{owner}/{name}

Replace a form

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/forms/{owner}/{name}

Update a form

Update one form. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/forms/{owner}/{name}

Delete a form

Delete one form.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/forms/data

Data (form)

GET /v1/ai/forms/global

List forms across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/forms

List forms

List the caller's forms.

POST /v1/ai/forms

Create a form

Create one form.

GET /v1/ai/graphs/{owner}/{name}

Retrieve a graph

Read one graph by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/graphs/{owner}/{name}

Replace a graph

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/graphs/{owner}/{name}

Update a graph

Update one graph. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/graphs/{owner}/{name}

Delete a graph

Delete one graph.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/graphs/global

List graphs across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/graphs

List graphs

List the caller's graphs.

POST /v1/ai/graphs

Create a graph

Create one graph.

GET /v1/ai/k8s-status

K8s Status

GET /v1/ai/mcp/tools

Tools reports what THIS PROCESS's MCP door carries: how many tools its own registry projects, optionally their names, and which subsystems this process composed. It is the answer to "is this door up and does it have anything behind it" — a question a status code cannot answer, since an empty door and a full one are both 200. What the FLEET's door carries is the fleet door's own answer: POST /v1/mcp, tools/list, which asks every subsystem and names the ones that did not reply.

ParameterInTypeRequiredDescription
namesquerybooleanNames asks for this process's tool NAMES and not only how many there are.

GET /v1/ai/messages/{owner}/{name}/answer

Answer (message)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/messages/{owner}/{name}

Retrieve a message

Read one message by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/messages/{owner}/{name}

Replace a message

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/messages/{owner}/{name}

Update a message

Update one message. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/messages/{owner}/{name}

Delete a message

Delete one message.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/messages/global

List messages across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

DELETE /v1/ai/messages/welcome

Welcome (message)

GET /v1/ai/messages

List messages

List the caller's messages.

POST /v1/ai/messages

Create a message

Create one message.

GET /v1/ai/nodes/{owner}/{name}/tunnel

Tunnel (node)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/nodes/{owner}/{name}/tunnel

Tunnel (node)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/nodes/{owner}/{name}

Retrieve a node

Read one node by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/nodes/{owner}/{name}

Replace a node

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/nodes/{owner}/{name}

Update a node

Update one node. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/nodes/{owner}/{name}

Delete a node

Delete one node.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/nodes

List nodes

List the caller's nodes.

POST /v1/ai/nodes

Create a node

Create one node.

PUT /v1/ai/preferences

Preferences

PATCH /v1/ai/preferences

Preferences

GET /v1/ai/prometheus

Prometheus

GET /v1/ai/providers/{owner}/{name}

Retrieve a provider

Read one provider by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/providers/{owner}/{name}

Replace a provider

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/providers/{owner}/{name}

Update a provider

Update one provider. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/providers/{owner}/{name}

Delete a provider

Delete one provider.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/providers/global

List providers across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

POST /v1/ai/providers/mcp-tools

Mcp Tools (provider)

GET /v1/ai/providers

List providers

List the caller's providers.

POST /v1/ai/providers

Create a provider

Create one provider.

GET /v1/ai/records/{owner}/{name}

Retrieve a record

Read one record by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/records/{owner}/{name}

Replace a record

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/records/{owner}/{name}

Update a record

Update one record. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/records/{owner}/{name}

Delete a record

Delete one record.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/records/batch

Batch (record)

POST /v1/ai/records/commit-second

Commit Second (record)

POST /v1/ai/records/commit

Commit (record)

GET /v1/ai/records/query-second

Query Second (record)

GET /v1/ai/records/query

Query (record)

GET /v1/ai/records

List records

List the caller's records.

POST /v1/ai/records

Create a record

Create one record.

POST /v1/ai/remote-connections/{owner}/{name}/start

Start (connection)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/remote-connections/{owner}/{name}/stop

Stop (connection)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/remote-connections/{owner}/{name}

Retrieve a connection

Read one connection by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/remote-connections/{owner}/{name}

Replace a connection

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/remote-connections/{owner}/{name}

Update a connection

Update one connection. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/remote-connections/{owner}/{name}

Delete a connection

Delete one connection.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/remote-connections

List remote-connections

List the caller's remote-connections.

POST /v1/ai/remote-connections

Create a connection

Create one connection.

GET /v1/ai/routes/{owner}/{name}

Retrieve a model-route

Read one model-route by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/routes/{owner}/{name}

Replace a model-route

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/routes/{owner}/{name}

Update a model-route

Update one model-route. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/routes/{owner}/{name}

Delete a model-route

Delete one model-route.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/routes

List routes

List the caller's routes.

POST /v1/ai/routes

Create a model-route

Create one model-route.

GET /v1/ai/scales/{owner}/{name}

Retrieve a scale

Read one scale by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/scales/{owner}/{name}

Replace a scale

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/scales/{owner}/{name}

Update a scale

Update one scale. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/scales/{owner}/{name}

Delete a scale

Delete one scale.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/scales/global

List scales across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/scales/public

Public (scale)

GET /v1/ai/scales

List scales

List the caller's scales.

POST /v1/ai/scales

Create a scale

Create one scale.

GET /v1/ai/scans/{owner}/{name}

Retrieve a scan

Read one scan by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/scans/{owner}/{name}

Replace a scan

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/scans/{owner}/{name}

Update a scan

Update one scan. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/scans/{owner}/{name}

Delete a scan

Delete one scan.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/scans

List scans

List the caller's scans.

POST /v1/ai/scans

Create a scan

Create one scan.

GET /v1/ai/signin-sessions/{owner}/{name}

Retrieve a session

Read one session by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/signin-sessions/{owner}/{name}

Replace a session

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/signin-sessions/{owner}/{name}

Update a session

Update one session. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/signin-sessions/{owner}/{name}

Delete a session

Delete one session.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/signin-sessions/duplicated

Duplicated (session)

GET /v1/ai/signin-sessions

List signin-sessions

List the caller's signin-sessions.

POST /v1/ai/signin-sessions

Create a session

Create one session.

POST /v1/ai/signin

Signin

POST /v1/ai/signout

Signout

POST /v1/ai/stores/{owner}/{name}/vectors

Vectors (store)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/stores/{owner}/{name}

Retrieve a store

Read one store by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/stores/{owner}/{name}

Replace a store

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/stores/{owner}/{name}

Update a store

Update one store. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/stores/{owner}/{name}

Delete a store

Delete one store.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/stores/global

List stores across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/stores/names

Names (store)

GET /v1/ai/stores/providers

Providers (store)

GET /v1/ai/stores

List stores

List the caller's stores.

POST /v1/ai/stores

Create a store

Create one store.

GET /v1/ai/system

System

POST /v1/ai/tasks/{owner}/{name}/analyze

Analyze (task)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/tasks/{owner}/{name}/document

Document (task)

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/tasks/{owner}/{name}

Retrieve a task

Read one task by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/tasks/{owner}/{name}

Replace a task

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/tasks/{owner}/{name}

Update a task

Update one task. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/tasks/{owner}/{name}

Delete a task

Delete one task.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/tasks/global

List tasks across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/tasks

List tasks

List the caller's tasks.

POST /v1/ai/tasks

Create a task

Create one task.

GET /v1/ai/templates/{owner}/{name}

Retrieve a template

Read one template by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/templates/{owner}/{name}

Replace a template

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/templates/{owner}/{name}

Update a template

Update one template. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/templates/{owner}/{name}

Delete a template

Delete one template.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/templates

List templates

List the caller's templates.

POST /v1/ai/templates

Create a template

Create one template.

GET /v1/ai/training-contribution

Training Contribution

PUT /v1/ai/training-contribution

Training Contribution

PATCH /v1/ai/training-contribution

Training Contribution

PUT /v1/ai/tree-files/{owner}/{name}

Replace a tree-file

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/tree-files/{owner}/{name}

Update a tree-file

Update one tree-file. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/tree-files/{owner}/{name}

Delete a tree-file

Delete one tree-file.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

POST /v1/ai/tree-files

Create a tree-file

Create one tree-file.

GET /v1/ai/usages/by-user

By User (usage)

GET /v1/ai/usages/cloud

Cloud (usage)

GET /v1/ai/usages/range

Range (usage)

GET /v1/ai/usages/user-names

User Names (usage)

GET /v1/ai/usages

List usages

List the caller's usages.

GET /v1/ai/vectors/{owner}/{name}

Retrieve a vector

Read one vector by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/vectors/{owner}/{name}

Replace a vector

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/vectors/{owner}/{name}

Update a vector

Update one vector. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/vectors/{owner}/{name}

Delete a vector

Delete one vector.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/vectors/all

All (vector)

GET /v1/ai/vectors/global

List vectors across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/vectors

List vectors

List the caller's vectors.

POST /v1/ai/vectors

Create a vector

Create one vector.

GET /v1/ai/version

Version

GET /v1/ai/videos/{owner}/{name}

Retrieve a video

Read one video by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/videos/{owner}/{name}

Replace a video

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/videos/{owner}/{name}

Update a video

Update one video. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/videos/{owner}/{name}

Delete a video

Delete one video.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/videos/global

List videos across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

POST /v1/ai/videos/upload

Upload (video)

GET /v1/ai/videos

List videos

List the caller's videos.

POST /v1/ai/videos

Create a video

Create one video.

GET /v1/ai/workflows/{owner}/{name}

Retrieve a workflow

Read one workflow by its (owner, name) key.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PUT /v1/ai/workflows/{owner}/{name}

Replace a workflow

Identical to PATCH — the handler takes a whole object either way.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

PATCH /v1/ai/workflows/{owner}/{name}

Update a workflow

Update one workflow. PATCH and PUT reach the same handler, which has always taken a whole object.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

DELETE /v1/ai/workflows/{owner}/{name}

Delete a workflow

Delete one workflow.

ParameterInTypeRequiredDescription
ownerpathstringyes
namepathstringyes

GET /v1/ai/workflows/global

List workflows across tenants

Cross-tenant listing. Admin-only; a tenant caller is refused.

GET /v1/ai/workflows

List workflows

List the caller's workflows.

POST /v1/ai/workflows

Create a workflow

Create one workflow.


Ai guide · All Hanzo APIs · Interactive reference

How is this guide?

On this page

aiGET /v1/ai/accountGET /v1/ai/activitiesGET /v1/ai/answerGET /v1/ai/articles/{owner}/{name}PUT /v1/ai/articles/{owner}/{name}PATCH /v1/ai/articles/{owner}/{name}DELETE /v1/ai/articles/{owner}/{name}GET /v1/ai/articles/globalGET /v1/ai/articlesPOST /v1/ai/articlesPOST /v1/ai/assets/{owner}/{name}/scanGET /v1/ai/assets/{owner}/{name}PUT /v1/ai/assets/{owner}/{name}PATCH /v1/ai/assets/{owner}/{name}DELETE /v1/ai/assets/{owner}/{name}POST /v1/ai/assets/scanGET /v1/ai/assetsPOST /v1/ai/assetsGET /v1/ai/chats/{owner}/{name}PUT /v1/ai/chats/{owner}/{name}PATCH /v1/ai/chats/{owner}/{name}DELETE /v1/ai/chats/{owner}/{name}GET /v1/ai/chats/globalGET /v1/ai/chatsPOST /v1/ai/chatsGET /v1/ai/connections/{provider}/authorizeGET /v1/ai/connections/{provider}/callbackGET /v1/ai/connections/{provider}/usagePOST /v1/ai/connections/{provider}DELETE /v1/ai/connections/{provider}GET /v1/ai/connectionsPOST /v1/ai/connectionsGET /v1/ai/dashboards/agentsGET /v1/ai/dashboards/vmPOST /v1/ai/deployments/{owner}/{name}/deployPOST /v1/ai/deployments/{owner}/{name}/undeployGET /v1/ai/deployments/{owner}/{name}PUT /v1/ai/deployments/{owner}/{name}PATCH /v1/ai/deployments/{owner}/{name}DELETE /v1/ai/deployments/{owner}/{name}GET /v1/ai/deploymentsPOST /v1/ai/deploymentsPOST /v1/ai/files/{owner}/{name}/vectorsGET /v1/ai/files/{owner}/{name}PUT /v1/ai/files/{owner}/{name}PATCH /v1/ai/files/{owner}/{name}DELETE /v1/ai/files/{owner}/{name}POST /v1/ai/files/activateGET /v1/ai/files/activeGET /v1/ai/files/globalPOST /v1/ai/files/uploadGET /v1/ai/filesPOST /v1/ai/filesGET /v1/ai/forms/{owner}/{name}PUT /v1/ai/forms/{owner}/{name}PATCH /v1/ai/forms/{owner}/{name}DELETE /v1/ai/forms/{owner}/{name}GET /v1/ai/forms/dataGET /v1/ai/forms/globalGET /v1/ai/formsPOST /v1/ai/formsGET /v1/ai/graphs/{owner}/{name}PUT /v1/ai/graphs/{owner}/{name}PATCH /v1/ai/graphs/{owner}/{name}DELETE /v1/ai/graphs/{owner}/{name}GET /v1/ai/graphs/globalGET /v1/ai/graphsPOST /v1/ai/graphsGET /v1/ai/k8s-statusGET /v1/ai/mcp/toolsGET /v1/ai/messages/{owner}/{name}/answerGET /v1/ai/messages/{owner}/{name}PUT /v1/ai/messages/{owner}/{name}PATCH /v1/ai/messages/{owner}/{name}DELETE /v1/ai/messages/{owner}/{name}GET /v1/ai/messages/globalDELETE /v1/ai/messages/welcomeGET /v1/ai/messagesPOST /v1/ai/messagesGET /v1/ai/nodes/{owner}/{name}/tunnelPOST /v1/ai/nodes/{owner}/{name}/tunnelGET /v1/ai/nodes/{owner}/{name}PUT /v1/ai/nodes/{owner}/{name}PATCH /v1/ai/nodes/{owner}/{name}DELETE /v1/ai/nodes/{owner}/{name}GET /v1/ai/nodesPOST /v1/ai/nodesPUT /v1/ai/preferencesPATCH /v1/ai/preferencesGET /v1/ai/prometheusGET /v1/ai/providers/{owner}/{name}PUT /v1/ai/providers/{owner}/{name}PATCH /v1/ai/providers/{owner}/{name}DELETE /v1/ai/providers/{owner}/{name}GET /v1/ai/providers/globalPOST /v1/ai/providers/mcp-toolsGET /v1/ai/providersPOST /v1/ai/providersGET /v1/ai/records/{owner}/{name}PUT /v1/ai/records/{owner}/{name}PATCH /v1/ai/records/{owner}/{name}DELETE /v1/ai/records/{owner}/{name}POST /v1/ai/records/batchPOST /v1/ai/records/commit-secondPOST /v1/ai/records/commitGET /v1/ai/records/query-secondGET /v1/ai/records/queryGET /v1/ai/recordsPOST /v1/ai/recordsPOST /v1/ai/remote-connections/{owner}/{name}/startPOST /v1/ai/remote-connections/{owner}/{name}/stopGET /v1/ai/remote-connections/{owner}/{name}PUT /v1/ai/remote-connections/{owner}/{name}PATCH /v1/ai/remote-connections/{owner}/{name}DELETE /v1/ai/remote-connections/{owner}/{name}GET /v1/ai/remote-connectionsPOST /v1/ai/remote-connectionsGET /v1/ai/routes/{owner}/{name}PUT /v1/ai/routes/{owner}/{name}PATCH /v1/ai/routes/{owner}/{name}DELETE /v1/ai/routes/{owner}/{name}GET /v1/ai/routesPOST /v1/ai/routesGET /v1/ai/scales/{owner}/{name}PUT /v1/ai/scales/{owner}/{name}PATCH /v1/ai/scales/{owner}/{name}DELETE /v1/ai/scales/{owner}/{name}GET /v1/ai/scales/globalGET /v1/ai/scales/publicGET /v1/ai/scalesPOST /v1/ai/scalesGET /v1/ai/scans/{owner}/{name}PUT /v1/ai/scans/{owner}/{name}PATCH /v1/ai/scans/{owner}/{name}DELETE /v1/ai/scans/{owner}/{name}GET /v1/ai/scansPOST /v1/ai/scansGET /v1/ai/signin-sessions/{owner}/{name}PUT /v1/ai/signin-sessions/{owner}/{name}PATCH /v1/ai/signin-sessions/{owner}/{name}DELETE /v1/ai/signin-sessions/{owner}/{name}GET /v1/ai/signin-sessions/duplicatedGET /v1/ai/signin-sessionsPOST /v1/ai/signin-sessionsPOST /v1/ai/signinPOST /v1/ai/signoutPOST /v1/ai/stores/{owner}/{name}/vectorsGET /v1/ai/stores/{owner}/{name}PUT /v1/ai/stores/{owner}/{name}PATCH /v1/ai/stores/{owner}/{name}DELETE /v1/ai/stores/{owner}/{name}GET /v1/ai/stores/globalGET /v1/ai/stores/namesGET /v1/ai/stores/providersGET /v1/ai/storesPOST /v1/ai/storesGET /v1/ai/systemPOST /v1/ai/tasks/{owner}/{name}/analyzePOST /v1/ai/tasks/{owner}/{name}/documentGET /v1/ai/tasks/{owner}/{name}PUT /v1/ai/tasks/{owner}/{name}PATCH /v1/ai/tasks/{owner}/{name}DELETE /v1/ai/tasks/{owner}/{name}GET /v1/ai/tasks/globalGET /v1/ai/tasksPOST /v1/ai/tasksGET /v1/ai/templates/{owner}/{name}PUT /v1/ai/templates/{owner}/{name}PATCH /v1/ai/templates/{owner}/{name}DELETE /v1/ai/templates/{owner}/{name}GET /v1/ai/templatesPOST /v1/ai/templatesGET /v1/ai/training-contributionPUT /v1/ai/training-contributionPATCH /v1/ai/training-contributionPUT /v1/ai/tree-files/{owner}/{name}PATCH /v1/ai/tree-files/{owner}/{name}DELETE /v1/ai/tree-files/{owner}/{name}POST /v1/ai/tree-filesGET /v1/ai/usages/by-userGET /v1/ai/usages/cloudGET /v1/ai/usages/rangeGET /v1/ai/usages/user-namesGET /v1/ai/usagesGET /v1/ai/vectors/{owner}/{name}PUT /v1/ai/vectors/{owner}/{name}PATCH /v1/ai/vectors/{owner}/{name}DELETE /v1/ai/vectors/{owner}/{name}DELETE /v1/ai/vectors/allGET /v1/ai/vectors/globalGET /v1/ai/vectorsPOST /v1/ai/vectorsGET /v1/ai/versionGET /v1/ai/videos/{owner}/{name}PUT /v1/ai/videos/{owner}/{name}PATCH /v1/ai/videos/{owner}/{name}DELETE /v1/ai/videos/{owner}/{name}GET /v1/ai/videos/globalPOST /v1/ai/videos/uploadGET /v1/ai/videosPOST /v1/ai/videosGET /v1/ai/workflows/{owner}/{name}PUT /v1/ai/workflows/{owner}/{name}PATCH /v1/ai/workflows/{owner}/{name}DELETE /v1/ai/workflows/{owner}/{name}GET /v1/ai/workflows/globalGET /v1/ai/workflowsPOST /v1/ai/workflows