---
title: "Get an order quote"
method: POST
path: "/accounts/{account_id}/order-quotes"
tags: ["trading"]
---

# Get an order quote

`POST /accounts/{account_id}/order-quotes`

## Request

- Base URL: `https://api.engine.usesophic.com`
- URL: `https://api.engine.usesophic.com/accounts/{account_id}/order-quotes`
- Auth: HTTP bearer

Issues a quote for a prospective order. The quote captures the fees and estimated price/quantity that would apply, is persisted, and carries an `id` and `expires_at`; pass the `id` as `quote_id` at order placement to reference the previewed terms. Placement rejects expired quotes.

## Path parameters

- `account_id` string, required

## Request body

- OrderQuoteRequest
  - `cash_amount` union: The cash amount for a buy order.
    - number
    - string
  - `instrument` string, required: ID of the instrument to quote.
  - `limit_price` union: Optional limit price. When set, the quote is a deterministic bound: `estimated_price` echoes the limit, a cash buy returns affordable quantity and `max_cost`, a sell returns `min_proceeds`.
    - number
    - string
  - `quantity` union: The unit quantity for a sell order.
    - number
    - string
  - `return_only_fees` boolean: Whether to return only applicable fees.
  - `side` 'buy' | 'sell', required

## Response `200`

Successful Response

- union
  - EtfMarketCashQuote
    - `blockers` OrderQuoteBlocker[], required: Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.
      - `code` string, required: The error placement returns for this order: `trading_rule_violated`, `insufficient_funds` or `insufficient_units`.
      - `context` union, required: The rule broken, or the balance exceeded, by `code`.
        - OrderQuoteBlockerContext: The trading rule a blocker names, in the shape of the instrument's `trading_configuration`.
          - `actual` string, required: What the order has: the cash it invests (net of fees) or raises, its units, or its mode.
          - `required` union, required: What the rule asks for: the minimum, the trading increment, or the allowed order modes.
            - string
            - string[]
          - `required_cash_amount` string, nullable, required: On a cash buy, the least `cash_amount`, fees included, that meets every buy rule checked in cash or units, so the client can say what to enter. Null on any other order.
          - `rule` string, required: The rule path, e.g. `buy.min_initial_cash_amount`, or `trading_increment`.
        - OrderQuoteFundsBlockerContext: The cash balance an `insufficient_funds` blocker names.
          - `available` string, required: The free cash the account has for trading.
          - `currency` 'EUR' | 'USD' | 'GBP', required
          - `requested` string, required: The cash the order would reserve.
        - OrderQuoteUnitsBlockerContext: The position an `insufficient_units` blocker names.
          - `available` string, required: The free units the position has for trading.
          - `requested` string, required: The units the order would sell.
      - `detail` string, required: A readable description of the violation.
    - `cash_amount` string, required: Cash the user chose to invest (before fees).
    - `created_at` string, date-time, required: When the quote was issued.
    - `currency` 'EUR' | 'USD' | 'GBP', required
    - `estimate` EtfMarketCashEstimate, required
      - `asof` string, date-time, required: Timestamp of the price the estimate is based on.
      - `fee_breakdown` OrderQuoteFeeLine[], required: Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.
        - `amount` string, required: The fee including its tax, in the quote's `currency`.
        - `display_name` string, required: The fee's name, for display.
        - `label` string, required: What the fee is for, as the resulting order's fee row will label it. Open-ended: new labels can appear as fees are added, so render unknown values by `display_name`.
      - `fees` string, required: Estimated order fees.
      - `net_cash_amount` string, required: Cash invested after fees.
      - `price` string, required: Latest market price per unit.
      - `quantity` string, required: Estimated units the order would acquire.
    - `expires_at` string, date-time, required: When the quote expires.
    - `expires_in` integer, required: Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.
    - `id` string, required: Quote ID, redeemable via `quote_id` at order placement.
    - `instrument` union, required: The full instrument being quoted.
      - Bill
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bill', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - CurrencyPair
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `base_currency` 'EUR' | 'USD' | 'GBP', required
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `instrument_type` 'currency_pair', required: Instrument type.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `quote_currency` 'EUR' | 'USD' | 'GBP', required
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - Bond
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `coupon` string, required: Annual coupon rate as a percentage. Four decimal places, since coupons are quoted in eighths and sixteenths (2.625, 0.0625).
        - `coupon_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly' | 'biennial', required
        - `coupon_type` 'fixed_coupon' | 'floating_coupon' | 'zero_coupon' | 'stepped_coupon' | 'deferred_coupon' | 'pay_in_kind_coupon' | 'indexed_coupon' | 'credit_linked_coupon', required
        - `day_count_convention` '30_360' | 'actual_360' | 'actual_365_fixed' | 'actual_actual'
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `first_coupon_date` string, date, nullable: Date of the first scheduled coupon payment.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bond', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `next_coupon_date` string, date, nullable: Next scheduled coupon payment date.
        - `par_value` string, nullable, required: Nominal value per unit used for price quotation.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
        - `upcoming_coupon_amount_per_unit` string, nullable: Next coupon cash amount per unit of face quantity. Eight decimal places: a quarterly 2.625 coupon pays 0.0065625 per unit, which four would round.
      - MoneyMarketFund
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `benchmark` string, nullable, required: Benchmark used to evaluate fund performance.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `fund_management_company` string, required: Company that manages the fund.
        - `fund_ongoing_charges` string, required: Annual ongoing charges as a percentage.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the fund was first issued.
        - `instrument_type` 'money_market_fund', required: Instrument type.
        - `investment_objective` string, nullable, required: Investment objective of the fund.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `is_qualifying_mmf` boolean, required: Whether the fund qualifies as a QMMF under MiFID.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - AMC
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'amc', required: Instrument type.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `portfolio_manager` string, nullable, required: Name of the portfolio manager.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `provider` string, nullable, required: Provider of the instrument.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `risk_profile` string, nullable, required: Risk profile.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `share_class` string, nullable, required: Share class.
        - `strategy` string, nullable, required: Investment strategy.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - ETF
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `currency_sentence` string, nullable, required: Plain-language description of the fund's currency risk.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `display_name` string, nullable, required: Short card headline derived from the legal name with share-class tokens removed.
        - `distribution_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly', required
        - `distribution_policy` 'accumulating' | 'distributing', required
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `expense_ratio` string, nullable, required: Annual expense ratio as a fraction of assets.
        - `fund_base_currency` 'EUR' | 'USD' | 'GBP', required
        - `fund_category` string, nullable, required: Fund category.
        - `fund_domicile` string, nullable, required: ISO 3166-1 alpha-2 domicile country code.
        - `fund_management` string, nullable, required: Legal company that manages the fund.
        - `headline` string, nullable, required: One-line "what do I own" summary shown on the holding card.
        - `hedge_currency` 'EUR' | 'USD' | 'GBP', required
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, nullable, required: Fund inception date.
        - `instrument_type` 'etf', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, nullable, required: Brand-level name of the fund issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `net_assets` string, nullable: Total net asset value of the fund.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `replication_method` 'physical' | 'sampling' | 'synthetic', required
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rhp_years` integer, nullable, required: Recommended holding period in years from the PRIIPs KID.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `sri` 1 | 2 | 3 | 4 | 5 | 6 | 7, required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, required: Ticker symbol of the ETF listing.
        - `tracking_index` string, nullable, required: Index tracked by the fund.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
    - `is_binding` boolean, required: Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.
    - `is_placeable` boolean, required: Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.
    - `order_type` 'market' | 'limit', required
    - `quote_type` 'etf_market_cash': The kind of order quote returned, which determines the set of fields present in this response.
    - `reservation` OrderQuoteReservation, required: What a placement referencing this quote would set aside.
      - `amount` string, required: Amount a placement would reserve: a cash amount on a buy, a unit quantity on a sell — see `denomination`.
      - `denomination` 'cash' | 'units', required
    - `side` 'buy' | 'sell', required
  - EtfLimitCashQuote
    - `blockers` OrderQuoteBlocker[], required: Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.
      - `code` string, required: The error placement returns for this order: `trading_rule_violated`, `insufficient_funds` or `insufficient_units`.
      - `context` union, required: The rule broken, or the balance exceeded, by `code`.
        - OrderQuoteBlockerContext: The trading rule a blocker names, in the shape of the instrument's `trading_configuration`.
          - `actual` string, required: What the order has: the cash it invests (net of fees) or raises, its units, or its mode.
          - `required` union, required: What the rule asks for: the minimum, the trading increment, or the allowed order modes.
            - string
            - string[]
          - `required_cash_amount` string, nullable, required: On a cash buy, the least `cash_amount`, fees included, that meets every buy rule checked in cash or units, so the client can say what to enter. Null on any other order.
          - `rule` string, required: The rule path, e.g. `buy.min_initial_cash_amount`, or `trading_increment`.
        - OrderQuoteFundsBlockerContext: The cash balance an `insufficient_funds` blocker names.
          - `available` string, required: The free cash the account has for trading.
          - `currency` 'EUR' | 'USD' | 'GBP', required
          - `requested` string, required: The cash the order would reserve.
        - OrderQuoteUnitsBlockerContext: The position an `insufficient_units` blocker names.
          - `available` string, required: The free units the position has for trading.
          - `requested` string, required: The units the order would sell.
      - `detail` string, required: A readable description of the violation.
    - `cash_amount` string, required: Cash the user chose to invest (before fees).
    - `created_at` string, date-time, required: When the quote was issued.
    - `currency` 'EUR' | 'USD' | 'GBP', required
    - `estimate` EtfLimitCashEstimate, required
      - `fee_breakdown` OrderQuoteFeeLine[], required: Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.
        - `amount` string, required: The fee including its tax, in the quote's `currency`.
        - `display_name` string, required: The fee's name, for display.
        - `label` string, required: What the fee is for, as the resulting order's fee row will label it. Open-ended: new labels can appear as fees are added, so render unknown values by `display_name`.
      - `fees` string, required: Estimated order fees.
      - `max_cost` string, required: Worst-case cash the order can consume at the limit.
      - `net_cash_amount` string, required: Cash invested after fees.
      - `quantity` string, required: Estimated units affordable at the limit within the budget.
    - `expires_at` string, date-time, required: When the quote expires.
    - `expires_in` integer, required: Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.
    - `id` string, required: Quote ID, redeemable via `quote_id` at order placement.
    - `instrument` union, required: The full instrument being quoted.
      - Bill
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bill', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - CurrencyPair
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `base_currency` 'EUR' | 'USD' | 'GBP', required
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `instrument_type` 'currency_pair', required: Instrument type.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `quote_currency` 'EUR' | 'USD' | 'GBP', required
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - Bond
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `coupon` string, required: Annual coupon rate as a percentage. Four decimal places, since coupons are quoted in eighths and sixteenths (2.625, 0.0625).
        - `coupon_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly' | 'biennial', required
        - `coupon_type` 'fixed_coupon' | 'floating_coupon' | 'zero_coupon' | 'stepped_coupon' | 'deferred_coupon' | 'pay_in_kind_coupon' | 'indexed_coupon' | 'credit_linked_coupon', required
        - `day_count_convention` '30_360' | 'actual_360' | 'actual_365_fixed' | 'actual_actual'
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `first_coupon_date` string, date, nullable: Date of the first scheduled coupon payment.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bond', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `next_coupon_date` string, date, nullable: Next scheduled coupon payment date.
        - `par_value` string, nullable, required: Nominal value per unit used for price quotation.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
        - `upcoming_coupon_amount_per_unit` string, nullable: Next coupon cash amount per unit of face quantity. Eight decimal places: a quarterly 2.625 coupon pays 0.0065625 per unit, which four would round.
      - MoneyMarketFund
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `benchmark` string, nullable, required: Benchmark used to evaluate fund performance.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `fund_management_company` string, required: Company that manages the fund.
        - `fund_ongoing_charges` string, required: Annual ongoing charges as a percentage.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the fund was first issued.
        - `instrument_type` 'money_market_fund', required: Instrument type.
        - `investment_objective` string, nullable, required: Investment objective of the fund.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `is_qualifying_mmf` boolean, required: Whether the fund qualifies as a QMMF under MiFID.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - AMC
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'amc', required: Instrument type.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `portfolio_manager` string, nullable, required: Name of the portfolio manager.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `provider` string, nullable, required: Provider of the instrument.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `risk_profile` string, nullable, required: Risk profile.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `share_class` string, nullable, required: Share class.
        - `strategy` string, nullable, required: Investment strategy.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - ETF
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `currency_sentence` string, nullable, required: Plain-language description of the fund's currency risk.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `display_name` string, nullable, required: Short card headline derived from the legal name with share-class tokens removed.
        - `distribution_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly', required
        - `distribution_policy` 'accumulating' | 'distributing', required
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `expense_ratio` string, nullable, required: Annual expense ratio as a fraction of assets.
        - `fund_base_currency` 'EUR' | 'USD' | 'GBP', required
        - `fund_category` string, nullable, required: Fund category.
        - `fund_domicile` string, nullable, required: ISO 3166-1 alpha-2 domicile country code.
        - `fund_management` string, nullable, required: Legal company that manages the fund.
        - `headline` string, nullable, required: One-line "what do I own" summary shown on the holding card.
        - `hedge_currency` 'EUR' | 'USD' | 'GBP', required
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, nullable, required: Fund inception date.
        - `instrument_type` 'etf', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, nullable, required: Brand-level name of the fund issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `net_assets` string, nullable: Total net asset value of the fund.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `replication_method` 'physical' | 'sampling' | 'synthetic', required
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rhp_years` integer, nullable, required: Recommended holding period in years from the PRIIPs KID.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `sri` 1 | 2 | 3 | 4 | 5 | 6 | 7, required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, required: Ticker symbol of the ETF listing.
        - `tracking_index` string, nullable, required: Index tracked by the fund.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
    - `is_binding` boolean, required: Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.
    - `is_placeable` boolean, required: Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.
    - `limit_price` string, required: Worst-case price per unit the order is bounded by.
    - `order_type` 'market' | 'limit', required
    - `quote_type` 'etf_limit_cash': The kind of order quote returned, which determines the set of fields present in this response.
    - `reservation` OrderQuoteReservation, required: What a placement referencing this quote would set aside.
      - `amount` string, required: Amount a placement would reserve: a cash amount on a buy, a unit quantity on a sell — see `denomination`.
      - `denomination` 'cash' | 'units', required
    - `side` 'buy' | 'sell', required
  - EtfMarketQuantityQuote
    - `blockers` OrderQuoteBlocker[], required: Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.
      - `code` string, required: The error placement returns for this order: `trading_rule_violated`, `insufficient_funds` or `insufficient_units`.
      - `context` union, required: The rule broken, or the balance exceeded, by `code`.
        - OrderQuoteBlockerContext: The trading rule a blocker names, in the shape of the instrument's `trading_configuration`.
          - `actual` string, required: What the order has: the cash it invests (net of fees) or raises, its units, or its mode.
          - `required` union, required: What the rule asks for: the minimum, the trading increment, or the allowed order modes.
            - string
            - string[]
          - `required_cash_amount` string, nullable, required: On a cash buy, the least `cash_amount`, fees included, that meets every buy rule checked in cash or units, so the client can say what to enter. Null on any other order.
          - `rule` string, required: The rule path, e.g. `buy.min_initial_cash_amount`, or `trading_increment`.
        - OrderQuoteFundsBlockerContext: The cash balance an `insufficient_funds` blocker names.
          - `available` string, required: The free cash the account has for trading.
          - `currency` 'EUR' | 'USD' | 'GBP', required
          - `requested` string, required: The cash the order would reserve.
        - OrderQuoteUnitsBlockerContext: The position an `insufficient_units` blocker names.
          - `available` string, required: The free units the position has for trading.
          - `requested` string, required: The units the order would sell.
      - `detail` string, required: A readable description of the violation.
    - `created_at` string, date-time, required: When the quote was issued.
    - `currency` 'EUR' | 'USD' | 'GBP', required
    - `estimate` EtfMarketQuantityEstimate, required
      - `asof` string, date-time, required: Timestamp of the price the estimate is based on.
      - `cost` string, required: Estimated all-in cost (notional + fees).
      - `fee_breakdown` OrderQuoteFeeLine[], required: Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.
        - `amount` string, required: The fee including its tax, in the quote's `currency`.
        - `display_name` string, required: The fee's name, for display.
        - `label` string, required: What the fee is for, as the resulting order's fee row will label it. Open-ended: new labels can appear as fees are added, so render unknown values by `display_name`.
      - `fees` string, required: Estimated order fees.
      - `notional` string, required: Estimated traded value (price x quantity).
      - `price` string, required: Latest market price per unit.
      - `price_buffer_percentage` string, required: Fraction added on top of the cost when sizing the cash reservation, to absorb price movement before execution (0.02 = 2%). The gap between `cost` and `reservation.amount` is this buffer.
    - `expires_at` string, date-time, required: When the quote expires.
    - `expires_in` integer, required: Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.
    - `id` string, required: Quote ID, redeemable via `quote_id` at order placement.
    - `instrument` union, required: The full instrument being quoted.
      - Bill
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bill', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - CurrencyPair
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `base_currency` 'EUR' | 'USD' | 'GBP', required
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `instrument_type` 'currency_pair', required: Instrument type.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `quote_currency` 'EUR' | 'USD' | 'GBP', required
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - Bond
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `coupon` string, required: Annual coupon rate as a percentage. Four decimal places, since coupons are quoted in eighths and sixteenths (2.625, 0.0625).
        - `coupon_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly' | 'biennial', required
        - `coupon_type` 'fixed_coupon' | 'floating_coupon' | 'zero_coupon' | 'stepped_coupon' | 'deferred_coupon' | 'pay_in_kind_coupon' | 'indexed_coupon' | 'credit_linked_coupon', required
        - `day_count_convention` '30_360' | 'actual_360' | 'actual_365_fixed' | 'actual_actual'
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `first_coupon_date` string, date, nullable: Date of the first scheduled coupon payment.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bond', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `next_coupon_date` string, date, nullable: Next scheduled coupon payment date.
        - `par_value` string, nullable, required: Nominal value per unit used for price quotation.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
        - `upcoming_coupon_amount_per_unit` string, nullable: Next coupon cash amount per unit of face quantity. Eight decimal places: a quarterly 2.625 coupon pays 0.0065625 per unit, which four would round.
      - MoneyMarketFund
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `benchmark` string, nullable, required: Benchmark used to evaluate fund performance.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `fund_management_company` string, required: Company that manages the fund.
        - `fund_ongoing_charges` string, required: Annual ongoing charges as a percentage.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the fund was first issued.
        - `instrument_type` 'money_market_fund', required: Instrument type.
        - `investment_objective` string, nullable, required: Investment objective of the fund.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `is_qualifying_mmf` boolean, required: Whether the fund qualifies as a QMMF under MiFID.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - AMC
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'amc', required: Instrument type.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `portfolio_manager` string, nullable, required: Name of the portfolio manager.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `provider` string, nullable, required: Provider of the instrument.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `risk_profile` string, nullable, required: Risk profile.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `share_class` string, nullable, required: Share class.
        - `strategy` string, nullable, required: Investment strategy.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - ETF
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `currency_sentence` string, nullable, required: Plain-language description of the fund's currency risk.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `display_name` string, nullable, required: Short card headline derived from the legal name with share-class tokens removed.
        - `distribution_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly', required
        - `distribution_policy` 'accumulating' | 'distributing', required
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `expense_ratio` string, nullable, required: Annual expense ratio as a fraction of assets.
        - `fund_base_currency` 'EUR' | 'USD' | 'GBP', required
        - `fund_category` string, nullable, required: Fund category.
        - `fund_domicile` string, nullable, required: ISO 3166-1 alpha-2 domicile country code.
        - `fund_management` string, nullable, required: Legal company that manages the fund.
        - `headline` string, nullable, required: One-line "what do I own" summary shown on the holding card.
        - `hedge_currency` 'EUR' | 'USD' | 'GBP', required
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, nullable, required: Fund inception date.
        - `instrument_type` 'etf', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, nullable, required: Brand-level name of the fund issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `net_assets` string, nullable: Total net asset value of the fund.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `replication_method` 'physical' | 'sampling' | 'synthetic', required
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rhp_years` integer, nullable, required: Recommended holding period in years from the PRIIPs KID.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `sri` 1 | 2 | 3 | 4 | 5 | 6 | 7, required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, required: Ticker symbol of the ETF listing.
        - `tracking_index` string, nullable, required: Index tracked by the fund.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
    - `is_binding` boolean, required: Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.
    - `is_placeable` boolean, required: Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.
    - `order_type` 'market' | 'limit', required
    - `quantity` string, required: Units the user chose to buy.
    - `quote_type` 'etf_market_quantity': The kind of order quote returned, which determines the set of fields present in this response.
    - `reservation` OrderQuoteReservation, required: What a placement referencing this quote would set aside.
      - `amount` string, required: Amount a placement would reserve: a cash amount on a buy, a unit quantity on a sell — see `denomination`.
      - `denomination` 'cash' | 'units', required
    - `side` 'buy' | 'sell', required
  - EtfLimitQuantityQuote
    - `blockers` OrderQuoteBlocker[], required: Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.
      - `code` string, required: The error placement returns for this order: `trading_rule_violated`, `insufficient_funds` or `insufficient_units`.
      - `context` union, required: The rule broken, or the balance exceeded, by `code`.
        - OrderQuoteBlockerContext: The trading rule a blocker names, in the shape of the instrument's `trading_configuration`.
          - `actual` string, required: What the order has: the cash it invests (net of fees) or raises, its units, or its mode.
          - `required` union, required: What the rule asks for: the minimum, the trading increment, or the allowed order modes.
            - string
            - string[]
          - `required_cash_amount` string, nullable, required: On a cash buy, the least `cash_amount`, fees included, that meets every buy rule checked in cash or units, so the client can say what to enter. Null on any other order.
          - `rule` string, required: The rule path, e.g. `buy.min_initial_cash_amount`, or `trading_increment`.
        - OrderQuoteFundsBlockerContext: The cash balance an `insufficient_funds` blocker names.
          - `available` string, required: The free cash the account has for trading.
          - `currency` 'EUR' | 'USD' | 'GBP', required
          - `requested` string, required: The cash the order would reserve.
        - OrderQuoteUnitsBlockerContext: The position an `insufficient_units` blocker names.
          - `available` string, required: The free units the position has for trading.
          - `requested` string, required: The units the order would sell.
      - `detail` string, required: A readable description of the violation.
    - `created_at` string, date-time, required: When the quote was issued.
    - `currency` 'EUR' | 'USD' | 'GBP', required
    - `estimate` EtfLimitQuantityEstimate, required
      - `cost` string, required: All-in cost at the limit price (notional + fees).
      - `fee_breakdown` OrderQuoteFeeLine[], required: Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.
        - `amount` string, required: The fee including its tax, in the quote's `currency`.
        - `display_name` string, required: The fee's name, for display.
        - `label` string, required: What the fee is for, as the resulting order's fee row will label it. Open-ended: new labels can appear as fees are added, so render unknown values by `display_name`.
      - `fees` string, required: Estimated order fees.
      - `max_cost` string, required: Worst-case cash the order can consume at the limit.
      - `notional` string, required: Traded value at the limit price (limit x quantity).
    - `expires_at` string, date-time, required: When the quote expires.
    - `expires_in` integer, required: Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.
    - `id` string, required: Quote ID, redeemable via `quote_id` at order placement.
    - `instrument` union, required: The full instrument being quoted.
      - Bill
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bill', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - CurrencyPair
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `base_currency` 'EUR' | 'USD' | 'GBP', required
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `instrument_type` 'currency_pair', required: Instrument type.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `quote_currency` 'EUR' | 'USD' | 'GBP', required
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - Bond
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `coupon` string, required: Annual coupon rate as a percentage. Four decimal places, since coupons are quoted in eighths and sixteenths (2.625, 0.0625).
        - `coupon_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly' | 'biennial', required
        - `coupon_type` 'fixed_coupon' | 'floating_coupon' | 'zero_coupon' | 'stepped_coupon' | 'deferred_coupon' | 'pay_in_kind_coupon' | 'indexed_coupon' | 'credit_linked_coupon', required
        - `day_count_convention` '30_360' | 'actual_360' | 'actual_365_fixed' | 'actual_actual'
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `first_coupon_date` string, date, nullable: Date of the first scheduled coupon payment.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bond', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `next_coupon_date` string, date, nullable: Next scheduled coupon payment date.
        - `par_value` string, nullable, required: Nominal value per unit used for price quotation.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
        - `upcoming_coupon_amount_per_unit` string, nullable: Next coupon cash amount per unit of face quantity. Eight decimal places: a quarterly 2.625 coupon pays 0.0065625 per unit, which four would round.
      - MoneyMarketFund
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `benchmark` string, nullable, required: Benchmark used to evaluate fund performance.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `fund_management_company` string, required: Company that manages the fund.
        - `fund_ongoing_charges` string, required: Annual ongoing charges as a percentage.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the fund was first issued.
        - `instrument_type` 'money_market_fund', required: Instrument type.
        - `investment_objective` string, nullable, required: Investment objective of the fund.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `is_qualifying_mmf` boolean, required: Whether the fund qualifies as a QMMF under MiFID.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - AMC
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'amc', required: Instrument type.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `portfolio_manager` string, nullable, required: Name of the portfolio manager.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `provider` string, nullable, required: Provider of the instrument.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `risk_profile` string, nullable, required: Risk profile.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `share_class` string, nullable, required: Share class.
        - `strategy` string, nullable, required: Investment strategy.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - ETF
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `currency_sentence` string, nullable, required: Plain-language description of the fund's currency risk.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `display_name` string, nullable, required: Short card headline derived from the legal name with share-class tokens removed.
        - `distribution_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly', required
        - `distribution_policy` 'accumulating' | 'distributing', required
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `expense_ratio` string, nullable, required: Annual expense ratio as a fraction of assets.
        - `fund_base_currency` 'EUR' | 'USD' | 'GBP', required
        - `fund_category` string, nullable, required: Fund category.
        - `fund_domicile` string, nullable, required: ISO 3166-1 alpha-2 domicile country code.
        - `fund_management` string, nullable, required: Legal company that manages the fund.
        - `headline` string, nullable, required: One-line "what do I own" summary shown on the holding card.
        - `hedge_currency` 'EUR' | 'USD' | 'GBP', required
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, nullable, required: Fund inception date.
        - `instrument_type` 'etf', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, nullable, required: Brand-level name of the fund issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `net_assets` string, nullable: Total net asset value of the fund.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `replication_method` 'physical' | 'sampling' | 'synthetic', required
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rhp_years` integer, nullable, required: Recommended holding period in years from the PRIIPs KID.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `sri` 1 | 2 | 3 | 4 | 5 | 6 | 7, required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, required: Ticker symbol of the ETF listing.
        - `tracking_index` string, nullable, required: Index tracked by the fund.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
    - `is_binding` boolean, required: Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.
    - `is_placeable` boolean, required: Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.
    - `limit_price` string, required: Worst-case price per unit the order is bounded by.
    - `order_type` 'market' | 'limit', required
    - `quantity` string, required: Units the user chose to buy.
    - `quote_type` 'etf_limit_quantity': The kind of order quote returned, which determines the set of fields present in this response.
    - `reservation` OrderQuoteReservation, required: What a placement referencing this quote would set aside.
      - `amount` string, required: Amount a placement would reserve: a cash amount on a buy, a unit quantity on a sell — see `denomination`.
      - `denomination` 'cash' | 'units', required
    - `side` 'buy' | 'sell', required
  - BillMarketCashQuote
    - `blockers` OrderQuoteBlocker[], required: Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.
      - `code` string, required: The error placement returns for this order: `trading_rule_violated`, `insufficient_funds` or `insufficient_units`.
      - `context` union, required: The rule broken, or the balance exceeded, by `code`.
        - OrderQuoteBlockerContext: The trading rule a blocker names, in the shape of the instrument's `trading_configuration`.
          - `actual` string, required: What the order has: the cash it invests (net of fees) or raises, its units, or its mode.
          - `required` union, required: What the rule asks for: the minimum, the trading increment, or the allowed order modes.
            - string
            - string[]
          - `required_cash_amount` string, nullable, required: On a cash buy, the least `cash_amount`, fees included, that meets every buy rule checked in cash or units, so the client can say what to enter. Null on any other order.
          - `rule` string, required: The rule path, e.g. `buy.min_initial_cash_amount`, or `trading_increment`.
        - OrderQuoteFundsBlockerContext: The cash balance an `insufficient_funds` blocker names.
          - `available` string, required: The free cash the account has for trading.
          - `currency` 'EUR' | 'USD' | 'GBP', required
          - `requested` string, required: The cash the order would reserve.
        - OrderQuoteUnitsBlockerContext: The position an `insufficient_units` blocker names.
          - `available` string, required: The free units the position has for trading.
          - `requested` string, required: The units the order would sell.
      - `detail` string, required: A readable description of the violation.
    - `cash_amount` string, required: Cash the user chose to invest (before fees).
    - `created_at` string, date-time, required: When the quote was issued.
    - `currency` 'EUR' | 'USD' | 'GBP', required
    - `estimate` BillMarketCashEstimate, required
      - `asof` string, date-time, required: Timestamp of the price the estimate is based on.
      - `fee_breakdown` OrderQuoteFeeLine[], required: Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.
        - `amount` string, required: The fee including its tax, in the quote's `currency`.
        - `display_name` string, required: The fee's name, for display.
        - `label` string, required: What the fee is for, as the resulting order's fee row will label it. Open-ended: new labels can appear as fees are added, so render unknown values by `display_name`.
      - `fees` string, required: Estimated order fees.
      - `net_cash_amount` string, required: Cash invested after fees.
      - `price` string, required: Latest price per unit.
      - `quantity` string, required: Estimated units the order would acquire; for fixed income this is the nominal redeemed at par at maturity.
      - `yield` string, nullable: Annualised yield (yield to maturity for fixed income). Percent, e.g. 2.25 = 2.25%.
    - `expires_at` string, date-time, required: When the quote expires.
    - `expires_in` integer, required: Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.
    - `id` string, required: Quote ID, redeemable via `quote_id` at order placement.
    - `instrument` union, required: The full instrument being quoted.
      - Bill
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bill', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - CurrencyPair
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `base_currency` 'EUR' | 'USD' | 'GBP', required
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `instrument_type` 'currency_pair', required: Instrument type.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `quote_currency` 'EUR' | 'USD' | 'GBP', required
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - Bond
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `coupon` string, required: Annual coupon rate as a percentage. Four decimal places, since coupons are quoted in eighths and sixteenths (2.625, 0.0625).
        - `coupon_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly' | 'biennial', required
        - `coupon_type` 'fixed_coupon' | 'floating_coupon' | 'zero_coupon' | 'stepped_coupon' | 'deferred_coupon' | 'pay_in_kind_coupon' | 'indexed_coupon' | 'credit_linked_coupon', required
        - `day_count_convention` '30_360' | 'actual_360' | 'actual_365_fixed' | 'actual_actual'
        - `days_to_maturity` integer, required: Calendar days remaining until maturity.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `first_coupon_date` string, date, nullable: Date of the first scheduled coupon payment.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_auction_date` string, date, nullable, required: Date of the first auction.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'bond', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `latest_auction_date` string, date, nullable, required: Date of the latest auction, including tap issues.
        - `latest_issue_date` string, date, nullable, required: Date of the latest issue, including tap issues.
        - `maturity_date` string, date, required: Date the instrument matures.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `next_coupon_date` string, date, nullable: Next scheduled coupon payment date.
        - `par_value` string, nullable, required: Nominal value per unit used for price quotation.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `supports_automatic_rollover` boolean, required: Whether positions can roll over automatically at maturity.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
        - `upcoming_coupon_amount_per_unit` string, nullable: Next coupon cash amount per unit of face quantity. Eight decimal places: a quarterly 2.625 coupon pays 0.0065625 per unit, which four would round.
      - MoneyMarketFund
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `benchmark` string, nullable, required: Benchmark used to evaluate fund performance.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `fund_management_company` string, required: Company that manages the fund.
        - `fund_ongoing_charges` string, required: Annual ongoing charges as a percentage.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the fund was first issued.
        - `instrument_type` 'money_market_fund', required: Instrument type.
        - `investment_objective` string, nullable, required: Investment objective of the fund.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `is_qualifying_mmf` boolean, required: Whether the fund qualifies as a QMMF under MiFID.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - AMC
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `dealing_deadline` string, time, required: Daily cutoff time for placing orders.
        - `dealing_deadline_time_and_day` string, required: Next dealing cutoff shown as time and date.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, required: Date the instrument was first issued.
        - `instrument_type` 'amc', required: Instrument type.
        - `is_passed_dealing_deadline` boolean, required: Whether today's dealing cutoff has passed.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, required: Name of the issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `issuer_credit_rating` string, required: Issuer credit rating.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `portfolio_manager` string, nullable, required: Name of the portfolio manager.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `provider` string, nullable, required: Provider of the instrument.
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `risk_profile` string, nullable, required: Risk profile.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `share_class` string, nullable, required: Share class.
        - `strategy` string, nullable, required: Investment strategy.
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, nullable: Ticker symbol of the security.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
      - ETF
        - `about` string, nullable: Summary of the instrument.
        - `asset_class` AssetClassAllocation[], nullable: How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.
          - `asset_class` 'equity' | 'fixed_income' | 'cash' | 'alternatives' | 'uninvested', required
          - `weight` string, required: Share of the instrument sitting in this class.
        - `currency_sentence` string, nullable, required: Plain-language description of the fund's currency risk.
        - `decimal_precision` integer, required: Decimal places used by the trading increment.
        - `display_name` string, nullable, required: Short card headline derived from the legal name with share-class tokens removed.
        - `distribution_frequency` 'annual' | 'semi_annual' | 'quarterly' | 'monthly', required
        - `distribution_policy` 'accumulating' | 'distributing', required
        - `enforce_trading_rules` boolean, required: Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.
        - `exchange` string, nullable: MIC of the listing venue.
        - `expense_ratio` string, nullable, required: Annual expense ratio as a fraction of assets.
        - `fund_base_currency` 'EUR' | 'USD' | 'GBP', required
        - `fund_category` string, nullable, required: Fund category.
        - `fund_domicile` string, nullable, required: ISO 3166-1 alpha-2 domicile country code.
        - `fund_management` string, nullable, required: Legal company that manages the fund.
        - `headline` string, nullable, required: One-line "what do I own" summary shown on the holding card.
        - `hedge_currency` 'EUR' | 'USD' | 'GBP', required
        - `icon_url` string, nullable: Public CDN URL of the instrument's icon.
        - `id` string, required: Unique resource identifier.
        - `initial_issue_date` string, date, nullable, required: Fund inception date.
        - `instrument_type` 'etf', required: Instrument type.
        - `isin` string, required: International Securities Identification Number.
        - `issuer` string, nullable, required: Brand-level name of the fund issuer.
        - `issuer_country` string, nullable, required: ISO 3166-1 alpha-2 country code of the issuer.
        - `minimum_initial_cash_investment` string, required: Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.
        - `minimum_trading_quantity` string, required: Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.
        - `name` string, required: Display name of the instrument.
        - `net_assets` string, nullable: Total net asset value of the fund.
        - `price_type` 'percent' | 'money', required
        - `pro_traders_only` boolean, required: Whether the instrument is restricted to professional investors.
        - `replication_method` 'physical' | 'sampling' | 'synthetic', required
        - `required_cash_increment` integer, required: Deprecated: no longer enforced, always zero.
        - `rhp_years` integer, nullable, required: Recommended holding period in years from the PRIIPs KID.
        - `rollout_stage` 'ga' | 'beta' | 'provisional' | 'restricted', required
        - `sri` 1 | 2 | 3 | 4 | 5 | 6 | 7, required
        - `symbol` string, required: Market identifier, such as an ISIN or currency pair.
        - `target_client_categories` ClientCategory[], required: MiFID II client categories this instrument is intended for.
        - `ticker` string, required: Ticker symbol of the ETF listing.
        - `tracking_index` string, nullable, required: Index tracked by the fund.
        - `trading_configuration` TradingConfiguration, required: The order rules of an instrument, split by side.
          - `buy` BuyTradingConfiguration, required: How a buy may be sized and the minimums it must meet. A null minimum is not applied.
            - `min_cash_amount` string, nullable, required: Cash every buy must invest, in the trading currency, excluding fees.
            - `min_initial_cash_amount` string, nullable, required: Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.
            - `min_initial_quantity` string, nullable, required: Units a first buy must buy, on top of `min_quantity`.
            - `min_quantity` string, nullable, required: Units every buy must buy.
            - `modes` OrderMode[], required: How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).
          - `sell` SellTradingConfiguration, required: How a sell may be sized and the minimums it must meet. A null minimum is not applied, and a sell of the whole position is never blocked by one.
            - `min_cash_amount` string, nullable, required: Cash every sell must raise, in the trading currency, before fees.
            - `min_quantity` string, nullable, required: Units every sell must sell.
            - `modes` OrderMode[], required: How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).
        - `trading_currency` 'EUR' | 'USD' | 'GBP', required
        - `trading_increment` string, required: Smallest quantity increment accepted for orders.
        - `trading_status` 'buy_sell' | 'buy_only' | 'sell_only' | 'not_trading', required
    - `is_binding` boolean, required: Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.
    - `is_placeable` boolean, required: Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.
    - `order_type` 'market' | 'limit', required
- … truncated; see the full OpenAPI document linked below

## Other responses

- `400`: Bad Request

## Changes

- **2026-10-29** `6a63920239d8`: 75 breaking, 91 warning, 140 info
  - removed `subschema #1` from the `cash_amount` request property `anyOf` list
  - removed `subschema #1` from the `limit_price` request property `anyOf` list
  - removed `subschema #1` from the `quantity` request property `anyOf` list
  - request property `side` was restricted to a list of enum values
  - …302 more
- **2026-10-27** `b4b87fc2006c`: 1 breaking, 1 warning, 10 info
  - added the new required request property `instrument`
  - removed the request property `instrument_id`
  - added the required property `oneOf[subschema #10: SellQuote]/expires_in` to the response with the `200` status
  - added the required property `oneOf[subschema #1: EtfMarketCashQuote]/expires_in` to the response with the `200` status
  - …8 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/joinsophic/apis/sophic-engine-api/changes/accounts/:account_id/order-quotes/post.md)

---

[API](https://skmtc.dev/joinsophic/apis/sophic-engine-api.md) - [All operations](https://skmtc.dev/joinsophic/apis/sophic-engine-api/llms.txt) - [OpenAPI document](https://skmtc.dev/joinsophic/apis/sophic-engine-api/revisions/1afda7d8d185?raw)
