Octivas Docs
SDKs

JavaScript SDK

Install and use the official Octivas JavaScript/TypeScript SDK for web extraction, crawling, and search.

The official JavaScript/TypeScript SDK provides a convenient interface for all Octivas API endpoints. Works with Node.js, Deno, and Bun.

Installation

npm install octivas

Quick Start

import Octivas from 'octivas';

const client = new Octivas('your_api_key');

Scrape a Page

Extract content from any webpage:

const result = await client.extract({
  url: 'https://example.com',
  formats: ['markdown', 'html']
});

console.log(result.markdown);
console.log(result.metadata.title);

Crawl a Website

Recursively crawl and collect content:

const result = await client.crawl({
  startUrl: 'https://docs.example.com',
  maxPages: 50
});

console.log(`Crawled ${result.pages_crawled} pages`);
result.pages.forEach(page => {
  console.log(`  ${page.url}: ${page.metadata.title}`);
});

Search the Web

Search and extract content from results:

const results = await client.search({
  query: 'javascript tutorials',
  numResults: 10,
  extractContent: true
});

results.results.forEach(result => {
  console.log(result.title);
  console.log(result.url);
  console.log(result.markdown.slice(0, 200));
  console.log('---');
});

Complete Example

import Octivas from 'octivas';

const client = new Octivas('your_api_key');

// Extract data
const extractResult = await client.extract({
  url: 'https://example.com',
  formats: ['markdown']
});
console.log(extractResult.markdown);

// Crawl a website
const crawlResult = await client.crawl({
  startUrl: 'https://example.com',
  maxPages: 100
});
for (const page of crawlResult.pages) {
  console.log(page.url);
}

// Search the web
const searchResults = await client.search({
  query: 'javascript tutorials'
});
searchResults.results.forEach(result => console.log(result.title));

TypeScript Support

The SDK includes full TypeScript definitions:

import Octivas from 'octivas';
import type { ScrapeResult, CrawlResult, SearchResult } from 'octivas';

const client = new Octivas('your_api_key');

const result: ScrapeResult = await client.extract({
  url: 'https://example.com',
  formats: ['markdown']
});

Error Handling

import Octivas from 'octivas';

const client = new Octivas('your_api_key');

try {
  const result = await client.extract({
    url: 'https://example.com'
  });
} catch (error) {
  if (error.status === 401) {
    console.error('Invalid API key');
  } else if (error.status === 429) {
    console.error('Rate limit exceeded, please wait');
  } else {
    console.error('An error occurred:', error.message);
  }
}

On this page