Skip to main content

Quotes

Retrieve quotes (bid, ask, last, greeks, etc.) for one or more option contracts by OCC symbol.

Making Requests

The options resource offers two quote methods:

  • quote(...) — a single contract, built with OptionsQuoteRequest.
  • quotes(...) — several contracts. Unlike stocks, options quotes fan out one request per symbol concurrently, so the result is a Map<String, OptionsQuotesResponse> keyed by OCC symbol (insertion order preserved).
OptionsQuotesResponse quote(OptionsQuoteRequest request)
CompletableFuture<OptionsQuotesResponse> quoteAsync(OptionsQuoteRequest request)

Map<String, OptionsQuotesResponse> quotes(OptionsQuotesRequest request)
CompletableFuture<Map<String, OptionsQuotesResponse>> quotesAsync(OptionsQuotesRequest request)

Request types

// Single contract
OptionsQuoteRequest.of(String optionSymbol)
OptionsQuoteRequest.builder(String optionSymbol)
.date(LocalDate date) // historical quote
.from(LocalDate from) // date range
.to(LocalDate to)
.countback(int n)
.build()

// Multiple contracts (fan-out)
OptionsQuotesRequest.of(String first, String... rest) // shortcut: symbols only
OptionsQuotesRequest.builder(String first, String... rest)
.addSymbol(String optionSymbol)
.date(LocalDate date)
.from(LocalDate from)
.to(LocalDate to)
.countback(int n)
.build()

Returns

OptionsQuotesResponse wraps List<OptionQuote>. See Chain for the full OptionQuote record (price fields plus greeks).

Examples

import com.marketdata.sdk.MarketDataClient;
import com.marketdata.sdk.options.OptionQuote;
import com.marketdata.sdk.options.OptionsQuoteRequest;
import com.marketdata.sdk.options.OptionsQuotesRequest;

try (MarketDataClient client = new MarketDataClient()) {

// Single contract.
OptionQuote q = client.options()
.quote(OptionsQuoteRequest.of("AAPL260116C00200000"))
.values().get(0);
System.out.println("last=" + q.last() + " iv=" + q.iv() + " delta=" + q.delta());

// Multiple contracts — one request each, keyed by symbol.
var quotes = client.options().quotes(
OptionsQuotesRequest.of("AAPL260116C00200000", "AAPL260116C00210000"));
quotes.forEach((sym, resp) ->
System.out.println(sym + " → " + resp.values().size() + " row(s)"));
}