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 octivasQuick 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);
}
}