Requests API
The governed request lifecycle: create and track requests, validate, plan, approve or reject, execute, verify, cancel, and batch equivalents, with per-request audit trails, approval ledgers, and evidence packs.
34 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/requests
request access
Returns a backward-compatible bare request-summary array.
include_total defaults to false; when true, X-Total-Count is returned if the tightly budgeted capped aggregate completes, otherwise X-Total-Count-Unavailable: true is returned. X-Total-Count-Capped: true marks the navigation ceiling. X-Next-Cursor is emitted only when another deterministic (created_at, id) page exists.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests
Path parameters
This operation has no path parameters.
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
limit | integer | Optional | Maximum number of results requested. |
offset | integer | Optional | Number of results to skip before returning the page. |
include_total | boolean | Optional | Exact/capped totals are an explicit compatibility opt-in. When omitted or false, no count query runs and no total-count headers are returned. |
cursor | string | Optional | Opaque continuation for deterministic (created_at, id) traversal.
Numeric offset remains available inside its bounded compatibility window. |
status | string | Optional | Value supplied for the status query parameter. |
site | string | Optional | Site identifier used to scope or filter the operation. |
environment | string | Optional | Environment identifier used to scope or filter the operation. |
request_type | string | Optional | Value supplied for the request_type query parameter. |
created_by | string | Optional | Value supplied for the created_by query parameter. |
q | string | Optional | Case-insensitive substring on the request name. |
sort | string | Optional | Field or expression used to order results. |
direction | string | Optional | Direction used to order results. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
For 200, the known response body type is Value. Its field schema is unavailable, so no JSON shape is inferred.
200 response headers
| Name | Type | Requirement | Description |
|---|---|---|---|
X-Total-Count | integer | Optional | Filtered, capped total; present only when include_total=true and the aggregate finishes within its statement budget. |
X-Total-Count-Capped | boolean | Optional | True when X-Total-Count reached the supported request-list navigation ceiling. |
X-Total-Count-Unavailable | boolean | Optional | True when include_total=true but the optional aggregate exceeded its statement budget; the bounded page is still returned. |
X-Next-Cursor | string | Optional | Opaque continuation emitted only when another deterministic request-list page exists. |
Returns a bare JSON array; include_total defaults to false, so total-count headers are conditional, and X-Next-Cursor is emitted only when another deterministic page exists.
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/requests'
POST/api/requests
request access
Create requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: CreateRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
request_type | string | Required | Value of request_type in the JSON request body. |
site | string | Required | Site code targeted by the request. |
environment | string | Required | Environment targeted by the request. |
name | string | Required | Client-supplied name for the resource or operation. |
cpu | integer | Optional | Value of cpu in the JSON request body. |
memory_gb | integer | Optional | Value of memory_gb in the JSON request body. |
justification | string | Required | Value of justification in the JSON request body. |
fields | object<string, string> | Optional | Value of fields in the JSON request body. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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 '{"request_type":"<string>","site":"<string>","environment":"<string>","name":"<string>","justification":"<string>"}' \
'https://<your-host>/api/requests'
POST/api/requests/batch/approve
approve access
Record THIS approver's sign-off on up to 100 requests in one call (#17, final slice).
Each id goes through the SAME approve_one quorum/SoD core as a single approve, so a batch CANNOT bypass the multi-role quorum: a required_approval_roles > 1 request gets this approver's ONE decision and stays Planned (quorum_met=false) until N distinct roles + approvers approve. Items are independent; partial success is normal; HTTP 200 always (clients MUST inspect each result's ok/quorum_met). Duplicate ids are deduped.
approve is a FLAT capability, checked ONCE up front: a caller lacking it gets a single 403 for the WHOLE batch, audited EXACTLY ONCE with the non-id "batch" sentinel. check_sod (approver != creator) stays the PER-ITEM gate inside approve_one, so approving a request you created fails only that id.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
approve | An 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/requests/batch/approve
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: BatchApproveRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
ids | array<string> | Required | Value of ids in the JSON request body. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
results | JSON value | Required | Results returned by this operation. |
succeeded | JSON value | Required | Value of succeeded returned in the response body. |
failed | JSON value | Required | Value of failed returned in the response body. |
approved | JSON value | Required | Value of approved 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 '{"ids":[]}' \
'https://<your-host>/api/requests/batch/approve'
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
{
"results": null,
"succeeded": null,
"failed": null,
"approved": null
}
POST/api/requests/batch/cancel
request access
Cancel up to 100 requests in one call (#17).
Each id is cancelled INDEPENDENTLY through the same cancel_one core (so the SoD rule and the per-item transaction are identical to a single cancel); partial success is normal and the response reports a per-id outcome. Items are NOT atomic with each other — a failure on one does not roll back the rest. NOTE: even an all-failed batch returns HTTP 200; clients MUST inspect failed/results. Duplicate ids are deduped (each request is acted on once).
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/batch/cancel
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: BatchCancelRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
ids | array<string> | Required | Value of ids in the JSON request body. |
reason | string | Required | Human-readable reason recorded with the operation and its audit trail. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
results | JSON value | Required | Results returned by this operation. |
succeeded | JSON value | Required | Value of succeeded returned in the response body. |
failed | JSON value | Required | Value of failed 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 '{"ids":[],"reason":"<string>"}' \
'https://<your-host>/api/requests/batch/cancel'
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
{
"results": null,
"succeeded": null,
"failed": null
}
POST/api/requests/batch/fail
execute access
Terminally fail up to 100 requests in one call (#17, slice 3).
Each id is failed INDEPENDENTLY through the same fail_one core (so the scope rule, the per-item transaction, AND the fails-at-its-current-stage behavior are identical to a single fail); partial success is normal and the response reports a per-id outcome. Items are NOT atomic with each other. Even an all-failed batch returns HTTP 200; clients MUST inspect failed/results. Duplicate ids are deduped.
execute is a FLAT capability, checked ONCE up front: a caller lacking it gets a single 403 for the WHOLE batch, audited EXACTLY ONCE with a non-id "batch" sentinel.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/batch/fail
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: BatchFailRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
ids | array<string> | Required | Value of ids in the JSON request body. |
reason | string | Required | Human-readable reason recorded with the operation and its audit trail. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
results | JSON value | Required | Results returned by this operation. |
succeeded | JSON value | Required | Value of succeeded returned in the response body. |
failed | JSON value | Required | Value of failed 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 '{"ids":[],"reason":"<string>"}' \
'https://<your-host>/api/requests/batch/fail'
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
{
"results": null,
"succeeded": null,
"failed": null
}
POST/api/requests/batch/reject
approve access
Reject up to 100 requests in one call (#17, slice 2).
Each id is rejected INDEPENDENTLY through the same reject_one core (so the scope/SoD rule and the per-item transaction are identical to a single reject); partial success is normal and the response reports a per-id outcome. Items are NOT atomic with each other — a failure on one does not roll back the rest. NOTE: even an all-failed batch returns HTTP 200; clients MUST inspect failed/results. Duplicate ids are deduped (each request is acted on once).
The approve capability is a FLAT capability, so it is checked ONCE up front: a caller lacking it gets a single 403 for the WHOLE batch (never per-item), audited EXACTLY ONCE with a non-id sentinel — looping the ids would be wasteful and risk an existence oracle on a denied caller. check_sod (creator != approver) remains the per-item gate inside reject_one.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
approve | An 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/requests/batch/reject
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: BatchRejectRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
ids | array<string> | Required | Value of ids in the JSON request body. |
reason | string | Required | Human-readable reason recorded with the operation and its audit trail. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
results | JSON value | Required | Results returned by this operation. |
succeeded | JSON value | Required | Value of succeeded returned in the response body. |
failed | JSON value | Required | Value of failed 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 '{"ids":[],"reason":"<string>"}' \
'https://<your-host>/api/requests/batch/reject'
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
{
"results": null,
"succeeded": null,
"failed": null
}
POST/api/requests/batch/rework
approve access
Send up to 100 requests back to Intake in one call (#17, slice 3).
Each id is reworked INDEPENDENTLY through the same rework_one core (so the scope rule and per-item transaction are identical to a single rework); partial success is normal and the response reports a per-id outcome. Items are NOT atomic with each other. Even an all-failed batch returns HTTP 200; clients MUST inspect failed/results. Duplicate ids are deduped.
approve is a FLAT capability, checked ONCE up front: a caller lacking it gets a single 403 for the WHOLE batch, audited EXACTLY ONCE with a non-id "batch" sentinel (looping the ids would be wasteful and risk an existence oracle on a denied caller). rework has no SoD gate (matching the single handler).
Permissions
| Access class | Credential | Scoping |
|---|---|---|
approve | An 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/requests/batch/rework
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: BatchReworkRequest.
| Name | Type | Requirement | Description |
|---|---|---|---|
ids | array<string> | Required | Value of ids in the JSON request body. |
reason | string | Required | Human-readable reason recorded with the operation and its audit trail. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
results | JSON value | Required | Results returned by this operation. |
succeeded | JSON value | Required | Value of succeeded returned in the response body. |
failed | JSON value | Required | Value of failed 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 '{"ids":[],"reason":"<string>"}' \
'https://<your-host>/api/requests/batch/rework'
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
{
"results": null,
"succeeded": null,
"failed": null
}
GET/api/requests/execution-timeline-contract
request access
Requests execution timeline.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/execution-timeline-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
requestTimelineMode | string | Required | Value of requestTimelineMode returned in the response body. |
timelineReadOnly | boolean | Required | Value of timelineReadOnly returned in the response body. |
evidenceReferencesReadOnly | boolean | Required | Value of evidenceReferencesReadOnly returned in the response body. |
operationLinksReadOnly | boolean | Required | Value of operationLinksReadOnly returned in the response body. |
liveRequestQueryAllowed | boolean | Required | Value of liveRequestQueryAllowed returned in the response body. |
requestMutationAllowed | boolean | Required | Value of requestMutationAllowed returned in the response body. |
workflowMutationAllowed | boolean | Required | Value of workflowMutationAllowed returned in the response body. |
operationMutationAllowed | boolean | Required | Value of operationMutationAllowed returned in the response body. |
providerCallsAllowed | boolean | Required | Value of providerCallsAllowed returned in the response body. |
notificationDispatchAllowed | boolean | Required | Value of notificationDispatchAllowed returned in the response body. |
rawRequestPayloadsAllowed | boolean | Required | Value of rawRequestPayloadsAllowed returned in the response body. |
rawTimelineRowsAllowed | boolean | Required | Value of rawTimelineRowsAllowed returned in the response body. |
rawApprovalDataAllowed | boolean | Required | Value of rawApprovalDataAllowed returned in the response body. |
rawOperationRowsAllowed | boolean | Required | Value of rawOperationRowsAllowed returned in the response body. |
rawEvidencePayloadsAllowed | boolean | Required | Value of rawEvidencePayloadsAllowed returned in the response body. |
rawProviderPayloadsAllowed | boolean | Required | Value of rawProviderPayloadsAllowed returned in the response body. |
rawLogContentAllowed | boolean | Required | Value of rawLogContentAllowed returned in the response body. |
rawRecipientDataAllowed | boolean | Required | Value of rawRecipientDataAllowed returned in the response body. |
credentialValuesAllowed | boolean | Required | Value of credentialValuesAllowed returned in the response body. |
tokenValuesAllowed | boolean | Required | Value of tokenValuesAllowed returned in the response body. |
tenantIdentifiersAllowed | boolean | Required | Value of tenantIdentifiersAllowed returned in the response body. |
objectIdentifiersAllowed | boolean | Required | Value of objectIdentifiersAllowed returned in the response body. |
principalIdentifiersAllowed | boolean | Required | Value of principalIdentifiersAllowed returned in the response body. |
privateNetworkValuesAllowed | boolean | Required | Value of privateNetworkValuesAllowed returned in the response body. |
timelineStages | JSON value | Required | Value of timelineStages returned in the response body. |
timelineEventTypes | JSON value | Required | Value of timelineEventTypes returned in the response body. |
evidenceStates | JSON value | Required | Value of evidenceStates returned in the response body. |
timelineViews | JSON value | Required | Value of timelineViews returned in the response body. |
requiredGuards | JSON value | Required | Value of requiredGuards returned in the response body. |
blockedReasons | JSON value | Required | Value of blockedReasons returned in the response body. |
requiredEvidence | array<JSON value> | Required | Value of requiredEvidence returned in the response body. |
rules | array<JSON value> | Required | Value 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/requests/execution-timeline-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>",
"requestTimelineMode": "<string>",
"timelineReadOnly": false,
"evidenceReferencesReadOnly": false,
"operationLinksReadOnly": false,
"liveRequestQueryAllowed": false,
"requestMutationAllowed": false,
"workflowMutationAllowed": false,
"operationMutationAllowed": false,
"providerCallsAllowed": false,
"notificationDispatchAllowed": false,
"rawRequestPayloadsAllowed": false,
"rawTimelineRowsAllowed": false,
"rawApprovalDataAllowed": false,
"rawOperationRowsAllowed": false,
"rawEvidencePayloadsAllowed": false,
"rawProviderPayloadsAllowed": false,
"rawLogContentAllowed": false,
"rawRecipientDataAllowed": false,
"credentialValuesAllowed": false,
"tokenValuesAllowed": false,
"tenantIdentifiersAllowed": false,
"objectIdentifiersAllowed": false,
"principalIdentifiersAllowed": false,
"privateNetworkValuesAllowed": false,
"timelineStages": null,
"timelineEventTypes": null,
"evidenceStates": null,
"timelineViews": null,
"requiredGuards": null,
"blockedReasons": null,
"requiredEvidence": [],
"rules": []
}
GET/api/requests/intake-form
request access
Requests intake form.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/intake-form
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
title | string | Required | Value of title returned in the response body. |
description | string | Required | Value of description returned in the response body. |
source | string | Required | Origin or authority of the returned data. |
formMode | string | Required | Value of formMode returned in the response body. |
formSubmissionAllowed | boolean | Required | Value of formSubmissionAllowed returned in the response body. |
liveRequestCreationAllowed | boolean | Required | Value of liveRequestCreationAllowed returned in the response body. |
inputKinds | array<JSON value> | Required | Value of inputKinds returned in the response body. |
fields | array<JSON value> | Required | Value of fields returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
requiredEvidence | array<JSON value> | Required | Value of requiredEvidence 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/requests/intake-form'
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
{
"title": "<string>",
"description": "<string>",
"source": "<string>",
"formMode": "<string>",
"formSubmissionAllowed": false,
"liveRequestCreationAllowed": false,
"inputKinds": [],
"fields": [],
"blockedReasons": [],
"requiredEvidence": []
}
GET/api/requests/intake-support-contract
request access
Requests intake support.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/intake-support-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
intakeSupportMode | string | Required | Value of intakeSupportMode returned in the response body. |
templateCatalogReadOnly | boolean | Required | Value of templateCatalogReadOnly returned in the response body. |
duplicateDetectionDryRunOnly | boolean | Required | Value of duplicateDetectionDryRunOnly returned in the response body. |
draftStateReadOnly | boolean | Required | Value of draftStateReadOnly returned in the response body. |
liveSubmissionAllowed | boolean | Required | Value of liveSubmissionAllowed returned in the response body. |
draftPersistenceAllowed | boolean | Required | Value of draftPersistenceAllowed returned in the response body. |
duplicateQueryAllowed | boolean | Required | Value of duplicateQueryAllowed returned in the response body. |
workflowMutationAllowed | boolean | Required | Value of workflowMutationAllowed returned in the response body. |
approvalMutationAllowed | boolean | Required | Value of approvalMutationAllowed returned in the response body. |
providerCallsAllowed | boolean | Required | Value of providerCallsAllowed returned in the response body. |
rawRequestPayloadsAllowed | boolean | Required | Value of rawRequestPayloadsAllowed returned in the response body. |
rawDraftPayloadsAllowed | boolean | Required | Value of rawDraftPayloadsAllowed returned in the response body. |
rawDuplicateRowsAllowed | boolean | Required | Value of rawDuplicateRowsAllowed returned in the response body. |
rawProviderPayloadsAllowed | boolean | Required | Value of rawProviderPayloadsAllowed returned in the response body. |
rawLogContentAllowed | boolean | Required | Value of rawLogContentAllowed returned in the response body. |
rawRowsAllowed | boolean | Required | Value of rawRowsAllowed returned in the response body. |
rawRecipientDataAllowed | boolean | Required | Value of rawRecipientDataAllowed returned in the response body. |
credentialValuesAllowed | boolean | Required | Value of credentialValuesAllowed returned in the response body. |
tenantIdentifiersAllowed | boolean | Required | Value of tenantIdentifiersAllowed returned in the response body. |
objectIdentifiersAllowed | boolean | Required | Value of objectIdentifiersAllowed returned in the response body. |
privateNetworkValuesAllowed | boolean | Required | Value of privateNetworkValuesAllowed returned in the response body. |
supportSurfaces | array<JSON value> | Required | Value of supportSurfaces returned in the response body. |
templateTypes | array<JSON value> | Required | Value of templateTypes returned in the response body. |
duplicateSignals | array<JSON value> | Required | Value of duplicateSignals returned in the response body. |
draftStates | array<JSON value> | Required | Value of draftStates returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
requiredEvidence | array<JSON value> | Required | Value of requiredEvidence returned in the response body. |
rules | array<JSON value> | Required | Value 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/requests/intake-support-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>",
"intakeSupportMode": "<string>",
"templateCatalogReadOnly": false,
"duplicateDetectionDryRunOnly": false,
"draftStateReadOnly": false,
"liveSubmissionAllowed": false,
"draftPersistenceAllowed": false,
"duplicateQueryAllowed": false,
"workflowMutationAllowed": false,
"approvalMutationAllowed": false,
"providerCallsAllowed": false,
"rawRequestPayloadsAllowed": false,
"rawDraftPayloadsAllowed": false,
"rawDuplicateRowsAllowed": false,
"rawProviderPayloadsAllowed": false,
"rawLogContentAllowed": false,
"rawRowsAllowed": false,
"rawRecipientDataAllowed": false,
"credentialValuesAllowed": false,
"tenantIdentifiersAllowed": false,
"objectIdentifiersAllowed": false,
"privateNetworkValuesAllowed": false,
"supportSurfaces": [],
"templateTypes": [],
"duplicateSignals": [],
"draftStates": [],
"requiredGuards": [],
"blockedReasons": [],
"requiredEvidence": [],
"rules": []
}
GET/api/requests/lifecycle-contract
request access
Requests lifecycle.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/lifecycle-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
lifecycleMode | string | Required | Value of lifecycleMode returned in the response body. |
dryRunRequired | boolean | Required | Value of dryRunRequired returned in the response body. |
approvalRequired | boolean | Required | Value of approvalRequired returned in the response body. |
lockRequired | boolean | Required | Value of lockRequired returned in the response body. |
redactedEvidenceRequired | boolean | Required | Value of redactedEvidenceRequired returned in the response body. |
liveExecutionAllowed | boolean | Required | Value of liveExecutionAllowed returned in the response body. |
providerCallsAllowed | boolean | Required | Value of providerCallsAllowed returned in the response body. |
workflowMutationAllowed | boolean | Required | Value of workflowMutationAllowed returned in the response body. |
approvalMutationAllowed | boolean | Required | Value of approvalMutationAllowed returned in the response body. |
lockMutationAllowed | boolean | Required | Value of lockMutationAllowed returned in the response body. |
rawRequestPayloadsAllowed | boolean | Required | Value of rawRequestPayloadsAllowed returned in the response body. |
rawExecutionLogsAllowed | boolean | Required | Value of rawExecutionLogsAllowed returned in the response body. |
rawEvidencePayloadsAllowed | boolean | Required | Value of rawEvidencePayloadsAllowed returned in the response body. |
rawProviderPayloadsAllowed | boolean | Required | Value of rawProviderPayloadsAllowed returned in the response body. |
credentialValuesAllowed | boolean | Required | Value of credentialValuesAllowed returned in the response body. |
secretValuesAllowed | boolean | Required | Value of secretValuesAllowed returned in the response body. |
accessTokenValuesAllowed | boolean | Required | Value of accessTokenValuesAllowed returned in the response body. |
rawRecipientDataAllowed | boolean | Required | Value of rawRecipientDataAllowed returned in the response body. |
lifecycleStages | JSON value | Required | Value of lifecycleStages returned in the response body. |
requiredInputs | array<JSON value> | Required | Value of requiredInputs returned in the response body. |
requiredGuards | JSON value | Required | Value of requiredGuards returned in the response body. |
planSections | JSON value | Required | Value of planSections returned in the response body. |
blockedReasons | JSON value | Required | Value of blockedReasons returned in the response body. |
requiredEvidence | array<JSON value> | Required | Value of requiredEvidence returned in the response body. |
rules | array<JSON value> | Required | Value 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/requests/lifecycle-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>",
"lifecycleMode": "<string>",
"dryRunRequired": false,
"approvalRequired": false,
"lockRequired": false,
"redactedEvidenceRequired": false,
"liveExecutionAllowed": false,
"providerCallsAllowed": false,
"workflowMutationAllowed": false,
"approvalMutationAllowed": false,
"lockMutationAllowed": false,
"rawRequestPayloadsAllowed": false,
"rawExecutionLogsAllowed": false,
"rawEvidencePayloadsAllowed": false,
"rawProviderPayloadsAllowed": false,
"credentialValuesAllowed": false,
"secretValuesAllowed": false,
"accessTokenValuesAllowed": false,
"rawRecipientDataAllowed": false,
"lifecycleStages": null,
"requiredInputs": [],
"requiredGuards": null,
"planSections": null,
"blockedReasons": null,
"requiredEvidence": [],
"rules": []
}
GET/api/requests/preflight-contract
request access
Requests preflight.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/preflight-contract
Path parameters
This operation has no path parameters.
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
preflightMode | string | Required | Value of preflightMode returned in the response body. |
inputSchemaReadOnly | boolean | Required | Value of inputSchemaReadOnly returned in the response body. |
dryRunDecisionRequired | boolean | Required | Value of dryRunDecisionRequired returned in the response body. |
evidenceRedactionRequired | boolean | Required | Value of evidenceRedactionRequired returned in the response body. |
liveSubmissionAllowed | boolean | Required | Value of liveSubmissionAllowed returned in the response body. |
liveExecutionAllowed | boolean | Required | Value of liveExecutionAllowed returned in the response body. |
providerCallsAllowed | boolean | Required | Value of providerCallsAllowed returned in the response body. |
providerValidationAllowed | boolean | Required | Value of providerValidationAllowed returned in the response body. |
livePolicyEvaluationAllowed | boolean | Required | Value of livePolicyEvaluationAllowed returned in the response body. |
requestMutationAllowed | boolean | Required | Value of requestMutationAllowed returned in the response body. |
workflowMutationAllowed | boolean | Required | Value of workflowMutationAllowed returned in the response body. |
approvalMutationAllowed | boolean | Required | Value of approvalMutationAllowed returned in the response body. |
workerDispatchAllowed | boolean | Required | Value of workerDispatchAllowed returned in the response body. |
rawRequestPayloadsAllowed | boolean | Required | Value of rawRequestPayloadsAllowed returned in the response body. |
rawValidationRowsAllowed | boolean | Required | Value of rawValidationRowsAllowed returned in the response body. |
rawProviderPayloadsAllowed | boolean | Required | Value of rawProviderPayloadsAllowed returned in the response body. |
rawInventoryRowsAllowed | boolean | Required | Value of rawInventoryRowsAllowed returned in the response body. |
rawCmdbRowsAllowed | boolean | Required | Value of rawCmdbRowsAllowed returned in the response body. |
rawApprovalDataAllowed | boolean | Required | Value of rawApprovalDataAllowed returned in the response body. |
rawUserDataAllowed | boolean | Required | Value of rawUserDataAllowed returned in the response body. |
rawRecipientDataAllowed | boolean | Required | Value of rawRecipientDataAllowed returned in the response body. |
credentialValuesAllowed | boolean | Required | Value of credentialValuesAllowed returned in the response body. |
tokenValuesAllowed | boolean | Required | Value of tokenValuesAllowed returned in the response body. |
tenantIdentifiersAllowed | boolean | Required | Value of tenantIdentifiersAllowed returned in the response body. |
objectIdentifiersAllowed | boolean | Required | Value of objectIdentifiersAllowed returned in the response body. |
principalIdentifiersAllowed | boolean | Required | Value of principalIdentifiersAllowed returned in the response body. |
privateNetworkValuesAllowed | boolean | Required | Value of privateNetworkValuesAllowed returned in the response body. |
hypervisorScope | array<JSON value> | Required | Value of hypervisorScope returned in the response body. |
preflightSurfaces | array<JSON value> | Required | Value of preflightSurfaces returned in the response body. |
validationStages | array<JSON value> | Required | Value of validationStages returned in the response body. |
requiredInputs | array<JSON value> | Required | Value of requiredInputs returned in the response body. |
requiredGuards | array<JSON value> | Required | Value of requiredGuards returned in the response body. |
blockedReasons | array<JSON value> | Required | Value of blockedReasons returned in the response body. |
requiredEvidence | array<JSON value> | Required | Value of requiredEvidence returned in the response body. |
rules | array<JSON value> | Required | Value 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/requests/preflight-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>",
"preflightMode": "<string>",
"inputSchemaReadOnly": false,
"dryRunDecisionRequired": false,
"evidenceRedactionRequired": false,
"liveSubmissionAllowed": false,
"liveExecutionAllowed": false,
"providerCallsAllowed": false,
"providerValidationAllowed": false,
"livePolicyEvaluationAllowed": false,
"requestMutationAllowed": false,
"workflowMutationAllowed": false,
"approvalMutationAllowed": false,
"workerDispatchAllowed": false,
"rawRequestPayloadsAllowed": false,
"rawValidationRowsAllowed": false,
"rawProviderPayloadsAllowed": false,
"rawInventoryRowsAllowed": false,
"rawCmdbRowsAllowed": false,
"rawApprovalDataAllowed": false,
"rawUserDataAllowed": false,
"rawRecipientDataAllowed": false,
"credentialValuesAllowed": false,
"tokenValuesAllowed": false,
"tenantIdentifiersAllowed": false,
"objectIdentifiersAllowed": false,
"principalIdentifiersAllowed": false,
"privateNetworkValuesAllowed": false,
"hypervisorScope": [],
"preflightSurfaces": [],
"validationStages": [],
"requiredInputs": [],
"requiredGuards": [],
"blockedReasons": [],
"requiredEvidence": [],
"rules": []
}
GET/api/requests/{id}
request access
Get requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/{id}
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>'
GET/api/requests/{id}/approval-decisions
audit access
The individual approval-decision LEDGER for one request: every recorded request_approval_decisions row (approval_epoch, current, role, decision, actor, decided_at, reason), including historical cycles that no longer satisfy quorum.
The companion to requests_approval_quorum: quorum = the verdict, this = the records behind it.
Audit-tier — same identity-grade sensitivity as the quorum endpoint and the audit trail. NOT approve-tier: every approve-holding role (DatacenterApprover, PlatformAdmin) ALSO holds audit, and gating on approve would wrongly exclude the audit-only Auditor from an audit ledger. actor is already exposed by the quorum endpoint's approvers list; reason is the approver's free-text reject justification — treat it as AUDIT-VISIBLE free text (any secret/PII redaction is a write-side concern, out of scope for this read). 404 for an unknown OR out-of-scope request (no oracle). Empty ledger + durable:false with no DB (the dry-run approve arm writes no ledger), distinct from a durable-but-empty {decisions:[],durable:true}.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An 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/requests/{id}/approval-decisions
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
decisions | JSON value | Required | Value of decisions returned in the response body. |
current_approval_epoch | JSON value | Required | Value of current_approval_epoch returned in the response body. |
durable | boolean | Required | Value of durable 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/requests/<id>/approval-decisions'
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
{
"decisions": null,
"current_approval_epoch": null,
"durable": false
}
GET/api/requests/{id}/approval-quorum
audit access
Multi-role approval quorum status for one request (#4).
Reads the recorded request_approval_decisions and reports whether they meet a breadth quorum: distinct approving ROLES and distinct APPROVERS (default 2/2, bounded 1..=10), with any rejection blocking it. Audit-tier (approval identities, like the audit trail). 404 unknown request. READ-ONLY: reports the same current-epoch quorum enforced by the approval flow. Empty + durable:false with no DB.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An 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/requests/{id}/approval-quorum
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
required_roles | integer | Optional | Value supplied for the required_roles query parameter. |
required_approvers | integer | Optional | Value supplied for the required_approvers query parameter. |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/approval-quorum'
POST/api/requests/{id}/approve
approve access
Approve requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
approve | An 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/requests/{id}/approve
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/approve'
POST/api/requests/{id}/approve-live-apply
admin access
Admin approves the completed LivePlan for this request and mints a CP-signed LiveApply grant (AWX bridge slice 5c).
It revalidates and reconstructs the mutation from the exact immutable plan row/attempt/digest the administrator reviewed; it never accepts a caller-built spec or destination. The agent then independently verifies the signed grant. Admin-gated and mutation-authorizing — fail closed.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
admin | An 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/requests/{id}/approve-live-apply
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: ReviewedLivePlanSelection.
| Name | Type | Requirement | Description |
|---|---|---|---|
approved_plan_job_id | string (uuid) | Required | Value of approved_plan_job_id in the JSON request body. |
approved_plan_attempt_id | string (uuid) | Required | Value of approved_plan_attempt_id in the JSON request body. |
approved_plan_digest | string | Required | Value of approved_plan_digest in the JSON request body. |
Response
| Status | Description | Body |
|---|---|---|
200 | Mints and queues the request-scoped LiveApply job. | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
job_id | string (uuid) | Required | Identifier of the queued LiveApply agent job. |
approver | string | Required | Verified interactive principal that approved the live apply. |
status | string | Required | Initial job status; Pending on success. |
mode | string | Required | Execution mode; LiveApply on success. |
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 '{"approved_plan_job_id":"<uuid>","approved_plan_attempt_id":"<uuid>","approved_plan_digest":"<string>"}' \
'https://<your-host>/api/requests/<id>/approve-live-apply'
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
{
"job_id": "<uuid>",
"approver": "<string>",
"status": "<string>",
"mode": "<string>"
}
GET/api/requests/{id}/audit
audit access
The ordered, actor-attributed audit trail for one request.
DB-backed entries are tagged durable: true; the no-DB (dry-run) store is tagged durable: false. No secrets are ever written to the trail, so this read is safe to expose.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An 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/requests/{id}/audit
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/audit'
POST/api/requests/{id}/cancel
request access
Withdraw a request before execution begins.
SoD: an admin may cancel any request; a requester may cancel only their OWN request (matched against requests.created_by). The central route gate applies a coarse request floor; this handler enforces the finer requester-or-admin rule because the route table cannot see created_by.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/{id}/cancel
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: ReasonBody.
| Name | Type | Requirement | Description |
|---|---|---|---|
reason | string | Required | Mandatory human reason recorded in lifecycle evidence and the audit trail. Per-operation validation and length limits apply. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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 '{"reason":"<string>"}' \
'https://<your-host>/api/requests/<id>/cancel'
GET/api/requests/{id}/evidence
audit access
A tamper-evident compliance evidence pack for ONE persisted request: the redacted evidence pack (from the pure engine pipeline, built off the REAL persisted request state) plus the durable, actor-attributed audit trail, sealed with a SHA-256 digest over the stable content.
The digest deliberately excludes generated_at, so re-exporting an unchanged request yields the SAME digest (tamper-evidence). Gated on the audit tier — the same identity-grade sensitivity as the audit trail.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
audit | An 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/requests/{id}/evidence
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
request_id | JSON value | Required | Request correlation or lifecycle identifier. |
generated_at | JSON value | Required | Value of generated_at returned in the response body. |
algorithm | string | Required | Value of algorithm returned in the response body. |
digest | JSON value | Required | Value of digest returned in the response body. |
durable | JSON value | Required | Value of durable returned in the response body. |
item_count | JSON value | Required | Value of item_count returned in the response body. |
redacted | JSON value | Required | Value of redacted returned in the response body. |
content | JSON value | Required | Value of content 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/requests/<id>/evidence'
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
{
"request_id": null,
"generated_at": null,
"algorithm": "<string>",
"digest": null,
"durable": null,
"item_count": null,
"redacted": null,
"content": null
}
POST/api/requests/{id}/execute
execute access
Execute requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/execute
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
mode | string | Optional | Requested execution mode: omitted / "offline-dry-run" / "dry-run" (default), "live-plan" (privileged), or "live-apply" (rejected here — requires a CP-signed approval grant). |
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/execute'
GET/api/requests/{id}/execution-job
request access
The execution-agent job dispatched for this request (AWX bridge slice 3).
Read-only AWX-style "job" view: which agent ran it, the mode (dry-run/live), job + result status, the evidence digest, and timestamps. The full (sanitized) evidence lives on the request's stages via GET /api/requests/{id}; this surfaces the job itself. 404 when no job has been dispatched (e.g. request not yet executed).
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/{id}/execution-job
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
request_id | JSON value | Required | Request correlation or lifecycle identifier. |
agent_job_id | JSON value | Required | Value of agent_job_id returned in the response body. |
mode | JSON value | Required | Value of mode returned in the response body. |
status | JSON value | Required | Current operation or resource status. |
result_status | JSON value | Required | Value of result_status returned in the response body. |
evidence_digest | JSON value | Required | Value of evidence_digest returned in the response body. |
verification_ready | JSON value | Required | Value of verification_ready returned in the response body. |
created_at | JSON value | Required | RFC 3339 timestamp when the resource was created. |
completed_at | JSON value | Required | Value of completed_at returned in the response body. |
source | string | Required | Origin or authority of the returned data. |
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/requests/<id>/execution-job'
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
{
"request_id": null,
"agent_job_id": null,
"mode": null,
"status": null,
"result_status": null,
"evidence_digest": null,
"verification_ready": null,
"created_at": null,
"completed_at": null,
"source": "<string>"
}
POST/api/requests/{id}/fail
execute access
Mark a request terminally Failed (e.g. an execution or verification failure).
mark a request terminally Failed (e.g. an execution or verification failure). Execute-tier; requires a reason. Valid from any non-concluded state.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/fail
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: ReasonBody.
| Name | Type | Requirement | Description |
|---|---|---|---|
reason | string | Required | Mandatory human reason recorded in lifecycle evidence and the audit trail. Per-operation validation and length limits apply. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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 '{"reason":"<string>"}' \
'https://<your-host>/api/requests/<id>/fail'
POST/api/requests/{id}/lock
execute access
Lock requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/lock
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/lock'
POST/api/requests/{id}/plan
execute access
Plan requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/plan
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/plan'
GET/api/requests/{id}/policy-eval
request access
Evaluate the request's policy readiness against the guardrail catalog.
Informational (a read): it reports which guardrail rules' required inputs are satisfied; it does NOT gate the lifecycle. Degrades to 404 when the request is unknown.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
request | An 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/requests/{id}/policy-eval
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
200 response body
Structure: Value.
| Name | Type | Requirement | Description |
|---|---|---|---|
source | string | Required | Origin or authority of the returned data. |
request_id | JSON value | Required | Request correlation or lifecycle identifier. |
workflow_id | JSON value | Required | Value of workflow_id returned in the response body. |
applicable | JSON value | Required | Value of applicable returned in the response body. |
ready | JSON value | Required | Value of ready returned in the response body. |
blocking_failures | JSON value | Required | Value of blocking_failures returned in the response body. |
decisions | JSON value | Required | Value of decisions 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/requests/<id>/policy-eval'
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>",
"request_id": null,
"workflow_id": null,
"applicable": null,
"ready": null,
"blocking_failures": null,
"decisions": null
}
POST/api/requests/{id}/protect
execute access
The post-completion Protect stage (Theme 8).
Valid only from Completed; computes a dry-run backup-coverage summary for the delivered asset and transitions the request to Protecting. Operator- initiated; execute permission. Mirrors requests_verify (dual-store + CAS).
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/protect
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/protect'
POST/api/requests/{id}/publish
execute access
The post-completion Publish stage (Theme 8).
Valid only from Protecting; imports the CI records and prepares the dry-run CMDB export, then transitions the request to Operational (its resting state). Operator-initiated; execute permission. Mirrors requests_verify.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/publish
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/publish'
POST/api/requests/{id}/reject
approve access
The approver "say no" act.
Valid only from Planned (the approval decision point); guarded by the approve permission (the inverse of approve). The mandatory reason is recorded in the audit trail and the rejection evidence. Terminal.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
approve | An 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/requests/{id}/reject
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: ReasonBody.
| Name | Type | Requirement | Description |
|---|---|---|---|
reason | string | Required | Mandatory human reason recorded in lifecycle evidence and the audit trail. Per-operation validation and length limits apply. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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 '{"reason":"<string>"}' \
'https://<your-host>/api/requests/<id>/reject'
POST/api/requests/{id}/retire
execute access
The governed end-of-life stage (Theme 8).
Valid only from Operational; computes a dry-run decommission plan (quarantine-first, rollback-capable) and transitions the request to Retired (the terminal end-of-life state). Operator-initiated; execute permission. Mirrors requests_verify (dual-store + CAS).
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/retire
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/retire'
POST/api/requests/{id}/rework
approve access
Send a request back to Intake for the requester to fix and re-submit (the non-terminal alternative to reject).
Approve-tier; requires a reason. Valid from Validated/Planned/Approved/Locked.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
approve | An 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/requests/{id}/rework
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: ReasonBody.
| Name | Type | Requirement | Description |
|---|---|---|---|
reason | string | Required | Mandatory human reason recorded in lifecycle evidence and the audit trail. Per-operation validation and length limits apply. |
Response
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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 '{"reason":"<string>"}' \
'https://<your-host>/api/requests/<id>/rework'
POST/api/requests/{id}/steps/{step_key}/approve-live-apply
admin access
.
.
Per-step mutation is intentionally disabled until each AwaitingApproval step has an admin-scoped, digest-bound safe review surface. Permission, parent scope, and separation-of-duties checks remain ahead of the generic 409 so the refusal preserves the route's non-enumeration contract.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
admin | An 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/requests/{id}/steps/{step_key}/approve-live-apply
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
step_key | string | Required | Value of the step_key request-path segment. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Type | string | Required | Required by the resolved Axum Json<T> request extractor; send application/json. |
X-Ryuki-Session-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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: ReviewedLivePlanSelection.
| Name | Type | Requirement | Description |
|---|---|---|---|
approved_plan_job_id | string (uuid) | Required | Value of approved_plan_job_id in the JSON request body. |
approved_plan_attempt_id | string (uuid) | Required | Value of approved_plan_attempt_id in the JSON request body. |
approved_plan_digest | string | Required | Value of approved_plan_digest in the JSON request body. |
Response
No successful response schema was extracted for this operation.
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 '{"approved_plan_job_id":"<uuid>","approved_plan_attempt_id":"<uuid>","approved_plan_digest":"<string>"}' \
'https://<your-host>/api/requests/<id>/steps/<step_key>/approve-live-apply'
POST/api/requests/{id}/validate
execute access
Validate requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/validate
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/validate'
POST/api/requests/{id}/verify
execute access
Verify requests.
Permissions
| Access class | Credential | Scoping |
|---|---|---|
execute | An 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/requests/{id}/verify
Path parameters
| Name | Type | Requirement | Description |
|---|---|---|---|
id | string | Required | Identifier of the target resource in the request path. |
Query parameters
This operation has no query parameters.
Request headers
| Name | Type | Requirement | Description |
|---|---|---|---|
Authorization | string | Optional | Human 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-Id | string | Optional | Opaque rys_... session-token carrier used by the portal for mutations. Administrative session UUIDs cannot authenticate. Supply exactly one credential carrier per request. |
Idempotency-Key | string | Optional | Optional at-most-once retry key for human mutations. When omitted, the idempotency middleware passes the request through without deduplication. |
traceparent | string | Optional | Optional 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
| Status | Description | Body |
|---|---|---|
200 | OK | Value |
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/requests/<id>/verify'