# v1 · Proposal review and Safe evidence

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

[API reference overview](/api-reference/v1/overview/) · [OpenAPI download](/openapi/liquidity-studio.openapi.json)

## Operations on this page

| Method | Path | Operation |
| --- | --- | --- |
| <code>GET</code> | <code>/proposals</code> | [getProposals](#getProposals) |
| <code>GET</code> | <code>/proposals/{proposalId}</code> | [getProposalsByProposalId](#getProposalsByProposalId) |
| <code>POST</code> | <code>/proposals/{proposalId}/approve</code> | [postProposalsByProposalIdApprove](#postProposalsByProposalIdApprove) |
| <code>POST</code> | <code>/proposals/{proposalId}/safe-bundle</code> | [postProposalsByProposalIdSafeBundle](#postProposalsByProposalIdSafeBundle) |
| <code>POST</code> | <code>/proposals/{proposalId}/submissions</code> | [postProposalsByProposalIdSubmissions](#postProposalsByProposalIdSubmissions) |
| <code>POST</code> | <code>/proposals/{proposalId}/reject</code> | [postProposalsByProposalIdReject](#postProposalsByProposalIdReject) |
| <code>POST</code> | <code>/proposals/{proposalId}/submit</code> | [postProposalsByProposalIdSubmit](#postProposalsByProposalIdSubmit) |
| <code>GET</code> | <code>/proposals/{proposalId}/execution</code> | [getProposalsByProposalIdExecution](#getProposalsByProposalIdExecution) |
| <code>GET</code> | <code>/proposals/{proposalId}/reconciliation</code> | [getProposalsByProposalIdReconciliation](#getProposalsByProposalIdReconciliation) |

<a id="getProposals"></a>

## getProposals

`GET /proposals`

Operation ID: <code>getProposals</code>

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

This operation declares no parameters.

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="getProposalsByProposalId"></a>

## getProposalsByProposalId

`GET /proposals/{proposalId}`

Operation ID: <code>getProposalsByProposalId</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="postProposalsByProposalIdApprove"></a>

## postProposalsByProposalIdApprove

`POST /proposals/{proposalId}/approve`

Operation ID: <code>postProposalsByProposalIdApprove</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>163</code> |
| <code>If-Match</code> | header | Yes | <code>string</code> | One quoted strong entity tag for the exact aggregate version reviewed by the actor. Pattern: <code>^"&#91;^"&#92;&#92;&#92;r&#92;n&#93;+"$</code>; Min length: <code>3</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> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="postProposalsByProposalIdSafeBundle"></a>

## postProposalsByProposalIdSafeBundle

`POST /proposals/{proposalId}/safe-bundle`

Operation ID: <code>postProposalsByProposalIdSafeBundle</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>163</code> |
| <code>If-Match</code> | header | Yes | <code>string</code> | One quoted strong entity tag for the exact aggregate version reviewed by the actor. Pattern: <code>^"&#91;^"&#92;&#92;&#92;r&#92;n&#93;+"$</code>; Min length: <code>3</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> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="postProposalsByProposalIdSubmissions"></a>

## postProposalsByProposalIdSubmissions

`POST /proposals/{proposalId}/submissions`

Operation ID: <code>postProposalsByProposalIdSubmissions</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>163</code> |
| <code>If-Match</code> | header | Yes | <code>string</code> | One quoted strong entity tag for the exact aggregate version reviewed by the actor. Pattern: <code>^"&#91;^"&#92;&#92;&#92;r&#92;n&#93;+"$</code>; Min length: <code>3</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>transactionHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</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> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="postProposalsByProposalIdReject"></a>

## postProposalsByProposalIdReject

`POST /proposals/{proposalId}/reject`

Operation ID: <code>postProposalsByProposalIdReject</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>163</code> |
| <code>If-Match</code> | header | Yes | <code>string</code> | One quoted strong entity tag for the exact aggregate version reviewed by the actor. Pattern: <code>^"&#91;^"&#92;&#92;&#92;r&#92;n&#93;+"$</code>; Min length: <code>3</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> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="postProposalsByProposalIdSubmit"></a>

## postProposalsByProposalIdSubmit

`POST /proposals/{proposalId}/submit`

Operation ID: <code>postProposalsByProposalIdSubmit</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |
| <code>Idempotency-Key</code> | header | Yes | <code>string</code> | Min length: <code>8</code>; Max length: <code>163</code> |
| <code>If-Match</code> | header | Yes | <code>string</code> | One quoted strong entity tag for the exact aggregate version reviewed by the actor. Pattern: <code>^"&#91;^"&#92;&#92;&#92;r&#92;n&#93;+"$</code>; Min length: <code>3</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>transactionHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-fA-F&#93;{64}$</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> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="getProposalsByProposalIdExecution"></a>

## getProposalsByProposalIdExecution

`GET /proposals/{proposalId}/execution`

Operation ID: <code>getProposalsByProposalIdExecution</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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

<a id="getProposalsByProposalIdReconciliation"></a>

## getProposalsByProposalIdReconciliation

`GET /proposals/{proposalId}/reconciliation`

Operation ID: <code>getProposalsByProposalIdReconciliation</code>

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

### Parameters

| Name | Location | Required | Type | Description and constraints |
| --- | --- | --- | --- | --- |
| <code>proposalId</code> | path | Yes | <code>string</code> | Min length: <code>1</code> |

### Responses

| Status | Description | Content type and schema |
| --- | --- | --- |
| <code>200</code> | Successful response | <code>application/json</code>: <code>object</code> |
| <code>default</code> | Structured API error | <code>application/json</code>: [ApiErrorEnvelope](/api-reference/v1/schemas/api-error-envelope/) |

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

<code>object</code>

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>data</code> | Yes | [ProposalRecord](/api-reference/v1/schemas/proposal-record/) | — |

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