Node.js SDK
Official Node.js / TypeScript SDK for Anakin (anakin.io)
Official Node.js / TypeScript SDK for the Anakin API. Wraps every documented endpoint with a single async call, full TypeScript types, and built-in polling.
| Status | Alpha (v0.1.x) |
| Runtime | Node.js 18+ |
| Package | @anakin-io/sdk on npm |
| Source | github.com/Anakin-Inc/anakin-node |
| Bundle | ESM + CJS, ~28 KB |
| License | Apache 2.0 |
Install
npm install @anakin-io/sdk
# or
pnpm add @anakin-io/sdk
# or
yarn add @anakin-io/sdkQuickstart
import { Anakin } from '@anakin-io/sdk'
const client = new Anakin({ apiKey: 'ak-...' }) // or set ANAKIN_API_KEY env var
// Scrape a single URL — returns the final result, no polling required
const doc = await client.scrape('https://example.com', { formats: ['markdown'] })
console.log(doc.markdown)
// Discover URLs on a site
const sitemap = await client.map('https://example.com', { limit: 200 })
console.log(sitemap.links)
// Crawl pages and get content for each
const crawl = await client.crawl('https://example.com', { maxPages: 20 })
for (const page of crawl.pages) {
console.log(page.url, page.markdown?.length ?? 0)
}What's in v0.1
| Method | Returns |
|---|---|
client.scrape(url, opts) | Promise<Document> |
client.map(url, opts) | Promise<MapResult> |
client.crawl(url, opts) | Promise<CrawlResult> |
client.search(prompt, opts) | Promise<SearchResult> (synchronous API) |
client.agenticSearch(prompt, opts) | Promise<AgenticSearchResult> |
client.wire(actionId, params, opts) | Promise<WireResult> (run a Wire action) |
client.sessions.list / .create / .save / .update / .delete | Browser session CRUD |
client.countries() | Country[] (static, bundled with the SDK) |
Configuration
const client = new Anakin({
apiKey: 'ak-...', // or ANAKIN_API_KEY env var
timeoutMs: 60_000, // per-request HTTP timeout
maxRetries: 4, // retries on 429 / 5xx
pollIntervalMs: 1_000, // initial polling delay
pollMaxIntervalMs: 10_000, // cap on exponential backoff
pollTimeoutMs: 300_000, // total wait before JobTimeoutError
})Errors
import {
AnakinError, // base for everything below
AuthenticationError, // bad/missing API key
InsufficientCreditsError, // 402 — exposes .balance, .required
InvalidRequestError, // 400
JobFailedError, // job came back with status="failed"
JobTimeoutError, // pollTimeoutMs exceeded
RateLimitError, // 429 — exposes .retryAfter
ServerError, // 5xx after retries
NetworkError, // DNS / connection / timeout
WireAuthRequiredError, // Wire action needs account connection (.connectUrl)
} from '@anakin-io/sdk'Examples
The examples/ folder has copy-paste-able scripts:
quickstart.mjs— scrape, map, crawl, search, wire — five recipesagentic-extraction.mjs— multi-stage AI search with a custom JSON schema
Stability
v0.1.x is alpha. The public API may change between minor versions until v1.0. Pin a specific version in production:
{
"dependencies": {
"@anakin-io/sdk": "0.1.0"
}
}Raise issues on GitHub.