JSPM

  • Created
  • Published
  • Downloads 320292
  • Score
    100M100P100Q172671F
  • License MIT

Exa SDK for Node.js and the browser

Package Exports

  • exa-js
  • exa-js/package.json

Readme

Exa JavaScript SDK

npm version

The official JavaScript SDK for Exa, the web search API built for AI.

Documentation  |  Dashboard

Install

npm install exa-js

Quick Start

import Exa from "exa-js";

const exa = new Exa(process.env.EXA_API_KEY);

// Search the web
const result = await exa.search(
  "blog post about artificial intelligence",
  {
    type: "auto",
    contents: {
      text: true
    }
  }
);

// Find similar pages
const result = await exa.findSimilar(
  "https://paulgraham.com/greatwork.html",
  {
    contents: {
      text: true
    }
  }
);

// Get answers with citations
const { answer } = await exa.answer("What is the capital of France?");

Find webpages using natural language queries.

const result = await exa.search("interesting articles about space", {
  numResults: 10,
  includeDomains: ["nasa.gov", "space.com"],
  startPublishedDate: "2024-01-01",
  contents: {
    text: true
  }
});

Contents

Get clean text, highlights, or summaries from any URL.

const { results } = await exa.getContents(["https://openai.com/research"], {
  text: true,
  highlights: true,
  summary: true,
});

Find Similar

Discover pages similar to a given URL.

const result = await exa.findSimilar(
  "https://paulgraham.com/greatwork.html",
  {
    numResults: 10,
    excludeSourceDomain: true,
    contents: {
      text: true
    }
  }
);

Answer

const response = await exa.answer("What caused the 2008 financial crisis?");
console.log(response.answer);
for await (const chunk of exa.streamAnswer("Explain quantum computing")) {
  if (chunk.content) {
    process.stdout.write(chunk.content);
  }
}

Research

Run autonomous research tasks that return structured data.

const { researchId } = await exa.research.create({
  instructions: "Find the top 5 AI startups founded in 2024",
  outputSchema: {
    type: "object",
    properties: {
      startups: { type: "array", items: { type: "string" } },
    },
  },
});

const result = await exa.research.pollUntilFinished(researchId);

TypeScript

Full TypeScript support with types for all methods.

import Exa from "exa-js";
import type { SearchResponse, RegularSearchOptions } from "exa-js";

Contributing

Pull requests welcome! For major changes, open an issue first.

License

MIT