Revert the default zone to the root
DELETE/api/public/v1/zones/{zone_id}/default
409 NOT_DEFAULT when the zone is not the default. dry_run=true answers moving and writes nothing. Retiring the default zone clears the flag the same way.
curl --fail-with-body -X DELETE 'https://app.openlatch.ai/api/public/v1/zones/<zone_id>/default' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/zones/<zone_id>/default', method='DELETE', 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 DELETE 'https://app.openlatch.ai/api/public/v1/zones/<zone_id>/default' \ -H "Authorization: Bearer $OPENLATCH_API_KEY" | jq .$headers = @{ Authorization = "Bearer $env:OPENLATCH_API_KEY"}Invoke-RestMethod -Method DELETE -Uri 'https://app.openlatch.ai/api/public/v1/zones/<zone_id>/default' -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:write
Path parameters
Section titled “Path parameters”| Parameter | Type | Description |
|---|---|---|
zone_id | string (uuid) | Required. |
Query parameters
Section titled “Query parameters”| Parameter | Type | Description |
|---|---|---|
dry_run | boolean | Count the agents that would move and change nothing. |
Header parameters
Section titled “Header parameters”| Parameter | Type | Description |
|---|---|---|
Idempotency-Key | string or null | Optional. Makes the request safe to retry: the same key and the same request, within 24 hours, returns the stored response with Idempotent-Replayed: true and runs once. |
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,ZONE_NOT_FOUND - 409 Conflict —
DEFAULT_CONFLICT,IDEMPOTENCY_IN_PROGRESS,NOT_DEFAULT - 422 Unprocessable Content —
IDEMPOTENCY_KEY_REUSED,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 |
|---|---|---|
moving | integer | Required. |
Example response
Section titled “Example response”{ "moving": 3}