Skip to content

The blend and the departure states for a local day

GET
/conditions/{date}
curl --request GET \
--url https://quikstik-core.fly.dev/conditions/2026-04-15 \
--header 'Authorization: Bearer <token>' \
--header 'x-tenant-id: 2489E9AD-2EE2-8E00-8EC9-32D5F69181C0'

Per point: the blend for that local date computed from the latest pull of each source, and the state of every scheduled departure that day placed at the point. A pure read — it fetches nothing from any provider. Session, or an operator key scoped conditions.read.

date
required
string format: date

Local civil date, YYYY-MM-DD.

x-tenant-id
required
string format: uuid

Tenant identifier (UUID).

Authn/authz semantics are intentionally TBD for this contract slice; this header exists to keep the contract explicitly multi-tenant from day 0.

point
string format: uuid

Narrow to one point (its id). Absent = every declared point.

The day.

Media typeapplication/json
object
date
required
string format: date
points
required
Array<object>
object
point
required
object
id
required
string format: uuid
name
required
string
lat
required
number
>= -90 <= 90
lon
required
number
>= -180 <= 180
tz
required

IANA zone

string
blend
required
object
hours
required
Array<object>
object
hour
required

Local hour at the point.

integer
<= 23
pop

Median chance of precipitation, percent.

number
nullable
precip_in
number
nullable
temp_f

Mean across sources.

number
nullable
feels_f
number
nullable
wind_lo

Lowest source wind, mph.

number
nullable
wind_hi

Highest source wind, mph.

number
nullable
gust_mph

Median across sources.

number
nullable
thunder

True if any source says so.

boolean
nullable
vis_mi
number
nullable
wave_ft
number
nullable
uv
number
nullable
spread_pop

Max − min POP across sources.

number
nullable
spread_temp_f
number
nullable
sources
required
Array<string>
Allowed values: nws openmeteo_nbm openmeteo_ecmwf openmeteo_meteoblue accuweather
confidence
required

low when fewer than two sources contributed to the hour.

string
Allowed values: low normal
pulls
required
Array<object>
object
source
required

A declared weather source. openmeteo_meteoblue and accuweather are declared but have no adapter yet; they never appear in a pull.

string
Allowed values: nws openmeteo_nbm openmeteo_ecmwf openmeteo_meteoblue accuweather
pull_id
required
string format: uuid
retrieved_at_ms
required
integer format: int64
missing_sources
required

Free sources with no pull for this date — the blend says what it lacks.

Array<string>
Allowed values: nws openmeteo_nbm openmeteo_ecmwf openmeteo_meteoblue accuweather
blend_at_ms
integer format: int64
nullable
departures
required
Array<object>
object
departure_id
required
string format: uuid
variant_id
required
string format: uuid
start_time
required

RFC 3339 UTC.

string
duration_minutes
integer
nullable
meeting_point_name
string
nullable
state

Null = not scored. Never an invented ride.

string
Allowed values: ride watch guest_may_cancel operator_call
rule_id
string format: uuid
nullable
rule_name
string
nullable
fired_hours
required
Array<integer>
blend_at_ms
integer format: int64
nullable
scored_at_ms
integer format: int64
nullable

Example

{
"points": [
{
"point": {
"tz": "America/New_York"
},
"blend": {
"hours": [
{
"sources": [
"nws"
],
"confidence": "low"
}
],
"pulls": [
{
"source": "nws"
}
],
"missing_sources": [
"nws"
]
},
"departures": [
{
"state": "ride"
}
]
}
]
}

Missing or invalid session bearer token

Media typeapplication/json
object
reason
required

Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).

string

Example

{
"reason": "sold_out"
}

The session’s effect authority does not cover this operation

Media typeapplication/json
object
reason
required

Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).

string

Example

{
"reason": "sold_out"
}

point_not_found.

invalid_date or invalid_point.

No durable backend is wired for this operation (fail-closed)

Media typeapplication/json
object
reason
required

Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).

string

Example

{
"reason": "sold_out"
}