# Strategies and packages

Paths on this page are relative to <code>/api/liquidity-studio/v2</code>. Authentication and required headers vary by operation.

[API reference overview](/api-reference/overview/) · [OpenAPI download](/openapi/liquidity-operating-system-v2.openapi.json)

## Operations on this page

| Method | Path | Operation |
| --- | --- | --- |
| <code>GET</code> | <code>/strategies</code> | [listStrategies](#listStrategies) |
| <code>POST</code> | <code>/strategies</code> | [createStrategies](#createStrategies) |
| <code>GET</code> | <code>/strategies/{id}</code> | [getStrategies](#getStrategies) |
| <code>PATCH</code> | <code>/strategies/{id}</code> | [supersedeStrategies](#supersedeStrategies) |
| <code>GET</code> | <code>/strategy-packages</code> | [listStrategyPackages](#listStrategyPackages) |
| <code>POST</code> | <code>/strategy-packages</code> | [createStrategyPackageCandidate](#createStrategyPackageCandidate) |
| <code>GET</code> | <code>/strategy-packages/{id}</code> | [getStrategyPackages](#getStrategyPackages) |
| <code>POST</code> | <code>/strategies/legacy-wrappers</code> | [wrapLegacyStrategyDefinition](#wrapLegacyStrategyDefinition) |
| <code>POST</code> | <code>/strategies/{id}/proposal-admissions</code> | [admitStrategyProposal](#admitStrategyProposal) |
| <code>GET</code> | <code>/strategies/{id}/evidence</code> | [getStrategyEvidence](#getStrategyEvidence) |
| <code>POST</code> | <code>/strategy-packages/{id}/approve</code> | [approveStrategyPackage](#approveStrategyPackage) |
| <code>POST</code> | <code>/strategy-packages/{id}/seed-strategy</code> | [seedStrategyFromApprovedPackage](#seedStrategyFromApprovedPackage) |
| <code>POST</code> | <code>/strategy-packages/{id}/revoke</code> | [revokeStrategyPackage](#revokeStrategyPackage) |

<a id="listStrategies"></a>

## List strategy definitions

`GET /strategies`

Operation ID: <code>listStrategies</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>) **OR** OAuth bearer token with <code>strategies:validate</code> (<code>serviceCredential</code>)

**Service scope:** <code>strategies:validate</code>. Session access and workspace roles are evaluated separately.

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>cursor</code> | query | No | <code>string</code> | Opaque cursor returned in the previous response metadata. |
| <code>limit</code> | query | No | <code>integer</code> | Default: <code>50</code>; Minimum: <code>1</code>; Maximum: <code>100</code> |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Latest tenant-isolated aggregate versions | <code>application/json</code>: <code>object</code> |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | Array of All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data&#91;&#93;.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |
| <code>meta</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>meta.count</code> | Yes | <code>integer</code> | Minimum: <code>0</code> |
| <code>meta.hasMore</code> | Yes | <code>boolean</code> | — |
| <code>meta.nextCursor</code> | No | <code>string</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="createStrategies"></a>

## Create strategy definitions

`POST /strategies`

Operation ID: <code>createStrategies</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>) **OR** OAuth bearer token with <code>strategies:validate</code> (<code>serviceCredential</code>)

**Service scope:** <code>strategies:validate</code>. Session access and workspace roles are evaluated separately.

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |

### Request body

Required: **yes**.

**<code>application/json</code>**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>payload</code> | Yes | [StrategyDefinitionV2Input](/api-reference/schemas/strategy-definition-v2-input/) | — |
| <code>status</code> | No | [OperatingSystemRecordStatus](/api-reference/schemas/operating-system-record-status/) | — |
| <code>evidenceHashes</code> | No | Array of [Hash](/api-reference/schemas/hash/) | Max items: <code>256</code> |
| <code>reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>201</code> | Append-only aggregate created | <code>application/json</code>: <code>object</code> |

**<code>201</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>data.strategy</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.strategy.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |
| <code>data.compilation</code> | Yes | [StrategyCompilation](/api-reference/schemas/strategy-compilation/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="getStrategies"></a>

## Get one strategy definitions aggregate

`GET /strategies/{id}`

Operation ID: <code>getStrategies</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>) **OR** OAuth bearer token with <code>strategies:validate</code> (<code>serviceCredential</code>)

**Service scope:** <code>strategies:validate</code>. Session access and workspace roles are evaluated separately.

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Current immutable aggregate version | <code>application/json</code>: <code>object</code> |
| <code>404</code> | Not found | No response body declared |

**<code>200</code> response headers**

| Header | Required | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>ETag</code> | Yes | <code>string</code> | — |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="supersedeStrategies"></a>

## Supersede a declarative strategy only after deterministic compilation

`PATCH /strategies/{id}`

Operation ID: <code>supersedeStrategies</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>If-Match</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |

### Request body

Required: **yes**.

**<code>application/json</code>**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>payload</code> | No | [StrategyDefinitionV2Input](/api-reference/schemas/strategy-definition-v2-input/) | — |
| <code>status</code> | No | <code>string</code> | Allowed: <code>DRAFT</code>, <code>VALIDATED</code>, <code>PAUSED</code>, <code>REVOKED</code> |
| <code>evidenceHashes</code> | No | Array of [Hash](/api-reference/schemas/hash/) | Max items: <code>256</code> |
| <code>reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Append-only bounded supersession accepted with deterministic evidence | <code>application/json</code>: <code>object</code> |
| <code>400</code> | Payload or safety transition is outside this bounded operation | No response body declared |
| <code>409</code> | Typed authority workflow is required | No response body declared |
| <code>412</code> | Strong precondition failed | No response body declared |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>data.strategy</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.strategy.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |
| <code>data.compilation</code> | Yes | [StrategyCompilation](/api-reference/schemas/strategy-compilation/) | — |
| <code>data.compilationEvidence</code> | Yes | [OperatingSystemEvent](/api-reference/schemas/operating-system-event/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="listStrategyPackages"></a>

## List curated strategy packages

`GET /strategy-packages`

Operation ID: <code>listStrategyPackages</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>cursor</code> | query | No | <code>string</code> | Opaque cursor returned in the previous response metadata. |
| <code>limit</code> | query | No | <code>integer</code> | Default: <code>50</code>; Minimum: <code>1</code>; Maximum: <code>100</code> |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Latest tenant-isolated aggregate versions | <code>application/json</code>: <code>object</code> |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | Array of All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data&#91;&#93;.allOf&#91;2&#93;.payload</code> | Yes | [StrategyPackage](/api-reference/schemas/strategy-package/) | — |
| <code>meta</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>meta.count</code> | Yes | <code>integer</code> | Minimum: <code>0</code> |
| <code>meta.hasMore</code> | Yes | <code>boolean</code> | — |
| <code>meta.nextCursor</code> | No | <code>string</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="createStrategyPackageCandidate"></a>

## Create an immutable declarative candidate restricted to Digital Twin use

`POST /strategy-packages`

Operation ID: <code>createStrategyPackageCandidate</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |

### Request body

Required: **yes**.

**<code>application/json</code>**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>payload</code> | Yes | [StrategyPackageCandidate](/api-reference/schemas/strategy-package-candidate/) | — |
| <code>evidenceHashes</code> | No | Array of [Hash](/api-reference/schemas/hash/) | Max items: <code>256</code> |
| <code>reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>201</code> | Candidate with server-derived package content hash and no network, signing, or activation surface | <code>application/json</code>: <code>object</code> |

**<code>201</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.allOf&#91;2&#93;.payload</code> | Yes | [StrategyPackage](/api-reference/schemas/strategy-package/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="getStrategyPackages"></a>

## Get one curated strategy packages aggregate

`GET /strategy-packages/{id}`

Operation ID: <code>getStrategyPackages</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Current immutable aggregate version | <code>application/json</code>: <code>object</code> |
| <code>404</code> | Not found | No response body declared |

**<code>200</code> response headers**

| Header | Required | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>ETag</code> | Yes | <code>string</code> | — |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.allOf&#91;2&#93;.payload</code> | Yes | [StrategyPackage](/api-reference/schemas/strategy-package/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="wrapLegacyStrategyDefinition"></a>

## Wrap immutable v1 Bootstrap, Maintain, or Diversify evidence in the declarative v2 schema

`POST /strategies/legacy-wrappers`

Operation ID: <code>wrapLegacyStrategyDefinition</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>) **OR** OAuth bearer token with <code>strategies:validate</code> (<code>serviceCredential</code>)

**Service scope:** <code>strategies:validate</code>. Session access and workspace roles are evaluated separately.

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |

### Request body

Required: **yes**.

**<code>application/json</code>**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>simulationId</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>201</code> | Validated compatibility definition without rewriting history | <code>application/json</code>: <code>object</code> |

**<code>201</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>data.strategy</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.strategy.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |
| <code>data.compilation</code> | Yes | [StrategyCompilation](/api-reference/schemas/strategy-compilation/) | — |
| <code>data.sourceArtifactHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>data.proposalAuthorityGranted</code> | Yes | Constant <code>false</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="admitStrategyProposal"></a>

## Derive all eight proposal-admission checks from immutable server-side evidence

`POST /strategies/{id}/proposal-admissions`

Operation ID: <code>admitStrategyProposal</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>) **OR** OAuth bearer token with <code>strategies:validate</code> (<code>serviceCredential</code>)

**Service scope:** <code>strategies:validate</code>. Session access and workspace roles are evaluated separately.

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |
| <code>If-Match</code> | header | Yes | <code>string</code> | Pattern: <code>^"&#91;^"&#92;&#92; &#93;+"$</code> |

### Request body

Required: **yes**.

**<code>application/json</code>**

[StrategyProposalAdmissionRequest](/api-reference/schemas/strategy-proposal-admission-request/)

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>201</code> | Signed oracle-bound admission event | <code>application/json</code>: <code>object</code> |
| <code>409</code> | One or more checks failed closed | No response body declared |

**<code>201</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>data.admission</code> | Yes | [OperatingSystemEvent](/api-reference/schemas/operating-system-event/) | — |
| <code>data.validation</code> | Yes | [StrategyProposalAdmission](/api-reference/schemas/strategy-proposal-admission/) | — |
| <code>data.proposalAuthorityGranted</code> | Yes | Constant <code>false</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="getStrategyEvidence"></a>

## Read exact strategy admission events and their immutable study generations

`GET /strategies/{id}/evidence`

Operation ID: <code>getStrategyEvidence</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |
| <code>resourceVersion</code> | query | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</code> |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Read-only historical evidence; missing study generations remain null | <code>application/json</code>: <code>object</code> |
| <code>404</code> | The exact strategy generation is unavailable to this organization | No response body declared |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>data.schemaVersion</code> | Yes | Constant <code>strategy-evidence-view-v1</code> | — |
| <code>data.strategy</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.strategy.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |
| <code>data.admissions</code> | Yes | Array of <code>object</code> | — |
| <code>data.admissions&#91;&#93;.event</code> | Yes | [OperatingSystemEvent](/api-reference/schemas/operating-system-event/) | — |
| <code>data.admissions&#91;&#93;.study</code> | Yes | At least one of: All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code>; <code>null</code> | — |
| <code>data.admissions&#91;&#93;.study.anyOf&#91;1&#93;.allOf&#91;2&#93;.payload</code> | Yes | [SimulationStudy](/api-reference/schemas/simulation-study/) | — |
| <code>data.executionAuthorityGranted</code> | Yes | Constant <code>false</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="approveStrategyPackage"></a>

## Verify independent named reviews and a current signed strategy-registry generation

`POST /strategy-packages/{id}/approve`

Operation ID: <code>approveStrategyPackage</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |
| <code>If-Match</code> | header | Yes | <code>string</code> | Pattern: <code>^"&#91;^"&#92;&#92; &#93;+"$</code> |

### Request body

Required: **yes**.

**<code>application/json</code>**

[StrategyPackageApprovalRequest](/api-reference/schemas/strategy-package-approval-request/)

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Cryptographically approved package version | <code>application/json</code>: <code>object</code> |
| <code>400</code> | Review, registry, scope, freshness, or signature evidence invalid | No response body declared |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.allOf&#91;2&#93;.payload</code> | Yes | [StrategyPackage](/api-reference/schemas/strategy-package/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="seedStrategyFromApprovedPackage"></a>

## Enter standard activation preparation only from a currently verifiable approved package

`POST /strategy-packages/{id}/seed-strategy`

Operation ID: <code>seedStrategyFromApprovedPackage</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |
| <code>If-Match</code> | header | Yes | <code>string</code> | Pattern: <code>^"&#91;^"&#92;&#92; &#93;+"$</code> |

### Request body

Required: **yes**.

**<code>application/json</code>**

[StrategyPackageSeedRequest](/api-reference/schemas/strategy-package-seed-request/)

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>201</code> | Validated strategy definition with package lineage and no execution authority | <code>application/json</code>: <code>object</code> |
| <code>409</code> | Package is candidate, revoked, or no longer current | No response body declared |

**<code>201</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>data.strategy</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.strategy.allOf&#91;2&#93;.payload</code> | Yes | [StrategyDefinitionV2](/api-reference/schemas/strategy-definition-v2/) | — |
| <code>data.sourcePackageId</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>data.sourcePackageVersion</code> | Yes | <code>integer</code> | Minimum: <code>1</code> |
| <code>data.sourcePackageResourceVersion</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>data.sourcePackageArtifactHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>data.safetyEnvelopeHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>data.executionAuthorityGranted</code> | Yes | Constant <code>false</code> | — |
| <code>data.standardProposalSimulationApprovalSafeFlowRequired</code> | Yes | Constant <code>true</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

<a id="revokeStrategyPackage"></a>

## Immediately revoke activation eligibility while retaining evidence

`POST /strategy-packages/{id}/revoke`

Operation ID: <code>revokeStrategyPackage</code>

**Authentication:** <code>&#95;&#95;Host-klineo&#95;session</code> cookie (<code>sessionCookie</code>)

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>160</code> |
| <code>x-klineo-organization-id</code> | header | Yes | <code>string</code> | — |
| <code>id</code> | path | Yes | <code>string</code> | — |
| <code>If-Match</code> | header | Yes | <code>string</code> | Pattern: <code>^"&#91;^"&#92;&#92; &#93;+"$</code> |

### Request body

Required: **yes**.

**<code>application/json</code>**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>reason</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>500</code> |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Append-only revoked package version | <code>application/json</code>: <code>object</code> |

**<code>200</code> <code>application/json</code> body**

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | All of: [RecordEnvelope](/api-reference/schemas/record-envelope/); <code>object</code> | — |
| <code>data.allOf&#91;2&#93;.payload</code> | Yes | [StrategyPackage](/api-reference/schemas/strategy-package/) | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
