# ExecutionAttributionRequest

[All API schemas](/api-reference/schemas/)

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

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>proposalId</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>observationEvidence</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>observationEvidence.providerId</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>observationEvidence.providerResourceVersion</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>observationEvidence.providerAttestationHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>observationEvidence.observedAt</code> | Yes | <code>string</code> | Format: <code>date-time</code> |
| <code>observationEvidence.payloadHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>observationEvidence.payload</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>observationEvidence.payload.schemaVersion</code> | Yes | Constant <code>execution-attribution-observation-v1</code> | — |
| <code>observationEvidence.payload.proposalId</code> | Yes | <code>string</code> | Min length: <code>3</code>; Max length: <code>160</code> |
| <code>observationEvidence.payload.transactionHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>observationEvidence.payload.observationHorizons</code> | Yes | Array of <code>object</code> | Min items: <code>3</code>; Max items: <code>3</code> |
| <code>observationEvidence.payload.observationHorizons&#91;&#93;.kind</code> | Yes | <code>string</code> | Allowed: <code>IMMEDIATE</code>, <code>ADVERSE&#95;SELECTION</code>, <code>RECOVERY</code> |
| <code>observationEvidence.payload.observationHorizons&#91;&#93;.endedAt</code> | Yes | <code>string</code> | Format: <code>date-time</code> |
| <code>observationEvidence.payload.observationHorizons&#91;&#93;.evidenceHash</code> | Yes | [Hash](/api-reference/schemas/hash/) | — |
| <code>observationEvidence.payload.adverseSelectionQuote</code> | Yes | [SignedAtomicAmount](/api-reference/schemas/signed-atomic-amount/) | — |
| <code>observationEvidence.payload.evidenceHashes</code> | Yes | Array of [Hash](/api-reference/schemas/hash/) | Min items: <code>1</code>; Max items: <code>128</code> |
| <code>observationEvidence.signature</code> | Yes | <code>string</code> | Pattern: <code>^&#91;A-Za-z0-9+/&#93;{80,700}={0,2}$</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.

Exact definition: <code>#/components/schemas/ExecutionAttributionRequest</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).