VerveSheets adds one function to your spreadsheet. You install it once, connect it to your account once, and from then on any cell can pull a live value from the catalog — a rate, a temperature, a WHOIS record — using the same formula grammar you already know.
There is no key to paste into a cell, no script to write, and nothing to configure per file.
The formulas on this page work against your account as soon as the add-in is connected.
Install the add-in
Google Sheets and Excel each install from their own store, and the same account works in both.
| Spreadsheet | Where to install | Where it appears |
|---|---|---|
| Google Sheets | Google Workspace Marketplace | Extensions → VerveSheets → Open VerveSheets |
| Microsoft Excel | Microsoft AppSource | The VerveSheets button on the Home ribbon |
Installing attaches VerveSheets to your Google or Microsoft account, not to a single file, so every workbook you open afterwards already has it.
Connect your account
Open the sidebar and connect. Two ways in:
- Sign in — the ordinary consent screen. Recommended: nothing is stored in the file, and the connection refreshes itself.
- Paste a key — take your key from API keys and paste it into the sidebar. Useful on a locked-down account where the consent screen is blocked.
Either way the credential is stored by the add-in against your account, not in the workbook. It never appears in a cell, never travels in a shared link, and never lands in version history.
Formulas keep working for a collaborator, and the calls bill the owner's credits. If a collaborator wants their own billing, they install and connect on their own account.
Write your first formula
Every formula names three things: the source, its inputs, and the one value you want
back. That last part is "field", and it is what turns a whole record into a single number in
a single cell.
=VERVE("weatherforecast", "London", "field", "tempC")=VERVE.CALL("weatherforecast", "London", "field", "tempC")Pick your platform's tab above — the two names are the only difference between them, and the rest of these docs shows both the same way.
Inputs come in the order the source's reference page lists them, as plain values or cell references. Sources that need no input skip that zone entirely:
=VERVE("currencyconverter", 100, "USD", "EUR", "field", "convertedValue")
=VERVE("dnslookup", A2, "field", "records.SOA.nsname")
=VERVE("goldprice", "field", "gram")=VERVE.CALL("currencyconverter", 100, "USD", "EUR", "field", "convertedValue")
=VERVE.CALL("dnslookup", A2, "field", "records.SOA.nsname")
=VERVE.CALL("goldprice", "field", "gram")The three names
| Google Sheets | Excel | |
|---|---|---|
| Read a source | =VERVE(…) | =VERVE.CALL(…) |
| Read one field by path | =VERVEFIELD(…) | =VERVE.FIELD(…) |
| Convert a currency | =VERVEFX(…) | =VERVE.FX(…) |
Everything else — arguments, "field", ranges, errors, billing — is identical.
Options, and paths that nest
Anything optional uses the same "name", value shape, repeated — the grammar SUMIFS and
GETPIVOTDATA already use. "field" is one of these, which is why it sits at the end:
=VERVE("goldprice", "currency", "EUR", "field", "gram")=VERVE.CALL("goldprice", "currency", "EUR", "field", "gram")The name and the value are separate arguments on purpose. A name=value string would let
your own data decide where the argument ends — a base64 payload ends in = — so the boundary
comes from the source's schema instead, never from the content.
Where a response nests, the path uses dots. Every source's reference page lists the paths it returns — and plenty of responses are flat, so read the path rather than assume one:
=VERVE("binlookup", A2, "field", "issuer.name")
=VERVE("iplookup", A2, "field", "country")=VERVE.CALL("binlookup", A2, "field", "issuer.name")
=VERVE.CALL("iplookup", A2, "field", "country")iplookup is the useful counterexample: country, city and timezone sit at the top level,
not under a location. A path that isn't there still costs a credit before it tells you so.
Fill a whole column
Point the formula at a range and it resolves every row.
=VERVE("timezonelookup", A2:A9, "field", "timezone")=VERVE.CALL("timezonelookup", A2, "field", "timezone")In Google Sheets that is a single batched call that spills down the column — far faster and gentler on your credits than nine separate formulas. In Excel, write it against one cell and drag, or select the input column in the sidebar and use Values to fetch the whole selection in one pass.
The sidebar's Formula mode writes a live formula that recalculates. Values writes the answers as static cells — one batched request, no recalculation, no repeat charges. A fill over 50 rows asks you to confirm with a credit estimate first.
Because the formula returns an ordinary value, it composes with everything else:
=SUM(VERVE("goldprice", "field", "ounce"), B2)
=IF(VERVE("weatherforecast", "London", "field", "tempC") > 20, "Warm", "Cool")=SUM(VERVE.CALL("goldprice", "field", "ounce"), B2)
=IF(VERVE.CALL("weatherforecast", "London", "field", "tempC") > 20, "Warm", "Cool")Charts, pivots and conditional formatting read from those cells like any other.
When a cell goes wrong
Failures arrive as text in the cell, starting with #ERR, followed by the reason:
| Cell reads | What happened |
|---|---|
#ERR Connect first: Extensions ▸ VerveSheets | The add-in has no credential yet. Excel words it #ERR Not connected — connect in the VerveSheets pane. |
#ERR No field "tempc" | The path does not exist in the response — check the case and spelling. |
#ERR weatherforecast needs city | A required input is missing or points at a blank cell. |
#ERR No "zone" in agecalculator. Try: timezone, field | An option name the source does not have; the message lists the ones it does. |
#PREMIUM(riskScore) | The field exists but your plan does not include it. |
They are text rather than real spreadsheet errors because Excel cannot display a custom message
on an error value — a rejection shows as a bare #VALUE! with no reason at all. Text is the only
way to tell you what went wrong on both platforms. The trade-off: IFERROR() will not catch
these, so test the cell for a leading # if you are branching on failure.
Next
The complete function reference — every argument form, ranges, nesting and the two helper
functions — is in formulas. The sidebar covers browsing sources and
filling a selection without typing anything. All sources is the full catalog,
and each one's page lists its inputs and the paths you can pass to "field".