SetCenter opens, publishes or withdraws the caller org's trust centre and…
SetCenter opens, publishes or withdraws the caller org's trust centre and answers with the centre as it now stands.
PUT /v1/dataroom/trust
| Address | https://api.hanzo.ai/v1/dataroom/trust |
| Method | PUT |
| Operation | put_dataroom_trust |
| Auth | Authorization: Bearer $HANZO_API_KEY |
SetCenter opens, publishes or withdraws the caller org's trust centre and answers with the centre as it now stands.
Publishing requires a name and an address, and the address must be free: another org already answering there is a conflict, never a takeover. Withdrawing closes the public door only — items, grants and the access record are untouched, so an org can go quiet and come back without losing anything.
Only an admin of the org may call it. The org is the caller's own, so there is no field naming one and no way to point this at another tenant.
Request
4 fields, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
name | body | string | — | Name is the centre's display name. |
nda | body | string | — | Nda is the text a party must accept before asking for a document. Optional; empty asks for no acceptance. |
publish | body | boolean | — | Publish makes the centre answer at its public address. |
slug | body | string | — | Slug is the public address to answer at — a lowercase label of letters, digits and hyphens. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | trustDesk | ok |
200 body — 37 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
grants | body | trustGrantView[] | — | Grants is every grant that has been made, newest first. |
grants[].email | body | string | — | Email is the one address the link admits. |
grants[].expiresAt | body | integer | — | ExpiresAt is when the grant closes, in unix milliseconds. |
grants[].item | body | string | — | Item is the item granted, empty when the whole released tier was granted. |
grants[].link | body | string | — | Link is the share link's id — the token the party opens. |
grants[].live | body | boolean | — | Live is whether the grant is still open at the time of reading. |
items | body | trustItemView[] | — | Items is everything the org holds, both tiers, retired included. |
items[].attester | body | string | — | Attester is who vouched for it: self or auditor. |
items[].body | body | string | — | Body is the item's content for the kinds that are text rather than a file. |
items[].createdAt | body | integer | — | CreatedAt is when it was published, in unix milliseconds. |
items[].document | body | string | — | Document is the data-room document holding its bytes, empty when it has none. |
items[].framework | body | string | — | Framework is the standard it speaks to, when it speaks to one. |
items[].id | body | string | — | ID addresses the item. |
items[].kind | body | string | — | Kind is what it is. |
items[].name | body | string | — | Name is its title. |
items[].retired | body | boolean | — | Retired is whether it has been withdrawn. A retired item is absent from the public centre and cannot be granted; it is kept because a grant already made over… |
items[].summary | body | string | — | Summary is a line about it. |
items[].tier | body | string | — | Tier is public or gated. |
items[].updatedAt | body | integer | — | UpdatedAt is when it last changed, in unix milliseconds. |
name | body | string | — | Name is the centre's display name. |
nda | body | string | — | Nda is the text a party must accept before asking. |
published | body | boolean | — | Published is whether the centre answers at its public address. |
requests | body | trustAskView[] | — | Requests is every ask, newest first, open ones included. |
requests[].createdAt | body | integer | — | CreatedAt is when the ask arrived, in unix milliseconds. |
requests[].decidedAt | body | integer | — | DecidedAt is when it was answered, in unix milliseconds; 0 while open. |
requests[].decidedBy | body | string | — | DecidedBy is who answered it. |
requests[].email | body | string | — | Email is the address that asked, as stated and UNVERIFIED — it names a party and proves nothing, which is why the grant is addressed to it rather than trusting… |
requests[].expiresAt | body | integer | — | ExpiresAt is when a granted ask closes, in unix milliseconds. |
requests[].id | body | string | — | ID is the request's id. |
requests[].item | body | string | — | Item is the item asked for, empty when the whole released tier was asked for. |
requests[].link | body | string | — | Link is the share link a granted ask became. |
requests[].nda | body | string | — | Nda is the text this party accepted, verbatim as it stood when they accepted. |
requests[].note | body | string | — | Note is what the decider wrote when refusing. |
requests[].party | body | string | — | Party is the company the asker stated. |
requests[].reason | body | string | — | Reason is why they said they want it. |
requests[].state | body | string | — | State is open, granted or refused. |
slug | body | string | — | Slug is the public address, empty until the centre is published. |
Failure carries the platform error shape — see Errors.
Examples
hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.
import { Configuration, DataroomApi } from 'hanzoai';
const api = new DataroomApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putDataroomTrust({ name: "<name>", nda: "<nda>" });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import DataroomApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = DataroomApi(client).put_dataroom_trust(name="<name>", nda="<nda>")cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.DataroomAPI.PutDataroomTrust(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, dataroom_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = dataroom_api::put_dataroom_trust(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.DataroomApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new DataroomApi(client).putDataroomTrust();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl -X PUT https://api.hanzo.ai/v1/dataroom/trust \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "<name>",
"nda": "<nda>"
}'The door reaches dataroom through the dataroom tool, which names its 17 operations with its own verbs — this one among them, under a name only the door declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "get_dataroom_analytic_dataroom"
}
}
}'How is this guide?