SDKs
TypeScript SDK
Official TypeScript/JavaScript client for the Essence API
The Essence TypeScript SDK provides a typed client with zero dependencies (uses native fetch).
Installation
npm install essence-sdkOr install from source:
cd sdks/typescript
npm install && npm run buildQuick Start
import { EssenceClient } from "essence-sdk";
const client = new EssenceClient("http://localhost:8080");
const result = await client.scrape("https://example.com");
console.log(result.data.markdown);Client Reference
new EssenceClient(baseUrl?)
| Parameter | Type | Default | Description |
|---|---|---|---|
baseUrl | string | "http://localhost:8080" | Essence server URL |
client.scrape(url, options?)
const result = await client.scrape("https://example.com", {
formats: ["markdown", "links"],
engine: "auto",
onlyMainContent: true,
timeout: 30000,
});client.crawl(url, options?)
const result = await client.crawl("https://docs.example.com", {
maxDepth: 3,
limit: 50,
includePaths: ["/docs/*"],
});client.map(url, options?)
const result = await client.map("https://example.com", {
limit: 1000,
});client.search(query, options?)
const result = await client.search("rust web scraping", {
limit: 5,
scrapeResults: true,
});client.extract(urls, options?)
// CSS extraction
const result = await client.extract(
["https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"],
{
mode: "css",
selectors: { title: "h1", price: "p.price_color" },
schema: {
properties: {
title: { type: "string" },
price: { type: "number" },
},
},
}
);
// LLM extraction
const result = await client.extract(["https://example.com/about"], {
mode: "llm",
prompt: "Extract company info",
llmBaseUrl: "https://api.openai.com",
llmModel: "gpt-4o-mini",
llmApiKey: "sk-...",
});client.llmstxt(url, options?)
const result = await client.llmstxt("https://docs.example.com", {
maxUrls: 50,
});Type Definitions
The SDK exports TypeScript interfaces for all option types:
ScrapeOptionsCrawlOptionsMapOptionsSearchOptionsExtractOptionsLlmsTxtOptions