Get stream

Redeems a minted ticket for what opens the camera.

GET /v1/patrol/camera/{name}/stream/{ticket}

Addresshttps://api.hanzo.ai/v1/patrol/camera/{name}/stream/{ticket}
MethodGET
Operationget_patrol_camera_by_name_stream_by_ticket
AuthAuthorization: Bearer $HANZO_API_KEY

Redeems a minted ticket for what opens the camera.

The mint is the operation's — staff only — and it hands back the camera's address with the credential stripped out of it. This is where the holder of that address gets what actually dials the camera, and it asks for no credential of its own: whatever opens a camera is a relay, not a member of the operation, and a check only the issuer could perform checks nothing.

The ticket IS the authority. It names one camera, it covers one moment, and it is tagged with a key nobody but this deployment holds, so holding a live one is the right to open that camera until it runs out — which is the whole of what was issued, and the reason issuing one is staff-only and five minutes long.

A tag that does not verify is 404 — the route is no oracle on which tenants or cameras exist, or which tickets were ever issued — and one that verifies but has passed its moment is 410, because that ticket was real and is over.

Request

3 fields.

FieldInTypeRequiredDescription
namepathstringyesName is the camera's document name, from the path.
ticketpathstringyesTicket is the tag the minted address carries, from the path.
expiresquerystring—Expires is the moment the tag covers, as the seconds the minted address carries in its expires parameter.

Response

StatusBodyMeaning
200patrol.patrolTicketOutok
defaultproblem-detailsrefused

200 body — 3 fields.

FieldInTypeAlwaysDescription
databodypatrol.patrolStream—
data.expiresbodystring—Expires is when that address stops working.
data.urlbodystring—URL is the address to open the stream at.

Failure carries the platform error shape — see Errors.

Examples

hanzo patrol camera stream get <name> <ticket>
import { Configuration, PatrolApi } from 'hanzoai';

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

resp, _, err := client.PatrolAPI.GetPatrolCameraByNameStreamByTicket(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::get_patrol_camera_by_name_stream_by_ticket(&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).getPatrolCameraByNameStreamByTicket();
curl https://api.hanzo.ai/v1/patrol/camera/<name>/stream/<ticket> \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool patrol, op get_patrol_camera_by_name_stream_by_ticket — 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": "patrol",
         "arguments": {
           "op": "get_patrol_camera_by_name_stream_by_ticket",
           "input": {
             "name": "<name>",
             "ticket": "<ticket>"
           }
         }
       }
     }'

Patrol API · All Hanzo APIs · Interactive reference

Was this page useful?