Listar las unidades organizativas de la organización
GET/api/public/v1/org-units
The live tree, ordered by path. agents_count is descendant-inclusive (the unit or any unit under it, by placement: the human owner's unit, else the service-accountable person's unit, else the service-accountable unit) and lifetime — it matches what GET /agents?org_unit=<id> returns and ignores every page's time window. Creates the organization's root unit and root zone on first call — pass bootstrap=false to read the tree exactly as it stands and write nothing. directory_mapping_enabled says whether a directory sync may still write this tree.
curl --fail-with-body -X GET 'https://app.openlatch.ai/api/public/v1/org-units' \ -H "Authorization: Bearer $OPENLATCH_API_KEY"import jsonimport osimport urllib.request
request = urllib.request.Request( 'https://app.openlatch.ai/api/public/v1/org-units', 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' \ -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' -Headers $headers | ConvertTo-Json -Depth 20Autorización
Sección titulada «Autorización»| Rol en la organización | Este punto de conexión |
|---|---|
owner | Permitido |
admin | Permitido |
editor | Permitido |
viewer | Permitido |
Una clave tiene el rol que su propietario ocupa en la organización. Consulte Autenticación.
Ámbito de la clave de API: org:read
Parámetros de consulta
Sección titulada «Parámetros de consulta»| Parámetro | Tipo | Descripción |
|---|---|---|
bootstrap | boolean | false reads the tree as it stands and creates nothing: no root unit and no root zone. An organization nobody has opened yet answers data: []. |
Respuesta
Sección titulada «Respuesta»- 200 OK — la llamada se completó correctamente.
- 401 Unauthorized —
UNAUTHORIZED - 402 Payment Required —
license_expired - 403 Forbidden —
FEATURE_DISABLED,FORBIDDEN,INSUFFICIENT_SCOPE - 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
Campos de la respuesta
Sección titulada «Campos de la respuesta»| Campo | Tipo | Descripción |
|---|---|---|
data | array of object | Obligatorio. |
data[].agents_count | integer | Obligatorio. |
data[].agents_direct | integer or null | |
data[].depth | integer | Obligatorio. |
data[].effective_zone_id | string or null | |
data[].id | string | Obligatorio. |
data[].name | string | Obligatorio. |
data[].parent_id | string or null | |
data[].path | string | Obligatorio. |
data[].policies_added_here | integer | Obligatorio. |
data[].policies_in_force | integer | Obligatorio. |
data[].short | string or null | |
data[].source | string | Obligatorio. |
data[].zone | object or null | |
directory_mapping_enabled | boolean | Obligatorio. |
Ejemplo de respuesta
Sección titulada «Ejemplo de respuesta»{ "data": [ { "agents_count": 3, "agents_direct": 3, "depth": 3, "effective_zone_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "name": "release-bot", "parent_id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "path": "Engineering / Platform", "policies_added_here": 3, "policies_in_force": 3, "short": "string", "source": "string", "zone": { "ask_mode": "string", "effective_ask_mode": "both", "id": "3f6c1a2e-8b4d-4c1f-9a7e-0d5b2c8e4f10", "is_default": false, "is_root": false, "limits": {} } } ], "directory_mapping_enabled": false}