Who would arrive if this unit's Autonomy Zone were enabled
GET/api/public/v1/org-units/{unit_id}/zone/preview
Agents with no manual assignment whose placement sits at or under the unit and whose current zone is above it — the agents for which the new zone would become the deepest — each with the placement link that brings it (owner · accountable_person · accountable_unit) and whether that link was set by hand. auto_arrivals is the total; agents lists the first 500 by display name. 409 ZONE_EXISTS when the unit already carries a zone.
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/org-units/<unit_id>/zone/preview' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/org-units/<unit_id>/zone/preview', method='GET', headers={ 'Authorization': 'Bearer ' + os.environ['OPENLATCH_API_KEY'], },)with urllib.request.urlopen(request) as response: text = response.read().decode() print(json.dumps(json.loads(text), indent=2) if text else response.status)#!/usr/bin/env bashset -euo pipefail
curl -sS --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/org-units/<unit_id>/zone/preview' \ -H "Authorization: Bearer $OPENLATCH_API_KEY" | jq .$headers = @{ Authorization = "Bearer $env:OPENLATCH_API_KEY"}Invoke-RestMethod -Method GET -Uri 'https://app.openlatch.ai/api/public/v1/org-units/<unit_id>/zone/preview' -Headers $headers | ConvertTo-Json -Depth 20Authorization
Section titled “Authorization”| Role in the organization | This endpoint |
|---|---|
owner | Allowed |
admin | Allowed |
editor | Not allowed |
viewer | Not allowed |
A key carries the role its owner holds in the organization. See Authentication.
API key scope: zones:read
Path parameters
Section titled “Path parameters”| Parameter | Type | Description |
|---|---|---|
unit_id | string (uuid) | Required. |
Response
Section titled “Response”- 200 OK — the call succeeded.
- 401 Unauthorized —
UNAUTHORIZED - 402 Payment Required —
license_expired - 403 Forbidden —
FEATURE_DISABLED,FORBIDDEN,INSUFFICIENT_SCOPE - 404 Not Found —
NOT_FOUND - 409 Conflict —
ZONE_EXISTS - 422 Unprocessable Content —
INVALID_ID,VALIDATION_ERROR - 429 Too Many Requests —
TOO_MANY_REQUESTS - 500 Internal Server Error —
INTERNAL_SERVER_ERROR,tenant_isolation_violation - 503 Service Unavailable —
FEATURE_STATE_UNAVAILABLE,SERVICE_UNAVAILABLE
Response fields
Section titled “Response fields”| Field | Type | Description |
|---|---|---|
agents | array of object | Required. |
agents[].agent_id | string | Required. |
agents[].current_zone | object | Required. |
agents[].current_zone.id | string | Required. |
agents[].current_zone.label | string | Required. |
agents[].reason | object | Required. |
agents[].reason.kind | string — one of owner, accountable_person, accountable_unit | Required. |
agents[].reason.person | object or null | |
agents[].reason.source | string — one of directory, manual | Required. |
agents[].reason.unit | string | Required. |
auto_arrivals | integer | Required. |
Example response
Section titled “Example response”{ "agents": [ { "agent_id": "agt_01jbwa2k1vfrn9y42xhgxhmzj2", "current_zone": { "id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "label": "string" }, "reason": { "kind": "owner", "person": "string", "source": "directory", "unit": "string" } } ], "auto_arrivals": 3}