# Create ask

URL: https://docs.hanzo.ai/docs/openapi/ask/post-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`

> [Ask →](https://docs.hanzo.ai/docs/openapi/ask) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                        |
| ------------- | -------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/ask`          |
| **Method**    | `POST`                                 |
| **Operation** | `post_ask`                             |
| **Auth**      | `Authorization: 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`.

| Field        | In   | Type      | Required | Description |
| ------------ | ---- | --------- | -------- | ----------- |
| `followUps`  | body | boolean   | —        |             |
| `language`   | body | string    | —        |             |
| `maxQueries` | body | integer   | —        |             |
| `maxSources` | body | integer   | —        |             |
| `mode`       | body | string    | —        |             |
| `model`      | body | string    | —        |             |
| `q`          | body | string    | —        |             |
| `question`   | body | string    | —        |             |
| `sources`    | body | string\[] | —        |             |
| `stream`     | body | boolean   | —        |             |
| `system`     | body | string    | —        |             |

## Response

The document declares no response body for this operation. It answers `200` on success and the platform error shape on failure — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo ask create
```

**SDK**

**.ts**

```ts
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>" });
```

**.py**

```python
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>")
```

**.go**

```go
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
}
```

**.rs**

```rust
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?;
```

**.java**

```java
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();
```

**HTTP**

```bash
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**

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](https://docs.hanzo.ai/docs/openapi/ask) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
