Writes your organisation's own allow and deny entries over a set.
Writes your organisation's own allow and deny entries over a set.
PUT /v1/reference/{set}
| Address | https://api.hanzo.ai/v1/reference/{set} |
| Method | PUT |
| Operation | riskSetReference |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Writes your organisation's own allow and deny entries over a set.
Idempotent on the key: writing the same entry twice is one entry, and writing it again replaces the verdict and the note. The whole batch is one transaction, so a batch that would cross the per-set bound writes nothing rather than half of itself — a half-applied deny list is worse than a refused one, because nobody can tell which half applied.
Your entries are held in your organisation's own store and are never visible to another organisation, and they never change what any other organisation sees. The shared baseline is not writable from here at all.
Request
5 fields, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
set | path | string | yes | |
entries | body | ReferenceOverrideIn[] | — | Entries are the overrides to write, up to 1000 per call. |
entries[].key | body | string | — | Key is the member: a domain, a CIDR or address, an issuer prefix, a device digest. |
entries[].note | body | string | — | Note is why, in your own words. |
entries[].verdict | body | string | — | Verdict is allow or deny, and nothing else. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | SetReferenceOut | ok |
200 body — 3 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
overrides | body | integer | — | Overrides is how many your org now holds in this set. |
set | body | string | — | Set is the set written in. |
written | body | integer | — | Written is how many entries this call wrote. |
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, ReferenceApi } from 'hanzoai';
const api = new ReferenceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.riskSetReference({ set: 'set', entries: [{"key":"<key>","note":"<note>","verdict":"<verdict>"}] });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ReferenceApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ReferenceApi(client).risk_set_reference(set='set', entries=[{"key":"<key>","note":"<note>","verdict":"<verdict>"}])cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.ReferenceAPI.RiskSetReference(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, reference_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = reference_api::risk_set_reference(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ReferenceApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new ReferenceApi(client).riskSetReference();curl -X PUT https://api.hanzo.ai/v1/reference/<set> \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entries": [
{
"key": "<key>",
"note": "<note>",
"verdict": "<verdict>"
}
]
}'Tool reference, op riskSetReference — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "reference",
"arguments": {
"op": "riskSetReference",
"input": {
"set": "<set>",
"entries": [
{
"key": "<key>",
"note": "<note>",
"verdict": "<verdict>"
}
]
}
}
}
}'How is this guide?