> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exponent.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Filled orders by wallet and vault

> Retrieve indexed filled orders for one wallet and vault.

export const ApiResponse = ({children, errors = {}}) => {
  const [status, setStatus] = useState("200");
  const statuses = ["200", ...Object.keys(errors)];
  return <section className="api-response" aria-label="Response">
      <div className="api-response-header not-prose">
        <h2>Response</h2>
        <div className="api-response-format">
          {statuses.length > 1 ? <select aria-label="Response status" value={status} onChange={event => setStatus(event.target.value)}>
              {statuses.map(code => <option key={code} value={code}>{code}</option>)}
            </select> : <span>200</span>}
          <span className="api-response-mime">application/json</span>
        </div>
      </div>
      <div hidden={status !== "200"}>{children}</div>
      {status !== "200" && <div aria-live="polite">
          {Object.entries(errors[status]).map(([name, value]) => <ResponseField key={name} name={name} type={value === null ? "null" : Array.isArray(value) ? "array" : typeof value}>
              {name === "error" ? "Error message describing why the request failed." : "Additional error details."}
            </ResponseField>)}
        </div>}
    </section>;
};

## Path parameters

<ParamField path="userAddress" type="string" required>
  User wallet address.
</ParamField>

<ParamField path="vaultAddress" type="string" required>
  Vault address.
</ParamField>

<RequestExample dropdown>
  ```bash cURL theme={null}
  curl https://api.exponent.finance/filled-orders/user/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4/vault/Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH
  ```

  ```python Python theme={null}
  import requests

  response = requests.get("https://api.exponent.finance/filled-orders/user/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4/vault/Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH", timeout=30)
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.exponent.finance/filled-orders/user/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4/vault/Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH");
  if (!response.ok) {
    throw new Error(`Request failed: ${response.status}`);
  }
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ApiResponse errors={{"500": {"error": "<message>"}}}>
  <ResponseField name="amount_filled" type="number">
    Input quantity executed so far, in raw token units.
  </ResponseField>

  <ResponseField name="amount_received" type="number">
    Output quantity received from fills, in raw token units.
  </ResponseField>

  <ResponseField name="amount_remaining" type="number">
    Unfilled input quantity, in raw token units.
  </ResponseField>

  <ResponseField name="created_at" type="string">
    Time this record was created, in ISO 8601 format.
  </ResponseField>

  <ResponseField name="filled_implied_apy" type="number | null">
    Indexed average implied rate across the order’s fills.
  </ResponseField>

  <ResponseField name="filled_sy_exchange_rate" type="number | null">
    SY exchange rate recorded for the filled portion.
  </ResponseField>

  <ResponseField name="implied_apy" type="number">
    Indexed implied rate associated with this order or execution.
  </ResponseField>

  <ResponseField name="market_offer_event_id" type="number | null">
    Indexed market-offer event ID, when the fill originated from a market offer.
  </ResponseField>

  <ResponseField name="num_fills" type="number">
    Number of executions that filled the order.
  </ResponseField>

  <ResponseField name="offer_idx" type="number | null">
    Reusable on-chain offer index; use the posting-event ID to distinguish successive orders.
  </ResponseField>

  <ResponseField name="order_role" type="string">
    Whether the wallet participated as maker or taker.
  </ResponseField>

  <ResponseField name="order_type" type="&#x22;buyPT&#x22; | &#x22;sellPT&#x22; | &#x22;buyYT&#x22; | &#x22;sellYT&#x22;">
    Order direction and product: `buyPT`, `sellPT`, `buyYT`, or `sellYT`.
  </ResponseField>

  <ResponseField name="orderbook_address" type="string">
    Orderbook account associated with the order or reward.
  </ResponseField>

  <ResponseField name="original_amount" type="number">
    Original order input quantity, in raw token units.
  </ResponseField>

  <ResponseField name="post_offer_event_id" type="number | null">
    Indexed event ID of the original resting-order post.
  </ResponseField>

  <ResponseField name="status" type="string">
    Terminal order state, such as `fully_filled`, `removed`, or `expired`.
  </ResponseField>

  <ResponseField name="tx_signature" type="string">
    Solana transaction signature for this activity.
  </ResponseField>

  <ResponseField name="updated_at" type="string">
    Most recent update to this record, in ISO 8601 format.
  </ResponseField>

  <ResponseField name="vault_address" type="string">
    Yield or strategy vault associated with this record.
  </ResponseField>
</ApiResponse>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "post_offer_event_id": 35146,
      "status": "removed",
      "order_role": "maker",
      "order_type": "sellYT",
      "amount_received": 59052,
      "amount_filled": 1694765,
      "amount_remaining": 27764253,
      "original_amount": 29459018,
      "implied_apy": 107688,
      "filled_implied_apy": 107688,
      "filled_sy_exchange_rate": 1.118510696053855,
      "tx_signature": "43ijQfwcE5sc9cJH4Vx8xQFzw4N4gnDYQKnFmsFGRJQpYjWmcPANNrWj5ALwSvh5wKKzJrNxncwVQeh8TYQdV2Pd",
      "updated_at": "2026-10-13T15:38:57+00:00",
      "orderbook_address": "8JtnQcProV3bF1KUF9ohqRrnGpQCmMjTS6XxXv1aoXam",
      "vault_address": "Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH",
      "offer_idx": 4,
      "num_fills": 2,
      "created_at": "2026-10-13T14:51:07+00:00",
      "market_offer_event_id": null
    },
    {
      "post_offer_event_id": 35147,
      "status": "removed",
      "order_role": "maker",
      "order_type": "buyYT",
      "amount_received": 0,
      "amount_filled": 0,
      "amount_remaining": 89404,
      "original_amount": 89404,
      "implied_apy": 107328,
      "filled_implied_apy": null,
      "filled_sy_exchange_rate": null,
      "tx_signature": "WSnaKpffSur3VZm34YTWVgxGqrQrHg4VP7VT6hbjzvNt4ZSuegftu8QGCTM5jWNu6s387enTMHza4UnbDAuBr8W",
      "updated_at": "2026-10-13T15:38:57+00:00",
      "orderbook_address": "8JtnQcProV3bF1KUF9ohqRrnGpQCmMjTS6XxXv1aoXam",
      "vault_address": "Cmry6B5824MGAKrtL2u7YG9PiLZLoTBWs8hVaCJeUFaH",
      "offer_idx": 5,
      "num_fills": 0,
      "created_at": "2026-10-13T14:51:29+00:00",
      "market_offer_event_id": null
    }
  ]
  ```

  ```json 500 theme={null}
  {
    "error": "<message>"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.