Table of Contents

Class DatasetRange

Namespace
DatabentoDotNet.Historical
Assembly
DatabentoDotNet.Historical.dll

The available range for a dataset.

public sealed record DatasetRange : IEquatable<DatasetRange>
Inheritance
DatasetRange
Implements
Inherited Members

Remarks

Port of upstream's DatasetRange (databento-rs/src/historical/metadata.rs:307-318). Returned by metadata.get_dataset_range: a top-level range covering every schema, plus the narrower range each individual schema actually has data for.

Properties

End

The exclusive UTC end timestamp of the available range.

public required Instant End { get; init; }

Property Value

Instant

Remarks

Exclusive was probed, not assumed (#46). A query ending one nanosecond past this instant is refused with HTTP 422 data_schema_not_fully_available, naming the bound it exceeded, while one ending exactly on it is accepted — so this is the first instant a query may not reach. ToDateTimeRange() hands it to Between(Instant, Instant) as an exclusive end, and that is correct. Had it instead named the last available instant, that conversion would have been silently excluding the final record.

For an active dataset this is a live ingest watermark, not a fixed boundary. It advances every few seconds and carries sub-second precision — one reading was 2026-08-28T07:37:47.468634000Z — so two calls moments apart legitimately disagree. Compare it against Start or use it as a bound; do not pin its value.

RangeBySchema

The available ranges for each available schema in the dataset.

[JsonPropertyName("schema")]
public required IReadOnlyDictionary<Schema, DateTimeRange> RangeBySchema { get; init; }

Property Value

IReadOnlyDictionary<Schema, DateTimeRange>

Remarks

schema on the wire (metadata.rs:316) even though the value is a map of many — the second, and last, of this endpoint group's two renames.

Start

The inclusive UTC start timestamp of the available range.

public required Instant Start { get; init; }

Property Value

Instant

Methods

ToDateTimeRange()

Narrows this range to just its top-level Start and End, discarding RangeBySchema.

public DateTimeRange ToDateTimeRange()

Returns

DateTimeRange

A DateTimeRange covering Start through End.

Remarks

Port of upstream's impl From<DatasetRange> for DateTimeRange (metadata.rs:320-324), which destructures DatasetRange and keeps only start and end. A conversion operator would let this happen implicitly at a call site that meant to keep the schema map; a named method makes the narrowing visible wherever it happens.