Open source / Rust / MIT Field guide / indexed
Field guide / Observe APIReviewable source / main

Observe API

Observability operations: log-forwarding coverage and gaps, noise suppression, synthetic health dashboards, and the monitoring review queue.

28 routes

Response metadata: x-api-version, x-request-id, and traceresponse apply to normal routed responses and are omitted from the per-operation header tables below.

GET/api/observe/alert-routing-contract

request access

Observe alert routing.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/alert-routing-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
dimensionsarray<JSON value>RequiredValue of dimensions returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
escalationStagesarray<JSON value>RequiredValue of escalationStages returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/alert-routing-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "workflows": [],
  "dimensions": [],
  "requiredGuards": [],
  "escalationStages": [],
  "blockedReasons": []
}

GET/api/observe/log-forwarder-onboarding-contract

request access

Observe log forwarder.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/log-forwarder-onboarding-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
signalsarray<JSON value>RequiredValue of signals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/log-forwarder-onboarding-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "workflows": [],
  "signals": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": []
}

GET/api/observe/logs-contract

request access

Logs contract.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/logs-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
endpointsJSON valueRequiredValue of endpoints returned in the response body.
sourceTypesarray<JSON value>RequiredValue of sourceTypes returned in the response body.
statusesarray<JSON value>RequiredValue of statuses returned in the response body.
hostsJSON valueRequiredValue of hosts returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
signalsarray<JSON value>RequiredValue of signals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/logs-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "endpoints": null,
  "sourceTypes": [],
  "statuses": [],
  "hosts": null,
  "workflows": [],
  "signals": [],
  "requiredGuards": [],
  "blockedReasons": []
}

GET/api/observe/logs/coverage

audit access

Return the coverage report for a site.

Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/logs/coverage

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringRequiredRequired site code whose log-forwarding report should be returned.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/logs/coverage?site=<site>'

POST/api/observe/logs/disable/{hostname}

execute access

Disable log forwarding for all sources on a hostname by transitioning each to NotConfigured.

Requires a database. Disables every still-active source for the hostname in one atomic, advisory-locked step (repos::log_forwarders::disable_all_for_hostname) so it cannot race a concurrent onboard or be left partially applied. The response lists the sources that were actually transitioned.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/logs/disable/{hostname}

Path parameters

NameTypeRequirementDescription
hostnamestringRequiredValue of the hostname request-path segment.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  'https://<your-host>/api/observe/logs/disable/<hostname>'

GET/api/observe/logs/gaps

audit access

Return the gap report for a site.

Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/logs/gaps

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringRequiredRequired site code whose log-forwarding report should be returned.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/logs/gaps?site=<site>'

POST/api/observe/logs/onboard

execute access

Insert one LogSource row per requested source type and return the list of persisted records.

The handler fans out: one row per (hostname, source_type) pair so each source has an independent status lifecycle.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/logs/onboard

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
Content-TypestringRequiredRequired by the resolved Axum Json<T> request extractor; send application/json.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

JSON structure: LogsOnboardRequest.

NameTypeRequirementDescription
hostnamestringRequiredValue of hostname in the JSON request body.
sourceTypesarray<string>OptionalValue of sourceTypes in the JSON request body.
sitestringRequiredSite code targeted by the request.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '{"hostname":"<string>","site":"<string>"}' \
  'https://<your-host>/api/observe/logs/onboard'

GET/api/observe/logs/retention

audit access

Return the retention status for a site.

Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/logs/retention

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringRequiredRequired site code whose log-forwarding report should be returned.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/logs/retention?site=<site>'

POST/api/observe/logs/validate/{hostname}

execute access

Validate the forwarding config for a hostname.

Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/logs/validate/{hostname}

Path parameters

NameTypeRequirementDescription
hostnamestringRequiredValue of the hostname request-path segment.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  'https://<your-host>/api/observe/logs/validate/<hostname>'

POST/api/observe/logs/verify/{hostname}

execute access

Verify that a hostname is actively forwarding logs.

Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/logs/verify/{hostname}

Path parameters

NameTypeRequirementDescription
hostnamestringRequiredValue of the hostname request-path segment.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  'https://<your-host>/api/observe/logs/verify/<hostname>'

GET/api/observe/logs/volume

audit access

Return the volume report for a site.

Reads from DB when available. When no pool is connected the read degrades to an empty result (never seed data, which would mask missing persistence). A DB error propagates as 500.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/logs/volume

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringRequiredRequired site code whose log-forwarding report should be returned.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/logs/volume?site=<site>'

GET/api/observe/monitoring-coverage-gap-contract

request access

Observe monitoring coverage gap.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/monitoring-coverage-gap-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
gapScopesarray<JSON value>RequiredValue of gapScopes returned in the response body.
gapSignalsarray<JSON value>RequiredValue of gapSignals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/monitoring-coverage-gap-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "gapScopes": [],
  "gapSignals": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": []
}

GET/api/observe/monitoring-review-queue

request access

The LIVE monitoring review queue (#29).

The monitoring_review_queue table (migration 031) was seeded but never read by the API — only the static contract endpoint existed. This turns it into a real read surface, mirroring how shift_queue is exposed. Request-tier read, site-scoped (#2): a scoped principal sees only its own site's items; an environment-scoped principal sees none (this queue is site-only). Ordered by SLA deadline (most urgent first). Empty + durable:false when no DB is configured.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/monitoring-review-queue

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
limitintegerOptionalMaximum number of results requested.
offsetintegerOptionalNumber of results to skip before returning the page.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
itemsJSON valueRequiredResources returned by this operation.
durablebooleanRequiredValue of durable returned in the response body.
totalJSON valueRequiredTotal number of matching items before the returned page is applied.
limitJSON valueRequiredPage-size limit applied to this response.
offsetJSON valueRequiredNumber of matching items skipped before this response page.

Returns a paginated JSON object with total/limit/offset keys.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/monitoring-review-queue'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "items": null,
  "durable": false,
  "total": null,
  "limit": null,
  "offset": null
}

GET/api/observe/monitoring-review-queue-contract

request access

Observe monitoring review queue.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/monitoring-review-queue-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
signalsarray<JSON value>RequiredValue of signals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/monitoring-review-queue-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "workflows": [],
  "signals": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": []
}

GET/api/observe/noise-flapping-remediation-contract

request access

Observe noise flapping.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/noise-flapping-remediation-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
signalsarray<JSON value>RequiredValue of signals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/noise-flapping-remediation-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "workflows": [],
  "signals": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": []
}

GET/api/observe/oncall/contacts

audit access

List contacts, optionally filtered by site and/or escalation tier, in escalation order.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/oncall/contacts

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringOptionalSite identifier used to scope or filter the operation.
tierintegerOptionalValue supplied for the tier query parameter.
limitintegerOptionalMaximum number of results requested.
offsetintegerOptionalNumber of results to skip before returning the page.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
contactsJSON valueRequiredValue of contacts returned in the response body.
durablebooleanOptionalValue of durable returned in the response body.
totalJSON valueRequiredTotal number of matching items before the returned page is applied.
limitJSON valueRequiredPage-size limit applied to this response.
offsetJSON valueRequiredNumber of matching items skipped before this response page.
sourcestringOptionalOrigin or authority of the returned data.
countJSON valueOptionalNumber of items represented in this response.

Returns a paginated JSON object with total/limit/offset keys.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/oncall/contacts'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "contacts": null,
  "durable": false,
  "total": null,
  "limit": null,
  "offset": null,
  "source": "<string>",
  "count": null
}

POST/api/observe/oncall/contacts

execute access

Register an on-call contact.

Execute-tier.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/oncall/contacts

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
Content-TypestringRequiredRequired by the resolved Axum Json<T> request extractor; send application/json.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

JSON structure: OnCallContactCreateRequest.

NameTypeRequirementDescription
namestringRequiredClient-supplied name for the resource or operation.
rolestringRequiredValue of role in the JSON request body.
sitestringOptionalSite code targeted by the request.
escalation_tierintegerOptionalValue of escalation_tier in the JSON request body.
emailstringOptionalValue of email in the JSON request body.
phonestringOptionalValue of phone in the JSON request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
idJSON valueRequiredIdentifier of the returned resource.
createdbooleanRequiredValue of created returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '{"name":"<string>","role":"<string>"}' \
  'https://<your-host>/api/observe/oncall/contacts'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "id": null,
  "created": false
}

DELETE/api/observe/oncall/contacts/{id}

execute access

Remove a contact.

404 when unknown.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

DELETE https://<your-host>/api/observe/oncall/contacts/{id}

Path parameters

NameTypeRequirementDescription
idstringRequiredIdentifier of the target resource in the request path.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
deletedbooleanRequiredValue of deleted returned in the response body.
idJSON valueRequiredIdentifier of the returned resource.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request DELETE \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  'https://<your-host>/api/observe/oncall/contacts/<id>'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "deleted": false,
  "id": null
}

GET/api/observe/oncall/contacts/{id}

audit access

Fetch one contact.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/oncall/contacts/{id}

Path parameters

NameTypeRequirementDescription
idstringRequiredIdentifier of the target resource in the request path.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
contactJSON valueRequiredValue of contact returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/oncall/contacts/<id>'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "contact": null
}

PUT/api/observe/oncall/contacts/{id}

execute access

Update a contact's mutable fields.

404 when unknown; 503 when no DB.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

PUT https://<your-host>/api/observe/oncall/contacts/{id}

Path parameters

NameTypeRequirementDescription
idstringRequiredIdentifier of the target resource in the request path.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
Content-TypestringRequiredRequired by the resolved Axum Json<T> request extractor; send application/json.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

JSON structure: OnCallContactUpdateRequest.

NameTypeRequirementDescription
namestringOptionalClient-supplied name for the resource or operation.
rolestringOptionalValue of role in the JSON request body.
sitestringOptionalSite code targeted by the request.
escalation_tierintegerOptionalValue of escalation_tier in the JSON request body.
emailstringOptionalValue of email in the JSON request body.
phonestringOptionalValue of phone in the JSON request body.
enabledbooleanOptionalWhether the requested capability should be enabled.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
contactJSON valueRequiredValue of contact returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request PUT \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '{}' \
  'https://<your-host>/api/observe/oncall/contacts/<id>'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "contact": null
}

GET/api/observe/synthetic-health-check-contract

request access

Observe synthetic health check contract.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/synthetic-health-check-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
checkModestringRequiredValue of checkMode returned in the response body.
dryRunRequiredbooleanRequiredValue of dryRunRequired returned in the response body.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
liveChecksAllowedbooleanRequiredValue of liveChecksAllowed returned in the response body.
externalProbesAllowedbooleanRequiredValue of externalProbesAllowed returned in the response body.
zabbixMutationAllowedbooleanRequiredValue of zabbixMutationAllowed returned in the response body.
rawProbeOutputAllowedbooleanRequiredValue of rawProbeOutputAllowed returned in the response body.
supportedWorkflowsarray<JSON value>RequiredValue of supportedWorkflows returned in the response body.
checkSignalsarray<JSON value>RequiredValue of checkSignals returned in the response body.
requiredInputsarray<JSON value>RequiredValue of requiredInputs returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.
requiredEvidencearray<JSON value>RequiredValue of requiredEvidence returned in the response body.
rulesarray<JSON value>RequiredValue of rules returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/synthetic-health-check-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "checkMode": "<string>",
  "dryRunRequired": false,
  "providerCallsEnabled": false,
  "liveChecksAllowed": false,
  "externalProbesAllowed": false,
  "zabbixMutationAllowed": false,
  "rawProbeOutputAllowed": false,
  "supportedWorkflows": [],
  "checkSignals": [],
  "requiredInputs": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": [],
  "requiredEvidence": [],
  "rules": []
}

GET/api/observe/synthetic/dashboard

audit access

Synthetic dashboard.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/synthetic/dashboard

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringOptionalSite identifier used to scope or filter the operation.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/synthetic/dashboard'

GET/api/observe/synthetic/outages

audit access

Synthetic outages.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/synthetic/outages

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringOptionalSite identifier used to scope or filter the operation.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/synthetic/outages'

POST/api/observe/synthetic/run-all

execute access

Synthetic run all.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/synthetic/run-all

Path parameters

This operation has no path parameters.

Query parameters

NameTypeRequirementDescription
sitestringOptionalSite identifier used to scope or filter the operation.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  'https://<your-host>/api/observe/synthetic/run-all'

POST/api/observe/synthetic/run/{check_id}

execute access

Synthetic run check.

Permissions

Access classCredentialScoping
executeAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

POST https://<your-host>/api/observe/synthetic/run/{check_id}

Path parameters

NameTypeRequirementDescription
check_idstringRequiredIdentifier of the target resource in the request path.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
Idempotency-KeystringOptionalOptional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  'https://<your-host>/api/observe/synthetic/run/<check_id>'

GET/api/observe/synthetic/status/{check_id}

audit access

Synthetic status.

Permissions

Access classCredentialScoping
auditAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/synthetic/status/{check_id}

Path parameters

NameTypeRequirementDescription
check_idstringRequiredIdentifier of the target resource in the request path.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/synthetic/status/<check_id>'

GET/api/observe/zabbix-drift-remediation-contract

request access

Observe zabbix drift.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/zabbix-drift-remediation-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
signalsarray<JSON value>RequiredValue of signals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/zabbix-drift-remediation-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "workflows": [],
  "signals": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": []
}

GET/api/observe/zabbix-onboarding-contract

request access

Observe zabbix onboarding.

Permissions

Access classCredentialScoping
requestAn authenticated session or API bearer token is required.The access class is enforced first; site and environment scopes narrow resources on scoped operations.

HTTP request

GET https://<your-host>/api/observe/zabbix-onboarding-contract

Path parameters

This operation has no path parameters.

Query parameters

This operation has no query parameters.

Request headers

NameTypeRequirementDescription
AuthorizationstringOptionalHuman credential alternative: supply one Bearer rys_... session token, ryk_... API token, or validated identity-provider JWT here. Do not combine it with X-Ryuki-Session-Id or the session cookie; conflicting carriers fail closed.
X-Ryuki-Session-IdstringOptionalOpaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request.
traceparentstringOptionalOptional correlation input. When the second dash-separated segment has 32 characters, Ryuki reuses it as the request correlation identifier; this is not full W3C validation.

Request body

This operation does not accept a request body.

Response

StatusDescriptionBody
200OKValue

200 response body

Structure: Value.

NameTypeRequirementDescription
sourcestringRequiredOrigin or authority of the returned data.
providerCallsEnabledbooleanRequiredValue of providerCallsEnabled returned in the response body.
workflowsarray<JSON value>RequiredValue of workflows returned in the response body.
signalsarray<JSON value>RequiredValue of signals returned in the response body.
requiredGuardsarray<JSON value>RequiredValue of requiredGuards returned in the response body.
planSectionsarray<JSON value>RequiredValue of planSections returned in the response body.
blockedReasonsarray<JSON value>RequiredValue of blockedReasons returned in the response body.

Errors

JSON failures use one of the platform error envelopes and include the request correlation metadata when routing reaches the API middleware. See Errors for the exact shapes, authentication failures, retry guidance, and transport-level exceptions.

Examples

Request

curl --silent --show-error --globoff \
  --request GET \
  --header 'Authorization: Bearer <token>' \
  'https://<your-host>/api/observe/zabbix-onboarding-contract'

Schematic response body

Illustrative shape generated from the extracted field types, not a recorded live response. Values are placeholders; null marks a field whose type could not be resolved.

Success status: 200

{
  "source": "<string>",
  "providerCallsEnabled": false,
  "workflows": [],
  "signals": [],
  "requiredGuards": [],
  "planSections": [],
  "blockedReasons": []
}
Last updated 2026-07-16 · Generated from the API route registrations.