@anakin-io/sdk

Official Node.js / TypeScript SDK for Anakin — web scraping, crawling, search, and Wire actions.
Status: alpha (v0.1.x). Public API may change between minor versions until v1.0.
Install
npm install @anakin-io/sdk
pnpm add @anakin-io/sdk
yarn add @anakin-io/sdk
Quickstart
import { Anakin } from '@anakin-io/sdk'
const client = new Anakin({ apiKey: 'ak-...' })
const doc = await client.scrape('https://example.com', { formats: ['markdown'] })
console.log(doc.markdown)
const sitemap = await client.map('https://example.com', { limit: 200 })
console.log(sitemap.links)
const crawl = await client.crawl('https://example.com', { maxPages: 20 })
for (const page of crawl.pages) {
console.log(page.url, page.markdown?.length ?? 0)
}
The SDK polls long-running jobs internally — you get the final result back from a single await. No job IDs to manage.
Configuration
const client = new Anakin({
apiKey: 'ak-...',
timeoutMs: 60_000,
maxRetries: 4,
pollIntervalMs: 1_000,
pollMaxIntervalMs: 10_000,
pollTimeoutMs: 300_000,
})
Errors
import {
AnakinError,
AuthenticationError,
InsufficientCreditsError,
InvalidRequestError,
JobFailedError,
JobTimeoutError,
RateLimitError,
ServerError,
NetworkError,
WireAuthRequiredError,
} from '@anakin-io/sdk'
Methods
client.scrape(url, opts) | Promise<Document> |
client.map(url, opts) | Promise<MapResult> |
client.crawl(url, opts) | Promise<CrawlResult> |
client.search(prompt, opts) | Promise<SearchResult> (sync API) |
client.agenticSearch(prompt, opts) | Promise<AgenticSearchResult> |
client.wire(actionId, params, opts) | Promise<WireResult> |
client.sessions.list(opts) | Promise<BrowserSession[]> |
client.sessions.create(opts) | Promise<BrowserSessionHandle> |
client.sessions.save(instanceId) | Promise<BrowserSession> |
client.sessions.update(id, { name }) | Promise<BrowserSession> |
client.sessions.delete(id) | Promise<void> |
client.countries() | Country[] (static, no network call) |
Development
npm install
npm run typecheck
npm run lint
npm run test
npm run build
License
Apache 2.0. See LICENSE.