Exa Hello World
Overview
Minimal working examples demonstrating all core Exa search operations: basic search, search with contents, find similar, and get contents. Each example is runnable standalone.
Prerequisites
exa-js SDK installed (npm install exa-js)
EXA_API_KEY environment variable set
- Node.js 18+ with ES module support
Instructions
Step 1: Basic Search (Metadata Only)
import Exa from "exa-js";
const exa = new Exa(process.env.EXA_API_KEY);
// Basic search returns URLs, titles, and scores — no page content
const results = await exa.search("best practices for building RAG pipelines", {
type: "auto", // auto | neural | keyword | fast | instant
numResults: 5,
});
for (const r of results.results) {
console.log(`[${r.score.toFixed(2)}] ${r.title}`);
console.log(` ${r.url}`);
}
Step 2: Search with Contents
// searchAndContents returns text, highlights, and/or summary with each result
const results = await exa.searchAndContents(
"how transformers work in large language models",
{
type: "neural",
numResults: 3,
text: { maxCharacters: 1000 },
highlights: { maxCharacters: 500, query: "attention mechanism" },
summary: { query: "explain transformers simply" },
}
);
for (const r of results.results) {
console.log(`## ${r.title}`);
console.log(`URL: ${r.url}`);
console.log(`Summary: ${r.summary}`);
console.log(`Text preview: ${r.text?.substring(0, 200)}...`);
console.log(`Highlights: ${r.highlights?.join(" | ")}`);
console.log();
}