# Exa on boxd

> Exa focuses on data extraction and search, helping teams gather, analyze, and visualize information from websites, APIs, or internal databases.

- Page: https://boxd.sh/integrations/exa/
- CLI: `run exa` (18 commands, 13 marked common)
- SDK: `import { exa } from "@boxd/run"`; every parameter and response type is at `@boxd/run/exa`
- Triggers: none
- Connect: `run auth exa` (API key), or https://app.boxd.sh/integrations/detail/exa
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth exa      # once: prints a link to connect your account
run exa           # list its commands
run exa list-events
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, exa } from "@boxd/run";

every("1 hour", async () => {
  const result = await exa.listEvents({});
  console.log(result);
});
```

Run it with `run exa.run.ts`. Exa has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run exa <command> --help` lists the optional ones. "common" marks what `run exa` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `answer` ·common | `exa.answer()` | `--query` | 3 | Generates a direct, citation-backed answer to a clear natural language question or topic using Exa's search, adept at both specific answers and detailed summaries for open-ended queries |
| `create-import` ·common | `exa.createImport()` | `--entity` `--format` | 5 | Create a new import to upload data into a Webset |
| `create-monitor` ·common | `exa.createMonitor()` | `--behavior` `--cadence` `--websetId` | 1 | Create a new Monitor |
| `create-research` ·common | `exa.createResearch()` | `--instructions` | 2 | Creates an asynchronous research task that explores the web, gathers sources, synthesizes findings, and returns results with citations |
| `create-webset` ·common | `exa.createWebset()` | `--search` | 4 | Create a new Webset with search, import, and enrichment setup |
| `delete-import` | `exa.deleteImport()` | `--id` | 0 | Delete an existing import |
| `delete-webset` ·common | `exa.deleteWebset()` | `--id` | 0 | Delete a Webset |
| `find-similar` ·deprecated | `exa.findSimilar()` | `--url` | 4 | /findSimilar is a legacy endpoint and is no longer recommended for new integrations |
| `get-api-key` ·common | `exa.getApiKey()` | `--apiKeyId` | 0 | Retrieve details of a specific API key by its ID |
| `get-contents-action` ·common | `exa.getContentsAction()` | — | 10 | Retrieve text / highlights / summary / subpages from URLs |
| `get-event` | `exa.getEvent()` | `--id` | 0 | Get details of a specific event by its ID |
| `get-research` ·common | `exa.getResearch()` | `--researchId` | 2 | Retrieve the status and results of a previously created research task |
| `list-events` ·common | `exa.listEvents()` | — | 5 | List all events that have occurred in the system |
| `list-imports` ·common | `exa.listImports()` | — | 2 | List all imports for the Webset |
| `list-research` ·common | `exa.listResearch()` | — | 2 | Retrieve a paginated list of your research tasks |
| `list-webhooks` | `exa.listWebhooks()` | — | 2 | List all webhooks for Websets |
| `search` ·common | `exa.search()` | `--query` | 16 | Web search via the Exa engine |
| `update-import` | `exa.updateImport()` | `--id` | 2 | Update an import configuration by ID |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
