What This Means
When a domain is newly enabled for TOTAL, the platform needs an initial calibration period before certain higher-order resources are exposed. During that period:- TOTAL is building personas for the domain.
- The API intentionally blocks specific routes that depend on those personas or on derived organizational behavior.
- The blocked response is temporary and time-based.
- The readiness state lasts until
external_api_enabled_at_utcis reached.
Status Code
423 Locked
423 Locked to indicate that the route exists and is recognized, but the requested resource is not yet available because the domain is still within the readiness window.
Blocked Response Shape
All routes return the same response structure while the models are converging.Response Fields
error
Always returned as resource_not_ready. This is the canonical machine-readable signal that the resource is blocked by.
resource
Identifies the route group that is currently unavailable. The possible values are:
casespersonasthreatsdriftintegrationsaudit
message
A human-readable explanation that the resource is still being prepared for the domain and will be ready in <N> days.
details
A route-group-specific explanation of what is not ready yet. This is the only descriptive field that varies by blocked resource type.
days_until_ready
A numeric estimate of the remaining time until the resource becomes available.
external_api_enabled_at_utc
The UTC timestamp when the training period will lift for the blocked routes.
now_utc
The current UTC timestamp at the time the response was generated.
How Clients Should Use This Response
When your client receives this response:- Detect
423 Locked. - Check whether
errorisresource_not_ready. - Read
resourceto determine which resource family is unavailable. - Use
days_until_readyandexternal_api_enabled_at_utcto inform retry logic, UI messaging, or onboarding workflows. - Treat the response as a temporary readiness condition rather than an application failure.
Cases
Resource:cases
Cases appear to depend on completed persona construction and domain-level behavioral context. Until the domain is ready, all listed case endpoints return the blocked response shape.
Routes:
GET /api/v1/eris/casesGET /api/v1/eris/cases/statsGET /api/v1/eris/cases/{case_id}GET /api/v1/eris/cases/{case_id}/versionsGET /api/v1/external/cases/feedPOST /api/v1/external/cases/{case_id}/verdict
Personas
Resource:personas
These endpoints are directly tied to persona availability, so they remain blocked until persona construction is complete for the domain.
Routes:
GET /api/v1/eris/personasGET /api/v1/eris/personas/{tuid}GET /api/v1/eris/personas/{tuid}/history
Threats
Resource:threats
Threat events are blocked during the readiness phase, as they rely on domain-specific context or calibration before being surfaced externally.
Routes:
GET /api/v1/external/threats
Drift
Resource:drift
Drift endpoints remain blocked while TOTAL is still establishing baseline persona behavior for the domain. This is consistent with drift detection depending on a calibrated organizational norm.
Routes:
GET /api/v1/eris/driftGET /api/v1/eris/drift/{drift_id}GET /api/v1/eris/drift/users/{tuid}
Integrations
Resource:integrations
These integration-facing endpoints are blocked during readiness for this domain. Based on the route names, this likely covers integration status and signal visibility that are downstream of initial organizational calibration.
Routes:
GET /api/v1/eris/integrationsGET /api/v1/eris/integrations/signalsGET /api/v1/eris/integrations/{connector_type}
Audit
Resource:audit
Audit log endpoints are also gated during the training window for this domain.
Routes:
GET /api/v1/eris/audit-logsGET /api/v1/eris/audit-logs/{log_id}
Routes Not Blocked by the Training Period
The following routes remain available even before personas are fully constructed:- Users routes:
/api/v1/eris/users... - Admins routes:
/api/v1/eris/admins... - External docs routes:
/api/v1/external/docs/api/v1/external/docs/ui

