Get the sun's angle from a cell. Returns altitude and azimuth for any place and time — Sheets or Excel.
It's one of 250+ live sources you reach with a single =VERVE() function — served from APIVerve's production data engine, billed at 1 credit per resolved cell, and refreshed on whatever cadence you set. No API keys to wrangle, no scripts, no exports.
A real example — the input you type, and the values you can pull from it. Click any cell to see the formula behind it.
Fill =VERVE("sunposition", 37.7749, -122.4194, "field", "date") down a column and Sun Position returns a result for every row — a batch of live values in a single drag, no code.
Add Sun Position beside a table you already have to append its output right where your data lives, then sort, filter, or chart on it.
Set the sheet to refresh on a schedule and the sun position values keep themselves current without anyone re-typing.
The same function works in both apps — install once, sign in with your key, and type it into any cell.
Install from the Workspace Marketplace, then drop the formula into a cell. Autocomplete suggests the source and its fields.
=VERVE("sunposition", 37.7749, -122.4194, "field", "date")Same source, same arguments, same key — in Excel on desktop, the web, or mobile. Excel namespaces it as VERVE.CALL. Drag to fill a whole column.
=VERVE.CALL("sunposition", 37.7749, -122.4194, "field", "date")Tune the result by adding name=value before the field argument — in any order. Leave one out and its default applies.
The date to get the sun position data for (MM-DD-YYYY)
=VERVE("sunposition", 37.7749, -122.4194, "date", "01-16-2026")The time of day for the calculation (HH:mm format, 24-hour), read in the timezone of the coordinates. Defaults to 00:00 if not provided
=VERVE("sunposition", 37.7749, -122.4194, "time", "14:30")IANA timezone to read the date and time in, such as America/Los_Angeles. Defaults to the timezone of the coordinates
=VERVE("sunposition", 37.7749, -122.4194, "timezone", "America/Los_Angeles")Add a field name as the last argument to land just that value in the cell.
=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.altitude")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.azimuth")=VERVE("sunposition", 37.7749, -122.4194, "field", "coordinates")=VERVE("sunposition", 37.7749, -122.4194, "field", "coordinates.latitude")=VERVE("sunposition", 37.7749, -122.4194, "field", "coordinates.longitude")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun")=VERVE("sunposition", 37.7749, -122.4194, "field", "timestampUTC")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.altitudeDegrees")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.azimuthDegrees")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.compassBearing")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.isDaylight")=VERVE("sunposition", 37.7749, -122.4194, "field", "sun.declination")Premium marks data included on paid plans. On the Free plan a marked field is withheld and a marked input is ignored — either way the cell reads #PREMIUM(name) instead of a value, so a gated answer can never be mistaken for a real one. Everything unmarked works on every plan. Compare plans
Everything you need to wire it into a sheet.