Create move

Records a key set leaving, returning, or being counted, and moves the register row to match.

POST /v1/patrol/key/{name}/move

Addresshttps://api.hanzo.ai/v1/patrol/key/{name}/move
MethodPOST
Operationpost_patrol_key_by_name_move
AuthAuthorization: Bearer $HANZO_API_KEY

Records a key set leaving, returning, or being counted, and moves the register row to match. The register says where a set is now and the movements say how it got there, so a movement is written once and never edited.

Who signed for the move is the caller, stamped from the request. A body that named the signer would make the chain of custody a value the signer chose.

Request

5 fields, body application/json (required).

FieldInTypeRequiredDescription
namepathstringyesName is the key set's reference, from the path.
actbodystring—Act is out, in or audit.
holderbodystring—Holder is who the keys went to.
jobbodystring—Job is the work the keys were drawn for.
namebodystring—Name is the key set's reference, from the path.

Response

StatusBodyMeaning
200patrol.patrolKeyOutok
defaultproblem-detailsrefused

200 body — 6 fields.

FieldInTypeAlwaysDescription
databodypatrol.patrolKey—
data.holderbodystring—Holder is who has it now.
data.movedbodystring—Moved is when it last changed hands.
data.namebodystring—Name is the key set's reference, which is its document name.
data.sitebodystring—Site is the site the keys open.
data.wherebodystring—Where is where the set is kept.

Failure carries the platform error shape — see Errors.

Examples

hanzo patrol key move <name>
import { Configuration, PatrolApi } from 'hanzoai';

const api = new PatrolApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postPatrolKeyByNameMove({ name: 'name', act: "<act>", holder: "<holder>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import PatrolApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = PatrolApi(client).post_patrol_key_by_name_move(name='name', act="<act>", holder="<holder>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

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

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

let result = patrol_api::post_patrol_key_by_name_move(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.PatrolApi;

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

var result = new PatrolApi(client).postPatrolKeyByNameMove();
curl -X POST https://api.hanzo.ai/v1/patrol/key/<name>/move \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "act": "<act>",
       "holder": "<holder>"
     }'

MCP reaches patrol through the patrol tool, which names its 26 operations with its own verbs — this one among them, under a name only MCP 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_patrol_camera"
         }
       }
     }'

Patrol API · All Hanzo APIs · Interactive reference

Was this page useful?