v4

latestOpenAPI 3.1.0Proprietary2026-08-034715226.2 KB
features

Feature detail (lazy-loaded)

Fetches detailed properties for a feature on demand. For parking-type features (truck_parking, truck_rest_areas, rest_areas, service_plazas, parking) the response also carries availability_trend[] — the per-hour-of-day occupancy trend ({ hour, avg_available, avg_capacity, samples, low_samples }, hours in UTC) built from recorded live-occupancy history, so a client can answer "is this lot typically full at my ETA?". Empty/omitted until the time series has accumulated for that feature.

Some operators stop publishing a number once a lot is nearly full and report only "at or below this site's low threshold" instead. Those observations are counted in low_samples and are deliberately excluded from avg_available — there is no real number behind them, and substituting one (0, say) would assert the lot is full, a stronger claim than the operator made. avg_available is therefore an average over the counted samples only, and is omitted entirely for an hour whose every observation withheld its count.

Read the two together, and read them as counts of observations, not as time. Every bucket in this series is recorded on change, so a lot that sits at its low threshold for three hours contributes one low_samples while a lot whose count jitters contributes many. A non-zero low_samples therefore tells you the lot reaches its low threshold in that hour — not what fraction of the hour it spends there — and an hour with a comfortable avg_available and a non-zero low_samples is one you should not read as reliably roomy. samples is the honest confidence signal for the bucket either way.

low_samples only accumulates for feeds that publish this state at all (currently the MAASTO TPIMS states in North America), and only from when that capture began — a bucket can read low_samples: 0 because the lot never withheld a count, or because the trailing window still reaches back before the capture existed.

cache reports where the detail came from: hit (cached upstream detail), miss (fetched upstream on this request), poll (the source is enriched during polling, no on-demand fetch needed), none (no detail loader exists for this source/resource), error (an upstream fetch was attempted and failed) or error-cached (a recent failure is still being served from the negative cache — no upstream call was made, so retrying immediately will not help). Failures are remembered for a short cooldown, and repeated source-wide failures pause on-demand fetches for that source for a few minutes; both clear automatically.

get/features/{id}/details

Path parameters

idstring required

Response

Feature with full properties