Skip to main content

Slate insights

Generated from apiome-rest/openapi.yaml (API version 1.204.1) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: slate-insights · 29 operations

GET /v1/slate/environments/{environment_id}/insights​

Get Insights Lane

Return a lane's observability policy, residency, exports, budgets and checks together.

One read rather than five, for the reason V190 stores the residency stages in one table: an operator deciding whether a lane is safe is reading its retention, its residency and its export destinations at once, and a surface that made that five round trips would let the five drift on screen.

Operation id: get_insights_lane_v1_slate_environments__environment_id__insights_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get insights lane.application/json InsightsLaneResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/alerts​

Get Budget Alerts

Return a lane's budget alerts, newest first, each showing its own arithmetic.

budgetAmount is the amount captured when the alert fired rather than the budget's current value, so a later edit does not rewrite what the alert was compared against.

Operation id: get_budget_alerts_v1_slate_environments__environment_id__insights_alerts_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
budgetIdquerystring or nullnoQuery parameter: budget id.
unacknowledgedOnlyquerybooleannoQuery parameter: unacknowledged only.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get budget alerts.application/json BudgetAlertsResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/slate/environments/{environment_id}/insights/alerts/{alert_id}/acknowledge​

Acknowledge Alert

Acknowledge one budget alert.

An acknowledgement is a person and a time together, or neither — V190 pairs the columns by CHECK and the store writes all three at once. No policy version is consumed: acknowledging an alert changes no configuration, and invalidating every open editor to dismiss a notice would be the wrong trade during the incident that produced it.

Operation id: acknowledge_alert_v1_slate_environments__environment_id__insights_alerts__alert_id__acknowledge_post

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
alert_idpathstringyesPath parameter identifying the alert id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for acknowledge alert.

Responses

StatusDescriptionBody
200Successful response for acknowledge alert.application/json AcknowledgeAlertResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/audit​

Get Insights Audit

Return a lane's append-only observability audit trail, most recent first.

Operation id: get_insights_audit_v1_slate_environments__environment_id__insights_audit_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
subjectKindquerystring or nullnoQuery parameter: subject kind.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get insights audit.application/json SlateInsightsAuditResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/audit/export​

Export Insights Audit

Export a lane's observability audit trail as CSV.

Reading the evidence is itself audit-worthy — who exported the record of who opened a live tail on production is part of that record — so an export audit row is written before the download begins.

Modelled on access_routes.py's exporter and fixing the two defects that precedent carries: formula-leading cells are neutralized, and truncation is stated in words rather than left as an inference an auditor reads as "the rest never happened".

Operation id: export_insights_audit_v1_slate_environments__environment_id__insights_audit_export_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for export insights audit.application/json any
422Validation Errorapplication/json HTTPValidationError

POST /v1/slate/environments/{environment_id}/insights/budgets​

Create Budget

Create a spend budget, refusing one that could never alert or never reconcile.

Operation id: create_budget_v1_slate_environments__environment_id__insights_budgets_post

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for create budget.

Responses

StatusDescriptionBody
201Successful response for create budget.application/json WriteBudgetResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/slate/environments/{environment_id}/insights/budgets/{budget_id}​

Replace Budget

Replace a spend budget, running the same gates as a create.

Operation id: replace_budget_v1_slate_environments__environment_id__insights_budgets__budget_id__put

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
budget_idpathstringyesPath parameter identifying the budget id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for replace budget.

Responses

StatusDescriptionBody
200Successful response for replace budget.application/json WriteBudgetResponse
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/slate/environments/{environment_id}/insights/budgets/{budget_id}​

Remove Budget

Remove a budget and, by cascade, its alert history.

Operation id: remove_budget_v1_slate_environments__environment_id__insights_budgets__budget_id__delete

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
budget_idpathstringyesPath parameter identifying the budget id segment.
expectedPolicyVersionqueryintegeryesRequired. Query parameter: expected policy version.
dryRunquerybooleannoWhen true, validate without persisting side effects.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for remove budget.application/json DeleteInsightResourceResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/slate/environments/{environment_id}/insights/checks​

Create Synthetic Check

Create a synthetic check.

A check running from one region reports that region's health rather than the lane's, which is a warning rather than a refusal: it is a real limitation and a legitimate configuration, and the sentence is what stops it being read as the lane being healthy.

Operation id: create_synthetic_check_v1_slate_environments__environment_id__insights_checks_post

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for create synthetic check.

Responses

StatusDescriptionBody
201Successful response for create synthetic check.application/json WriteCheckResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/slate/environments/{environment_id}/insights/checks/{check_id}​

Replace Synthetic Check

Replace a synthetic check, running the same gates as a create.

Operation id: replace_synthetic_check_v1_slate_environments__environment_id__insights_checks__check_id__put

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
check_idpathstringyesPath parameter identifying the check id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for replace synthetic check.

Responses

StatusDescriptionBody
200Successful response for replace synthetic check.application/json WriteCheckResponse
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/slate/environments/{environment_id}/insights/checks/{check_id}​

Remove Synthetic Check

Remove a synthetic check and, by cascade, its results.

Operation id: remove_synthetic_check_v1_slate_environments__environment_id__insights_checks__check_id__delete

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
check_idpathstringyesPath parameter identifying the check id segment.
expectedPolicyVersionqueryintegeryesRequired. Query parameter: expected policy version.
dryRunquerybooleannoWhen true, validate without persisting side effects.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for remove synthetic check.application/json DeleteInsightResourceResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/slate/environments/{environment_id}/insights/exports​

Create Export

Create an OTLP export destination, refusing an unsafe one by name.

Operation id: create_export_v1_slate_environments__environment_id__insights_exports_post

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for create export.

Responses

StatusDescriptionBody
201Successful response for create export.application/json WriteExportResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/slate/environments/{environment_id}/insights/exports/{export_id}​

Replace Export

Replace an OTLP export destination, running the same gates as a create.

Operation id: replace_export_v1_slate_environments__environment_id__insights_exports__export_id__put

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
export_idpathstringyesPath parameter identifying the export id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for replace export.

Responses

StatusDescriptionBody
200Successful response for replace export.application/json WriteExportResponse
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/slate/environments/{environment_id}/insights/exports/{export_id}​

Remove Export

Remove an OTLP export destination.

Operation id: remove_export_v1_slate_environments__environment_id__insights_exports__export_id__delete

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
export_idpathstringyesPath parameter identifying the export id segment.
expectedPolicyVersionqueryintegeryesRequired. Query parameter: expected policy version.
dryRunquerybooleannoWhen true, validate without persisting side effects.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for remove export.application/json DeleteInsightResourceResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/logs​

Get Logs

Return a lane's structured logs, newest first, with allowlisted evidence.

traceRef is what connects a log line to the trace it belongs to, which is the whole point of the three shared correlation columns: filtering on screen and filtering in a query must not be able to mean different things.

Operation id: get_logs_v1_slate_environments__environment_id__insights_logs_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
levelsqueryarray of string or nullnoQuery parameter: levels.
sourcesqueryarray of string or nullnoQuery parameter: sources.
releaseIdquerystring or nullnoQuery parameter: release id.
regionquerystring or nullnoQuery parameter: region.
traceRefquerystring or nullnoQuery parameter: trace ref.
queryquerystring or nullnoQuery parameter: query.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get logs.application/json LogsResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/metrics​

Get Metrics

Return a lane's correlated metric points, and the ones that could not be keyed.

Correlation is a precondition rather than a feature: a point with no release is a point a drill-down cannot land on, and a chart whose drill-down lands somewhere else is worse than a chart with a gap in it. So an uncorrelatable point is dropped and reported rather than emitted unkeyed.

Operation id: get_metrics_v1_slate_environments__environment_id__insights_metrics_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
familiesqueryarray of string or nullnoQuery parameter: families.
releaseIdquerystring or nullnoQuery parameter: release id.
regionquerystring or nullnoQuery parameter: region.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get metrics.application/json MetricsResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/slate/environments/{environment_id}/insights/policy​

Set Insight Policy

Change what a lane collects, for how long, and how coarsely it reports.

Shortening log retention below the floor with no stated reason is refused here with a sentence, and again by V190's CHECK. Both are deliberate: the operator should meet the explanation, not a constraint violation, and no future code path should be able to skip the explanation.

Operation id: set_insight_policy_v1_slate_environments__environment_id__insights_policy_put

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for set insight policy.

Responses

StatusDescriptionBody
200Successful response for set insight policy.application/json SetInsightPolicyResponse
422Validation Errorapplication/json HTTPValidationError

PUT /v1/slate/environments/{environment_id}/insights/residency/{stage}​

Set Residency Lane

State where one processing stage happens, and what that promise does not cover.

A lane with no stated gap is refused rather than warned about. Every placement leaves something uncovered — a network path, a certificate log, an exported copy — and a claim with no stated gap is not a stronger promise, it is the same promise with the gap unwritten.

Operation id: set_residency_lane_v1_slate_environments__environment_id__insights_residency__stage__put

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
stagepathstringyesPath parameter identifying the stage segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for set residency lane.

Responses

StatusDescriptionBody
200Successful response for set residency lane.application/json WriteResidencyLaneResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/synthetic-results​

Get Synthetic Results

Return a lane's synthetic results, newest first.

annotatedOnly is how the surface answers "what regressed after the last promotion", which is why an annotation is a property of the probe run that found it rather than a free-standing record: a regression detached from its evidence is an alert nobody can verify.

Operation id: get_synthetic_results_v1_slate_environments__environment_id__insights_synthetic_results_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
checkIdquerystring or nullnoQuery parameter: check id.
releaseIdquerystring or nullnoQuery parameter: release id.
annotatedOnlyquerybooleannoQuery parameter: annotated only.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get synthetic results.application/json SyntheticResultsResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/tail​

Get Tail Sessions

Return a lane's recent live tail sessions, newest first.

Operation id: get_tail_sessions_v1_slate_environments__environment_id__insights_tail_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get tail sessions.application/json TailSessionsResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/slate/environments/{environment_id}/insights/tail​

Open Live Tail

Open a live tail session against the lane's ceilings.

The ceilings are checked rather than clamped, deliberately. Clamping would let an operator ask for a rate they do not get and read a stream they believe is complete, which on this surface means concluding a route is quiet when it was merely sampled away.

A tail with no stated reason is refused. A tail is a capture of live reader traffic in front of a person, and the question at review is never that one was opened but why.

Operation id: open_live_tail_v1_slate_environments__environment_id__insights_tail_post

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for open live tail.

Responses

StatusDescriptionBody
201Successful response for open live tail.application/json OpenTailResponse
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/slate/environments/{environment_id}/insights/tail/{session_id}​

Close Live Tail

Close a live tail session.

No delivery count is written here and there is no argument by which one could be. Nothing delivered anything, and a close that could record a stream is the one path by which this surface could claim a capture it never had.

Operation id: close_live_tail_v1_slate_environments__environment_id__insights_tail__session_id__delete

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
session_idpathstringyesPath parameter identifying the session id segment.
dryRunquerybooleannoWhen true, validate without persisting side effects.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for close live tail.application/json CloseTailResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/traces​

Get Traces

Return a lane's traces, newest first.

minDurationMs is how an operator finds the traces worth opening, which is the only way a trace list is usable at all.

Operation id: get_traces_v1_slate_environments__environment_id__insights_traces_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
releaseIdquerystring or nullnoQuery parameter: release id.
regionquerystring or nullnoQuery parameter: region.
routequerystring or nullnoQuery parameter: route.
minDurationMsqueryinteger or nullnoQuery parameter: min duration ms.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get traces.application/json TracesResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/traces/{trace_id}​

Get Trace Detail

Return one trace and its spans, ordered as a waterfall.

Spans arrive ordered by start offset rather than by insertion, because the waterfall is drawn from offsets and an ordering the renderer has to redo is an ordering the two can disagree about.

Operation id: get_trace_detail_v1_slate_environments__environment_id__insights_traces__trace_id__get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
trace_idpathstringyesPath parameter identifying the trace id segment.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get trace detail.application/json TraceDetailResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/usage​

Get Usage

Return a lane's daily usage, its per-service rollups and its forecast.

Three things this deliberately does not do. It never sums a forecast into a total, because a projection added to things that happened produces a figure that is neither. It never reports cache savings assembled from a mix of metered and modelled rows, because that is a measurement in presentation and a model in fact. And it never marks anything billable, which is not a decision this handler makes but a property of :class:UsageRollupBody — the field is a Literal[False] no handler can assign.

Operation id: get_usage_v1_slate_environments__environment_id__insights_usage_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
servicesqueryarray of string or nullnoQuery parameter: services.
releaseIdquerystring or nullnoQuery parameter: release id.
regionquerystring or nullnoQuery parameter: region.
sincequerystring (date) or nullnoQuery parameter: since.
untilquerystring (date) or nullnoQuery parameter: until.
daysRemainingqueryintegernoQuery parameter: days remaining.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get usage.application/json UsageResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/environments/{environment_id}/insights/usage/export​

Export Usage

Export a lane's daily usage as CSV.

Every row carries basis, metered and billable columns, and every one of them is a constant written by this function rather than read from the row. A spreadsheet of costs is the artifact most likely to be forwarded to somebody who never saw this surface, so the file has to say what it is without the page around it.

VIEW rather than PUBLISH: "what did this lane cost" is the auditor's question, and gating it behind the permission to change observability would put the answer out of reach.

CSV injection is neutralized — a cell whose first character is =, +, -, @, a tab or a carriage return is prefixed with an apostrophe. Nothing is silently truncated — this reads one row past the cap and says so in words when there was more.

Operation id: export_usage_v1_slate_environments__environment_id__insights_usage_export_get

Parameters

NameInTypeRequiredDescription
environment_idpathstringyesPath parameter identifying the environment id segment.
servicesqueryarray of string or nullnoQuery parameter: services.
sincequerystring (date) or nullnoQuery parameter: since.
untilquerystring (date) or nullnoQuery parameter: until.
limitqueryintegernoMaximum number of rows to return.
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for export usage.application/json any
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/insights/metric-families​

Get Metric Families

Return the metric families as data, each with the question it cannot answer.

doesNotAnswer is a required field rather than documentation somewhere else, because the whole failure mode of an observability product is a number read as more than it is. A rising error rate names no cause; a hit ratio says nothing about whether the hits were correct.

Operation id: get_metric_families_v1_slate_insights_metric_families_get

Parameters

NameInTypeRequiredDescription
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get metric families.application/json MetricFamiliesResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/insights/residency-stages​

Get Residency Stages

Return the six processing stages and what each one's residency promise leaves uncovered.

§29.6 asks the UX to state what a residency option does not cover, which is an unusual requirement and the correct one: a claim with no stated gap is the version somebody quotes to a regulator. These sentences are that requirement expressed as data, so the surface renders them rather than inventing its own.

Operation id: get_residency_stages_v1_slate_insights_residency_stages_get

Parameters

NameInTypeRequiredDescription
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get residency stages.application/json ResidencyStagesResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/slate/insights/services​

Get Insight Services

Return the billable services, their units, and what drives each number.

Operation id: get_insight_services_v1_slate_insights_services_get

Parameters

NameInTypeRequiredDescription
tenantSlugquerystring or nullnoTenant slug. Optional: the Slate routes read tenancy from the credential, so a browser call carrying a session JWT does not need to name a tenant in the URL.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get insight services.application/json ServicesResponse
422Validation Errorapplication/json HTTPValidationError

Schemas used​

AcknowledgeAlertRequest​

Acknowledge one budget alert.

PropertyTypeRequiredDescription
notestring or nullnoOptional note, recorded in audit.
expectedPolicyVersioninteger or nullnoNot consumed: acknowledging an alert changes no policy.
dryRunbooleannoValidate without writing.

AcknowledgeAlertResponse​

The outcome of acknowledging a budget alert.

PropertyTypeRequiredDescription
acknowledgedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
alertBudgetAlertBody or nullnoThe alert as acknowledged.

BudgetAlertsResponse​

A lane's budget alerts.

PropertyTypeRequiredDescription
alertsarray of BudgetAlertBodyyesNewest first.
basis"modelled"noAlways modelled.
dispatchedfalsenoFalse: nothing dispatches.
sentencestringnoWhat that means, in words.

CloseTailResponse​

The outcome of closing a live tail session.

PropertyTypeRequiredDescription
closedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
sessionTailSessionBody or nullnoThe session as closed.

DeleteInsightResourceResponse​

The outcome of removing an export destination, a budget or a synthetic check.

PropertyTypeRequiredDescription
deletedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
policyVersionintegeryesThe version after the write.

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

InsightsLaneResponse​

A lane's complete observability configuration, and what it actually measures.

PropertyTypeRequiredDescription
environmentIdstringyesThe lane.
policyInsightPolicyBodyyesWhat is collected, for how long, how coarsely.
residencyLanesarray of ResidencyLaneBodyyesAll six stages, in request-path order. Five stages is not a promise.
residencyCompletebooleanyesWhether all six stages are stated. False means the promise is incomplete.
effectiveResidencyClassstring or nullnoThe single promise the lane actually makes, which is the weakest any stage makes. Null when the six stages are not all stated, because an incomplete set has no effective promise to report.
exportsarray of ExportBodyyesOTLP destinations, by label.
budgetsarray of BudgetBodyyesSpend budgets, by label.
syntheticChecksarray of SyntheticCheckBodyyesSynthetic probes, by label.
policyVersionintegeryesOptimistic-concurrency token.
signalsDigeststringyesDeterminism receipt over the whole configuration.
enforcementSlateInsightsEnforcementBodynoWhether the policy measures anything.
warningsarray of InsightWarningBodynoNon-blocking concerns about the configuration.
updatedAtstring or nullnoWhen the policy last changed.
updatedBystring or nullnoWho changed it.

LogsResponse​

A lane's structured logs.

PropertyTypeRequiredDescription
logsarray of LogBodyyesNewest first.
observedfalsenoFalse: none of these were observed in a request path.
sentencestringnoWhat that means.

MetricFamiliesResponse​

The metric family catalog.

PropertyTypeRequiredDescription
familiesarray of MetricFamilyBodyyesEvery family, in request-path order.

MetricsResponse​

A lane's correlated metric points, and the ones that could not be keyed.

Drops are reported rather than silently discarded: a chart with a hole in it and no explanation teaches operators the data is unreliable, which is more expensive than the missing point.

PropertyTypeRequiredDescription
pointsarray of MetricPointBodyyesCorrelated points, by family and window.
droppedarray of DroppedPointBodynoPoints that could not be keyed, and why.
suppressedCountintegernoHow many points were withheld for privacy.
privacyThresholdintegernoThe threshold they were withheld against.
warningsarray of InsightWarningBodynoWarnings.
basis"policy-modelled"noThis series is modelled from policy, not measured.
observedfalsenoFalse: no collector reported any of this.
enforcementSlateInsightsEnforcementBodynoEnforcement.
sentencestringnoWhat that means, in words.

OpenTailRequest​

Open a live tail session.

expectedPolicyVersion is optional here and required on every configuration write, because opening a tail changes no policy. Consuming a version to read a stream would invalidate every other operator's open editor during exactly the incident that made somebody open it.

PropertyTypeRequiredDescription
sampleRatenumbernoRequested sampling rate.
maxEventsPerSecintegernoRequested event-rate ceiling.
redactionAllowlistarray of stringnoFields permitted through. Anything outside the allowlist is refused.
filterExpressionstring or nullnoServer-side filter, or null.
reasonstringnoWhy the tail is being opened. Refused when blank.
expectedPolicyVersioninteger or nullnoNot consumed: opening a tail changes no policy.
dryRunbooleannoRun every gate and record nothing.

OpenTailResponse​

The outcome of opening a live tail session.

PropertyTypeRequiredDescription
appliedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
sessionTailSessionBody or nullnoThe session as recorded.
policyVersionintegeryesThe lane's policy version, unchanged by this call.
enforcementSlateInsightsEnforcementBodynoEnforcement.
warningsarray of InsightWarningBodynoWarnings.

ResidencyStagesResponse​

The residency stage catalog, and the postures a stage may take.

PropertyTypeRequiredDescription
stagesarray of ResidencyStageBodyyesAll six, in request-path order.
residencyClassesarray of SlateInsightsResidencyClassBodyyesThe three postures, most restrictive first.

ServicesResponse​

The billable service catalog.

PropertyTypeRequiredDescription
servicesarray of ServiceBodyyesEvery service §29.6 names.
meteredfalsenoFalse. Nothing meters these services.
billablefalsenoFalse. A modelled cost is not a charge.
sentencestringnoWhat that means, in words.

SetInsightPolicyRequest​

Change what a lane collects, for how long, and how coarsely it reports.

PropertyTypeRequiredDescription
telemetryEnabledbooleannoWhether signals are collected.
metricRetentionDaysintegernoMetric retention, in days.
logRetentionDaysintegernoLog retention, in days.
traceRetentionDaysintegernoTrace retention, in days.
defaultSampleRatenumbernoHead sampling rate.
maxTailSampleRatenumbernoTail rate ceiling.
maxTailEventsPerSecintegernoTail event-rate ceiling.
privacyThresholdintegernoSmallest reportable population.
retentionWaiverReasonstring or nullnoRequired when log retention falls below the floor.
expectedPolicyVersionintegeryesThe version the caller read.
dryRunbooleannoRun every gate and write nothing.
reasonstringnoWhy; recorded in audit.

SetInsightPolicyResponse​

The outcome of an observability policy change.

PropertyTypeRequiredDescription
appliedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
policyInsightPolicyBodyyesThe policy as it now reads.
policyVersionintegeryesThe version after the change.
enforcementSlateInsightsEnforcementBodynoEnforcement.
warningsarray of InsightWarningBodynoWarnings.

SlateInsightsAuditResponse​

A lane's observability audit trail.

The audit is the one table on this surface with no retention: the record that a live tail was opened outlives the capture it took, which is the whole point of separating the two.

PropertyTypeRequiredDescription
entriesarray of SlateInsightsAuditEntryBodyyesMost recent first.

SyntheticResultsResponse​

A lane's synthetic results.

PropertyTypeRequiredDescription
resultsarray of SyntheticResultBodyyesNewest first.
observedfalsenoFalse: no probe actually ran.
sentencestringnoWhat that means.

TailSessionsResponse​

A lane's recent live tail sessions.

PropertyTypeRequiredDescription
sessionsarray of TailSessionBodyyesNewest first.
enforcementSlateInsightsEnforcementBodynoEnforcement.

TraceDetailResponse​

One trace and its spans, ordered as a waterfall.

PropertyTypeRequiredDescription
traceTraceBodyyesThe trace header.
spansarray of SpanBodyyesIts spans, by start offset.
observedfalsenoFalse: nothing observed this.
sentencestringnoWhat that means.

TracesResponse​

A lane's traces.

PropertyTypeRequiredDescription
tracesarray of TraceBodyyesNewest first.
observedfalsenoFalse: nothing observed these.
sentencestringnoWhat that means.

UsageResponse​

A lane's daily usage, its per-service rollups and its forecast.

PropertyTypeRequiredDescription
recordsarray of UsageRecordBodyyesDaily records, oldest first.
rollupsarray of UsageRollupBodyyesOne per service present in the window.
forecastAmountnumber or nullnoProjected additional spend for the remainder of the period.
forecastDaysRemainingintegernoDays the projection covers. Zero means no projection was asked for.
currencystringnoISO 4217 code shared by every record.
warningsarray of InsightWarningBodynoWarnings.
basis"modelled"noAlways modelled.
meteredfalsenoFalse: nothing meters this lane.
billablefalsenoFalse: a modelled cost is not a charge.
sentencestringnoWhat that means, in words.
forecastSentencestringnoWhy the forecast is carried separately.

WriteBudgetRequest​

Create or replace a spend budget.

PropertyTypeRequiredDescription
labelstringyesOperator-facing name, unique per lane.
servicestring or nullnoService to scope to, or null for every service.
periodstringnodaily, weekly or monthly.
amountnumbernoBudget amount. Must be positive.
currencystringnoISO 4217 code.
alertThresholdsarray of numbernoFractions at which an alert fires. At least one.
notifyChannelRefstring or nullnoReference to the notification channel, not its address.
enabledbooleannoWhether the budget is active.
expectedPolicyVersionintegeryesThe version the caller read.
dryRunbooleannoRun every gate and write nothing.
reasonstringnoWhy; recorded in audit.

WriteBudgetResponse​

The outcome of a budget write.

PropertyTypeRequiredDescription
appliedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
budgetBudgetBody or nullnoThe budget as written.
policyVersionintegeryesThe version after the write.
enforcementSlateInsightsEnforcementBodynoEnforcement.
warningsarray of InsightWarningBodynoWarnings.

WriteCheckRequest​

Create or replace a synthetic check.

PropertyTypeRequiredDescription
labelstringyesOperator-facing name, unique per lane.
targetPathstringnoThe path the probe requests.
methodstringnoHTTP method.
regionsarray of stringnoRegions the probe runs from.
intervalSecondsintegernoHow often it would run.
expectedStatusintegernoThe status it treats as healthy.
latencyBudgetMsintegernoAbove this it is degraded.
enabledbooleannoWhether the probe is active.
expectedPolicyVersionintegeryesThe version the caller read.
dryRunbooleannoRun every gate and write nothing.
reasonstringnoWhy; recorded in audit.

WriteCheckResponse​

The outcome of a synthetic check write.

PropertyTypeRequiredDescription
appliedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
checkSyntheticCheckBody or nullnoThe check as written.
policyVersionintegeryesThe version after the write.
enforcementSlateInsightsEnforcementBodynoEnforcement.
warningsarray of InsightWarningBodynoWarnings.

WriteExportRequest​

Create or replace an OTLP export destination.

extra="allow" is deliberate and is the only place on this surface where it appears. There is nowhere in V190 to store a header value, and normalization drops one silently — so an operator who pasted a bearer token into a form would see it accepted and reasonably believe it had been stored and used. Accepting the field and refusing it by name is the honest behaviour, and :func:app.slate_insights.validate_export is what refuses it.

PropertyTypeRequiredDescription
labelstringyesOperator-facing name, unique per lane.
endpointstringyesThe collector endpoint. Plaintext HTTP is refused.
protocolstringnogrpc or http/protobuf.
signalsarray of stringnometrics, logs and/or traces. At least one.
headerSecretRefstring or nullnoName of the secret holding the header. A reference, never a value.
enabledbooleannoWhether the destination is active.
expectedPolicyVersionintegeryesThe version the caller read.
dryRunbooleannoRun every gate and write nothing.
reasonstringnoWhy; recorded in audit.

WriteExportResponse​

The outcome of an export destination write.

PropertyTypeRequiredDescription
appliedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
exportExportBody or nullnoThe destination as written.
policyVersionintegeryesThe version after the write.
enforcementSlateInsightsEnforcementBodynoEnforcement.
warningsarray of InsightWarningBodynoWarnings.

WriteResidencyLaneRequest​

State where one processing stage happens, and what that promise does not cover.

PropertyTypeRequiredDescription
residencyClassstringnoin-region-only, region-pinned or unrestricted.
regionsarray of stringnoRegions the stage is confined to. Required unless unrestricted.
uncoveredSentencestringnoWhat this promise does not cover. Falls back to the stage's catalog sentence.
residencyWaiverReasonstring or nullnoRequired when the stage is unrestricted.
expectedPolicyVersionintegeryesThe version the caller read.
dryRunbooleannoRun every gate and write nothing.
reasonstringnoWhy; recorded in audit.

WriteResidencyLaneResponse​

The outcome of a residency stage write.

PropertyTypeRequiredDescription
appliedbooleanyesFalse for a dry run.
dryRunbooleanyesWhether this was a preview.
laneResidencyLaneBody or nullnoThe stage as written.
effectiveResidencyClassstring or nullnoThe promise the lane as a whole now makes, when all six are stated.
policyVersionintegeryesThe version after the write.
enforcementSlateInsightsEnforcementBodynoEnforcement.
warningsarray of InsightWarningBodynoWarnings.