Skip to main content

Expirations

Retrieve the list of expiration dates that have listed options for an underlying symbol.

Making Requests

Use GetExpirationsAsync on the Options resource.

Task<OptionsExpirationsResponse> GetExpirationsAsync(
string symbol, decimal? strike = null, DateOnly? date = null,
MarketDataRequestOptions? options = null, CancellationToken cancellationToken = default)
Task<OptionsExpirationsResponse> GetExpirationsAsync(OptionsExpirationsRequest request, ...)

OptionsExpirationsRequest

new OptionsExpirationsRequest(string symbol)
{
Strike = decimal, // only expirations that list this strike
Date = DateOnly // expirations available as of this historical date
}

Returns

OptionsExpirationsResponse wrapping IReadOnlyList<DateTimeOffset> — one entry per expiration date, in ascending order.

Examples

using MarketDataApp;

using var client = await MarketDataClient.CreateAsync();

var expirations = await client.Options.GetExpirationsAsync("AAPL");
Console.WriteLine($"{expirations.Values.Count} expirations; next: {expirations.Values[0]:yyyy-MM-dd}");

// Only expirations that list the 200 strike.
var atStrike = await client.Options.GetExpirationsAsync("AAPL", strike: 200m);

For CSV output, call client.Options.GetExpirationsCsvAsync(...) and read .Csv. See Settings.