{"_id":"@anakin-io/sdk","name":"@anakin-io/sdk","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@anakin-io/sdk","version":"0.1.0","description":"Official Node.js / TypeScript SDK for Anakin (anakin.io) — web scraping, crawling, search, and Wire actions.","license":"Apache-2.0","homepage":"https://anakin.io","repository":{"type":"git","url":"git+https://github.com/Anakin-Inc/anakin-node.git"},"bugs":{"url":"https://github.com/Anakin-Inc/anakin-node/issues"},"keywords":["anakin","scraping","web-scraper","crawler","search","sdk"],"engines":{"node":">=18"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint .","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.build.json","test":"vitest run","test:watch":"vitest","format":"prettier --write .","prepublishOnly":"npm run lint && npm run typecheck && npm run test && npm run build"},"devDependencies":{"@types/node":"^20.11.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","eslint":"^9.0.0","msw":"^2.4.0","prettier":"^3.3.0","tsup":"^8.2.0","typescript":"^5.5.0","typescript-eslint":"^8.0.0","vitest":"^2.0.0"},"gitHead":"5dffa5143ef12f5d334c1e18dd22e5c7d68d3b8a","_id":"@anakin-io/sdk@0.1.0","_nodeVersion":"25.2.1","_npmVersion":"11.7.0","dist":{"integrity":"sha512-DZx8gv1xaJFSWbA2A/v5epSw409rSIg0/DT07sWPEZFWSWGhraUD1vg3nA3mH2IG9YJiiuAJFFpzrWAGWIZRxw==","shasum":"91f84c7a8d3023a223dce76f2b5fd6747142b8de","tarball":"https://registry.npmjs.org/@anakin-io/sdk/-/sdk-0.1.0.tgz","fileCount":9,"unpackedSize":214251,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDmkKDQaKWe42kJCAre5PuAkxeHc5GfxLrZNovRH1+47AIgbkw2u+b0kN0hruW0lWw1v8Pii8lIhE5Bj3NSBgPrNPc="}]},"_npmUser":{"name":"arun-anakin","email":"arun.singh@anakin.company"},"directories":{},"maintainers":[{"name":"anakin-organization-inc","email":"technology@anakin.company"},{"name":"arun-anakin","email":"arun.singh@anakin.company"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.1.0_1777361381818_0.08648957484692743"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-28T07:29:41.723Z","0.1.0":"2026-04-28T07:29:41.954Z","modified":"2026-04-28T07:29:42.545Z"},"maintainers":[{"name":"anakin-organization-inc","email":"technology@anakin.company"},{"name":"arun-anakin","email":"arun.singh@anakin.company"}],"description":"Official Node.js / TypeScript SDK for Anakin (anakin.io) — web scraping, crawling, search, and Wire actions.","homepage":"https://anakin.io","keywords":["anakin","scraping","web-scraper","crawler","search","sdk"],"repository":{"type":"git","url":"git+https://github.com/Anakin-Inc/anakin-node.git"},"bugs":{"url":"https://github.com/Anakin-Inc/anakin-node/issues"},"license":"Apache-2.0","readme":"# @anakin-io/sdk\n\n[![Node](https://img.shields.io/badge/node-%E2%89%A518-brightgreen.svg)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6.svg)](https://www.typescriptlang.org)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)\n![Status](https://img.shields.io/badge/status-alpha-orange.svg)\n\nOfficial Node.js / TypeScript SDK for [Anakin](https://anakin.io) — web scraping, crawling, search, and Wire actions.\n\n> **Status: alpha (v0.1.x).** Public API may change between minor versions until v1.0.\n\n## Install\n\n```bash\nnpm install @anakin-io/sdk\n# or\npnpm add @anakin-io/sdk\n# or\nyarn add @anakin-io/sdk\n```\n\n## Quickstart\n\n```typescript\nimport { Anakin } from '@anakin-io/sdk'\n\nconst client = new Anakin({ apiKey: 'ak-...' })  // or set ANAKIN_API_KEY env var\n\n// Scrape a single URL\nconst doc = await client.scrape('https://example.com', { formats: ['markdown'] })\nconsole.log(doc.markdown)\n\n// Discover URLs on a site\nconst sitemap = await client.map('https://example.com', { limit: 200 })\nconsole.log(sitemap.links)\n\n// Crawl pages and get content\nconst crawl = await client.crawl('https://example.com', { maxPages: 20 })\nfor (const page of crawl.pages) {\n  console.log(page.url, page.markdown?.length ?? 0)\n}\n```\n\nThe SDK polls long-running jobs internally — you get the final result back from a single `await`. No job IDs to manage.\n\n## Configuration\n\n```typescript\nconst client = new Anakin({\n  apiKey: 'ak-...',          // or ANAKIN_API_KEY env var\n  timeoutMs: 60_000,         // per-request HTTP timeout\n  maxRetries: 4,             // retries on 429/5xx\n  pollIntervalMs: 1_000,     // initial polling delay\n  pollMaxIntervalMs: 10_000, // max polling delay\n  pollTimeoutMs: 300_000,    // total wait before JobTimeoutError\n})\n```\n\n## Errors\n\n```typescript\nimport {\n  AnakinError,                // base for everything below\n  AuthenticationError,        // bad/missing API key\n  InsufficientCreditsError,   // 402 (exposes .balance, .required)\n  InvalidRequestError,        // 400\n  JobFailedError,             // job came back with status=\"failed\"\n  JobTimeoutError,            // pollTimeoutMs exceeded\n  RateLimitError,             // 429 (exposes .retryAfter)\n  ServerError,                // 5xx after retries\n  NetworkError,               // DNS/connection/timeout\n  WireAuthRequiredError,      // wire action needs account connection (.connectUrl)\n} from '@anakin-io/sdk'\n```\n\n## Methods\n\n| Method | Returns |\n|---|---|\n| `client.scrape(url, opts)` | `Promise<Document>` |\n| `client.map(url, opts)` | `Promise<MapResult>` |\n| `client.crawl(url, opts)` | `Promise<CrawlResult>` |\n| `client.search(prompt, opts)` | `Promise<SearchResult>` (sync API) |\n| `client.agenticSearch(prompt, opts)` | `Promise<AgenticSearchResult>` |\n| `client.wire(actionId, params, opts)` | `Promise<WireResult>` |\n| `client.sessions.list(opts)` | `Promise<BrowserSession[]>` |\n| `client.sessions.create(opts)` | `Promise<BrowserSessionHandle>` |\n| `client.sessions.save(instanceId)` | `Promise<BrowserSession>` |\n| `client.sessions.update(id, { name })` | `Promise<BrowserSession>` |\n| `client.sessions.delete(id)` | `Promise<void>` |\n| `client.countries()` | `Country[]` (static, no network call) |\n\n## Development\n\n```bash\nnpm install\nnpm run typecheck\nnpm run lint\nnpm run test\nnpm run build\n```\n\n## License\n\nApache 2.0. See [LICENSE](LICENSE).\n","readmeFilename":"README.md","_rev":"1-0d6c50a7f50d1f4f18486db7ac365e24"}