Redact PII by the row. Masks emails, phones and card numbers in a cell — Sheets or Excel, no code.
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("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "masked") beside messy text and get the normalized, analyzed, or translated version back — data cleaning without leaving the grid.
Score or classify a whole column of responses, reviews, or messages in one fill instead of one-by-one.
Nest Mask Sensitive Data's output inside your existing SUM, IF, or CONCAT logic like any other cell value.
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("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "masked")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("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "masked")Tune the result by adding name=value before the field argument — in any order. Leave one out and its default applies.
Array of data types to mask (default: all types)
=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "types", "[""email"",""phone"",""ssn"",""credit_card"",""ip_address"",""url"",""date""]")Add a field name as the last argument to land just that value in the cell.
=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "masked")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.email")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.phone")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.ssn")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.credit_card")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.ip_address")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.url")=VERVE("datamasking", "Contact John Doe at [email protected] or call 555-123-4567. His SSN is 123-45-6789.", "field", "detected.date")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.