Paths on this page are relative to /api/liquidity-studio/v2. Authentication and required headers vary by operation.
API reference overview · OpenAPI download
Operations on this page#
| Method | Path | Operation |
|---|---|---|
GET |
/proposals/{id}/review |
getProposalWorkspaceReview |
GET |
/proposals |
listProposals |
POST |
/proposals |
createProposals |
GET |
/proposals/{id} |
getProposals |
GET |
/proposals/{id}/comments |
listProposalComments |
POST |
/proposals/{id}/comments |
appendProposalComment |
POST |
/proposals/{id}/decisions |
decideProposal |
POST |
/proposals/{id}/safe-submissions |
registerProposalSafeSubmission |
POST |
/proposal-comparisons |
compareProposals |
Read a resource-version-bound proposal review snapshot#
GET /proposals/{id}/review
Operation ID: getProposalWorkspaceReview
Authentication: __Host-klineo_session cookie (sessionCookie) OR OAuth bearer token with proposals:read (serviceCredential)
Requires current workspace membership and either an interactive session or proposals:read service scope. The required resourceVersion query binds the current proposal generation; stale versions fail with 412. Comments do not advance the proposal version, so reviewEvidenceHash separately binds the review snapshot. Internal approvals and verified historical Safe submissions grant no new execution authority.
Service scope: proposals:read. Session access and workspace roles are evaluated separately.
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
x-klineo-organization-id |
header | Yes | string |
Min length: 1; Max length: 160 |
id |
path | Yes | string |
— |
resourceVersion |
query | Yes | Hash | — |
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Read a resource-version-bound proposal review snapshot | application/json: object |
default |
Invalid input, access denied, source/storage failure or deadline exceeded. Workspace authentication errors may use the shared API envelope; bounded route failures expose a message. Rate-limit responses may be plain text. | application/json: object |
200 response headers
| Header | Required | Type | Description and constraints |
|---|---|---|---|
Cache-Control |
Yes | Constant no-store |
— |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | ProposalWorkspaceReview | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
default application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
error |
Yes | ApiError | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
List decision workspaces#
GET /proposals
Operation ID: listProposals
Authentication: __Host-klineo_session cookie (sessionCookie) OR OAuth bearer token with proposals:read (serviceCredential)
Service scope: proposals:read. Session access and workspace roles are evaluated separately.
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
x-klineo-organization-id |
header | Yes | string |
— |
cursor |
query | No | string |
Opaque cursor returned in the previous response metadata. |
limit |
query | No | integer |
Default: 50; Minimum: 1; Maximum: 100 |
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Latest tenant-isolated aggregate versions | application/json: object |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | Array of All of: RecordEnvelope; object |
— |
data[].allOf[2].payload |
Yes | ProposalWorkspace | — |
meta |
Yes | object |
Additional properties rejected |
meta.count |
Yes | integer |
Minimum: 0 |
meta.hasMore |
Yes | boolean |
— |
meta.nextCursor |
No | string |
— |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Create a decision packet with zero server-recorded approvals#
POST /proposals
Operation ID: createProposals
Authentication: __Host-klineo_session cookie (sessionCookie) OR OAuth bearer token with proposals:prepare (serviceCredential)
Service scope: proposals:prepare. Session access and workspace roles are evaluated separately.
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
Idempotency-Key |
header | Yes | string |
Min length: 8; Max length: 160 |
x-klineo-organization-id |
header | Yes | string |
— |
Request body#
Required: yes.
application/json
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
payload |
Yes | ProposalWorkspaceInput | — |
status |
No | OperatingSystemRecordStatus | — |
evidenceHashes |
No | Array of Hash | Max items: 256 |
reason |
Yes | string |
Min length: 3; Max length: 500 |
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 |
|---|---|---|
201 |
Append-only proposal created; approvals are admitted only through typed decision events | application/json: object |
400 |
Request attempted derived approval or Safe fields, or failed validation | No response body declared |
409 |
Immutable strategy-admission evidence is unavailable or superseded | No response body declared |
201 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | All of: RecordEnvelope; object |
— |
data.allOf[2].payload |
Yes | ProposalWorkspace | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Get one decision workspaces aggregate#
GET /proposals/{id}
Operation ID: getProposals
Authentication: __Host-klineo_session cookie (sessionCookie) OR OAuth bearer token with proposals:read (serviceCredential)
Service scope: proposals:read. Session access and workspace roles are evaluated separately.
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
x-klineo-organization-id |
header | Yes | string |
— |
id |
path | Yes | string |
— |
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Current immutable aggregate version | application/json: object |
404 |
Not found | No response body declared |
200 response headers
| Header | Required | Type | Description and constraints |
|---|---|---|---|
ETag |
Yes | string |
— |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | All of: RecordEnvelope; object |
— |
data.allOf[2].payload |
Yes | ProposalWorkspace | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
listProposalComments#
GET /proposals/{id}/comments
Operation ID: listProposalComments
Authentication: __Host-klineo_session cookie (sessionCookie) OR OAuth bearer token with proposals:read (serviceCredential)
Service scope: proposals:read. Session access and workspace roles are evaluated separately.
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
x-klineo-organization-id |
header | Yes | string |
— |
id |
path | Yes | string |
— |
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Append-only comments | application/json: object |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | Array of OperatingSystemEvent | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
appendProposalComment#
POST /proposals/{id}/comments
Operation ID: appendProposalComment
Authentication: __Host-klineo_session cookie (sessionCookie)
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
Idempotency-Key |
header | Yes | string |
Min length: 8; Max length: 160 |
x-klineo-organization-id |
header | Yes | string |
— |
id |
path | Yes | string |
— |
If-Match |
header | Yes | string |
Pattern: ^"[^"\\ ]+"$ |
Request body#
Required: yes.
application/json
Responses#
| Status | Description | Content type and schema |
|---|---|---|
201 |
Comment appended; supersession binds the exact prior comment artifact on this proposal | application/json: object |
201 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | OperatingSystemEvent | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Append an internal approval or rejection to a current DRAFT/VALIDATED packet#
POST /proposals/{id}/decisions
Operation ID: decideProposal
Authentication: __Host-klineo_session cookie (sessionCookie)
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
Idempotency-Key |
header | Yes | string |
Min length: 8; Max length: 160 |
x-klineo-organization-id |
header | Yes | string |
— |
id |
path | Yes | string |
— |
If-Match |
header | Yes | string |
Pattern: ^"[^"\\ ]+"$ |
Request body#
Required: yes.
application/json
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Superseding proposal and immutable packet-bound decision event | application/json: object |
409 |
Packet is terminal, expired, or the actor already approved this packet | No response body declared |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | ProposalDecisionResult | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Resolve finalized/reconciled issuer-Safe evidence server-side for an exact typed controller action#
POST /proposals/{id}/safe-submissions
Operation ID: registerProposalSafeSubmission
Authentication: __Host-klineo_session cookie (sessionCookie)
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
Idempotency-Key |
header | Yes | string |
Min length: 8; Max length: 160 |
x-klineo-organization-id |
header | Yes | string |
— |
id |
path | Yes | string |
— |
If-Match |
header | Yes | string |
Pattern: ^"[^"\\ ]+"$ |
Request body#
Required: yes.
application/json
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Server-verified Safe transaction evidence registered; no execution performed by this route | application/json: object |
409 |
Typed intent, signed release, current Safe, gateway evidence, finality, or reconciliation is unavailable/mismatched | No response body declared |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | ProposalSafeSubmissionResult | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Build an immutable comparison hash for two to eight decision packets#
POST /proposal-comparisons
Operation ID: compareProposals
Authentication: __Host-klineo_session cookie (sessionCookie) OR OAuth bearer token with proposals:prepare (serviceCredential)
Service scope: proposals:prepare. Session access and workspace roles are evaluated separately.
Parameters#
| Name | Location | Required | Type | Description and constraints |
|---|---|---|---|---|
Idempotency-Key |
header | Yes | string |
Min length: 8; Max length: 160 |
x-klineo-organization-id |
header | Yes | string |
— |
Request body#
Required: yes.
application/json
Responses#
| Status | Description | Content type and schema |
|---|---|---|
200 |
Deterministic proposal comparison | application/json: object |
200 application/json body
object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
data |
Yes | ProposalComparison | — |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.