Create confirm

Records presence at a checkpoint: who confirmed it, the method, where they stood, and the photo key if one was taken.

POST /v1/patrol/point/{name}/confirm

Addresshttps://api.hanzo.ai/v1/patrol/point/{name}/confirm
MethodPOST
Operationpost_patrol_point_by_name_confirm
AuthAuthorization: Bearer $HANZO_API_KEY

Records presence at a checkpoint: who confirmed it, the method, where they stood, and the photo key if one was taken. A confirmation after the window shuts is recorded late rather than refused — the visit happened, and a report that hides it is worth nothing.

An officer confirms their own round and no other, by the same rule a position report and every incident act are held to: the checkpoint belongs to a tour, the tour names a unit, and the unit names its officer. The record carries the actor, so it says who claimed the visit and not merely that somebody did.

Request

6 fields, body application/json (required).

FieldInTypeRequiredDescription
namepathstringyesName is the checkpoint's document name, from the path.
latbodynumber (double)—Lat is the latitude the confirmation was taken at.
lonbodynumber (double)—Lon is the longitude the confirmation was taken at.
methodbodystring—Method is how presence was proved: tag, scan, fence, manual or photo.
namebodystring—Name is the checkpoint's document name, from the path.
photobodystring—Photo is the object key of a photo taken there, never the bytes.

Response

StatusBodyMeaning
200patrol.patrolCheckpointOutok
defaultproblem-detailsrefused

200 body — 14 fields.

FieldInTypeAlwaysDescription
databodypatrol.patrolCheckpoint—
data.actorbodystring—Actor is who confirmed it.
data.atbodystring—At is when it was confirmed, or empty.
data.closebodystring—Close is when that window shuts.
data.latbodynumber (double)—Lat is the latitude the confirmation was taken at.
data.lonbodynumber (double)—Lon is the longitude the confirmation was taken at.
data.methodbodystring—Method is how it was confirmed: tag, scan, fence, manual or photo.
data.namebodystring—Name is the checkpoint's document name and the segment /v1/patrol/point/{name}/confirm addresses it by.
data.openbodystring—Open is when the window to confirm it opens.
data.photobodystring—Photo is the object key of the photo taken, or empty.
data.sitebodystring—Site is the site to attend.
data.statebodystring—State is pending, done, late or skipped.
data.tagbodystring—Tag is the tag or marker to read there.
data.tourbodystring—Tour is the round this checkpoint belongs to.

Failure carries the platform error shape — see Errors.

Examples

hanzo patrol point confirm <name>
import { Configuration, PatrolApi } from 'hanzoai';

const api = new PatrolApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postPatrolPointByNameConfirm({ name: 'name', lat: 0, lon: 0 });
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_point_by_name_confirm(name='name', lat=0, lon=0)
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.PatrolAPI.PostPatrolPointByNameConfirm(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_point_by_name_confirm(&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).postPatrolPointByNameConfirm();
curl -X POST https://api.hanzo.ai/v1/patrol/point/<name>/confirm \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "lat": 0,
       "lon": 0
     }'

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?