Create connections — 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.
POST /v1/ai/connections
| Address | https://api.hanzo.ai/v1/ai/connections |
| Method | POST |
| Operation | post_ai_connections |
| Auth | Authorization: Bearer $HANZO_API_KEY |
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.
Request
The document declares no body for POST /v1/ai/connections. The handler is typed in cloud but its shape is not yet emitted, so the fields are not listed here — ask MCP's describe for post_ai_connections, which answers from the running route.
Response
| Status | Body | Meaning |
|---|---|---|
200 | Success. | |
401 | — | No credential, or one this service does not accept. |
403 | — | A valid credential that may not do this. |
200 body — 8 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
data | body | any | — | The operation's own result. |
data2 | body | any | — | A second result the operation defines, when it has one. |
msg | body | string | yes | Empty on success, the reason on failure. |
status | body | string | yes | One of ok, error. |
data.account_label | body | string | — | |
data.connected | body | boolean | — | |
data.provider | body | string | — | |
data.updated_at | body | string | — |
Failure carries the platform error shape — see Errors.
Examples
hanzo ai connections createimport { Configuration, AiApi } from 'hanzoai';
const api = new AiApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postAiConnections();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AiApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AiApi(client).post_ai_connections()cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.AiAPI.PostAiConnections(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, ai_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = ai_api::post_ai_connections(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AiApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new AiApi(client).postAiConnections();curl -X POST https://api.hanzo.ai/v1/ai/connections \
-H "Authorization: Bearer $HANZO_API_KEY"MCP declares no tool for ai — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.