Create ask

Answers a natural-language question about the CALLER'S OWN org, from real figures rather than from the model's memory.

POST /v1/ask

Addresshttps://api.hanzo.ai/v1/ask
MethodPOST
Operationpost_ask
AuthAuthorization: Bearer $HANZO_API_KEY

Answers a natural-language question about the CALLER'S OWN org, from real figures rather than from the model's memory.

The question is classified to a grounded domain, that domain's read runs IN-PROCESS under the caller's own credentials, and only then is the result narrated. So the figures and their sources are the domain's, resolved before any model call and never altered by one — a wrong answer is a wrong query, never an invention.

Domains: books (the org's ledger), projects (what is built and what of it is deployed), git (the org's repositories and what changed in them), and web (search, news, research, deep). A validated principal is required; the answer is scoped to that principal's org and nothing else.

Request

11 fields, body application/json.

FieldInTypeRequiredDescription
followUpsbodyboolean—
languagebodystring—
maxQueriesbodyinteger—
maxSourcesbodyinteger—
modebodystring—
modelbodystring—
qbodystring—
questionbodystring—
sourcesbodystring[]—
streambodyboolean—
systembodystring—

Response

The document declares no response body for this operation. It answers 200 on success and the platform error shape on failure — see Errors.

Examples

hanzo ask create
import { Configuration, AskApi } from 'hanzoai';

const api = new AskApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postAsk({ followUps: false, language: "<language>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AskApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AskApi(client).post_ask(follow_ups=False, language="<language>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.AskAPI.PostAsk(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, ask_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = ask_api::post_ask(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AskApi;

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

var result = new AskApi(client).postAsk();
curl -X POST https://api.hanzo.ai/v1/ask \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "followUps": false,
       "language": "<language>"
     }'

MCP declares no tool for ask — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.


Ask API · All Hanzo APIs · Interactive reference

Was this page useful?