About our data formats
Formats
All Precip endpoints offer three different user selectable data formats:
geojson: As close to a standard geospatial format as it gets. Will work with many mapping tools.csv: Open with the data tool of your choice - Excel, Sheets, Pandas, and more.json: "Table style json" is our best effort to make a format easy to use in a table style interface.
Time labels
Understanding time intervals can sometimes be a challenge when dealing with weather data. Precip uses a consistant pattern in order to simplify working with data provided by our API.
Precip endpoints always return a startTime label in ISO 8601 extended format (YYYY-MM-DDTHH:mm:ss.sssZ).
Hourly values are startTime to startTime + 1 hour. Daily data will always have a startTime aligned to 12:00:00Z with measurements aggregating data from startTime to startTime + 24 hours.
Units
Point-query endpoints (/api/v1/daily, /api/v3/{layerId}, /api/v1/hourly?band=…, Image Server getSamples, etc.) return numeric values in storage units by default (mm, °C, m/s). GeoJSON FeatureCollection responses carry the resolved display unit on each feature under features[].properties.unit (e.g. "celsius", "mm", "m/s", "percent", "degrees"). Per RFC 7946 we don't put this on the FeatureCollection itself.
Optional query parameters:
units=imperial|metric— convert returned values (and legend labels) to the matching display system. No-op for layers without an imperial alternative (wind speed, direction, percentages, irradiance, etc.).unit=…— explicit override:mm,inches,celsius,fahrenheit,mps,percent,ratio,degrees,pa,w/m²,kg/kg,days(overridesunits).
unit= must match the layer's physical quantity. Passing e.g. unit=fahrenheit to a wind-speed endpoint returns a 400 Bad Request rather than silently running °C→°F over m/s values.
Image Server legend defaults to imperial labels (°F, inches) and includes "unit" on each layer object alongside "legend".