- Exa Agent for full tables and multi-cell tasks
=EXA(...)for one answer in one cell
Install
Install the add-on
Go to the Exa AI add-on in the Google Workspace Marketplace and click Install.
Add your API key
Get your API key from dashboard.exa.ai and paste it in the sidebar.
Exa Agent
Exa Agent is the easiest way to use Exa in Google Sheets. Use it when you want to:- generate a full table from one prompt
- fill missing cells in an existing table
- continue a table by adding new rows
- enrich a list with web data
Generate a table
Use Generate table when you want Exa to create a new table.- Open the sidebar.
- Go to Exa Agent.
- Choose Generate table.
- Write what you want.
- Click Generate table.
Fill cells
Use Fill cells when you already have a table and want Exa to fill missing data.- Select the blank cells in your sheet.
- Open Exa Agent.
- Choose Fill cells.
- Click Fill selected cells.
| Company | Website | CEO | Headquarters |
|---|---|---|---|
| Apple | https://apple.com | ||
| https://google.com | Sundar Pichai | Mountain View |
Continue rows
You can also select blank rows under a table. If your table ends at rank 55 and you select the next two blank rows, Exa can continue the table with rank 56 and rank 57. Exa uses the existing rows as examples, keeps the same columns, and avoids repeating items already in the table.=EXA(...)
Use =EXA(...) when you want one answer in one cell. It searches the web, reads the top results, and returns a concise answer.
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | What information you want (e.g., "Return only the CEO name"). |
context | No | Cell reference or text to enrich (e.g., a company name in A2). |
=EXA(...) for simple one-cell answers. Use Exa Agent when you want to create or fill a whole table.
=EXA_ANSWER(...)
Advanced AI answers with full control over output format. Use this when you need system prompts, structured JSON output, citations, or a specific search type.
| Parameter | Required | Default | Description |
|---|---|---|---|
prompt | Yes | — | The main question or prompt. |
prefix | No | "" | Text added before the prompt. |
suffix | No | "" | Text added after the prompt. |
includeCitations | No | FALSE | If TRUE, appends numbered source citations. |
systemPrompt | No | "" | System instructions to control output format (e.g., "only return a number"). |
outputSchema | No | "" | JSON schema for structured output. Generate schemas here. |
returnRawJson | No | FALSE | If TRUE and outputSchema is set, returns the full JSON instead of extracting the value. |
type | No | "deep" | Search type: "auto", "neural", "fast", or "deep". |
=EXA_SEARCH(...)
Searches the web and returns a vertical list of URLs. Supports domain filtering, category filtering, content highlights, and synthesized output via outputSchema.
| Parameter | Required | Default | Description |
|---|---|---|---|
query | Yes | — | The search query. |
numResults | No | 1 | Number of results (1–10). |
searchType | No | "auto" | "auto", "neural", or "keyword". |
prefix | No | "" | Text added before the query. |
suffix | No | "" | Text added after the query. |
includeDomainsStr | No | "" | Comma-separated domains to include (e.g., "linkedin.com,crunchbase.com"). |
excludeDomainsStr | No | "" | Comma-separated domains to exclude. |
category | No | "" | Filter by type: "company", "research paper", "news", "github", "personal site", "pdf", "financial report", "people". |
highlightsMaxChars | No | 0 | If > 0, requests content highlights with this character limit per result. |
outputSchemaJson | No | "" | JSON string for outputSchema (e.g., "{""type"":""text"",""description"":""summarize""}"). When set, returns synthesized output text instead of URLs. |
=EXA_CONTENTS(...)
Extracts the text content from a URL.
| Parameter | Required | Description |
|---|---|---|
url | Yes | The full URL (must start with http or https). |
=EXA_FINDSIMILAR(...)
Finds URLs similar to a reference URL, with optional domain and text filters.
| Parameter | Required | Default | Description |
|---|---|---|---|
url | Yes | — | The reference URL. |
numResults | No | 1 | Number of results (1–10). |
includeDomainsStr | No | "" | Comma-separated domains to include. |
excludeDomainsStr | No | "" | Comma-separated domains to exclude. |
includeTextStr | No | "" | Phrase that must appear in results. |
excludeTextStr | No | "" | Phrase that must not appear in results. |
Batch
Use Batch when you want to work with many Exa formula cells at once. Batch can:- refresh selected cells with Exa formulas
- convert selected Exa formulas into normal values
When to use what
| Task | Use |
|---|---|
| Create a full table from a prompt | Exa Agent → Generate table |
| Fill blank cells in a table | Exa Agent → Fill cells |
| Continue a table with new rows | Exa Agent → Fill cells |
| Get one value in one cell | =EXA(...) |
| Get an answer with system prompt or structured output | =EXA_ANSWER(...) |
| Search and get a list of URLs | =EXA_SEARCH(...) |
| Extract text from a URL | =EXA_CONTENTS(...) |
| Find pages similar to a URL | =EXA_FINDSIMILAR(...) |
| Refresh many Exa formulas | Batch |
| Save formula results as plain text | Batch → Convert to values |
Notes
- Exa API requests count against your usage quota. Use Batch → Convert to values to freeze results and stop formulas from recalculating.
- The add-on automatically retries up to 3 times with exponential backoff when rate limited (HTTP 429).
- Start with small batches (10–20 rows) before scaling to hundreds.