Changelog
All notable changes to the Orsa API and platform.
TypeScript SDK v0.1.0 — May 2026
🚀 Initial public release of @orsa.dev/sdk
The TypeScript SDK has been rebuilt around the current public API. The previous unscoped orsa package is superseded by @orsa.dev/sdk (scoped, public).
Install
npm install @orsa.dev/sdk
# or
bun add @orsa.dev/sdk
# or
pnpm add @orsa.dev/sdkWhat’s new
- Auto-unwrapped responses. The
{ data, _meta }envelope is consumed inside the HTTP layer — methods return the inner payload directly with fully typed shapes. - Context.dev-shaped
brand.retrieve. Top-levelcolors/logos/socialsare now arrays of objects, with named-slotlinksand per-field*_legacymirrors for backward compatibility. - Four structured error classes.
OrsaError,OrsaAPIError(with.status,.errorCode,.requestId),OrsaTimeoutError,OrsaConnectionError. Useinstanceofto narrow. - Per-request
RequestOptions—signal,timeout, andheaderson every method. - Automatic retries on
429/500/502/503and connection errors, with exponential backoff honoringRetry-After. - camelCase params, snake_case wire format. Idiomatic TypeScript without leaky API names.
- ESM + CJS +
.d.ts, zero runtime dependencies, Node ≥ 18.
Method surface aligned with the API
The SDK now exposes exactly what the API serves — nothing more, nothing less:
client.brand.*—retrieve,retrieveByDomain/Name/Email/Ticker/ISIN,retrieveSimplified,screenshot,styleguide,fonts,naics,transactionIdentifierclient.web.*—scrape({ url, mode }),scrapeImages,scrapeSitemapclient.ai.*—query,products
Removed (endpoints that never shipped)
web.scrapeHtml,web.scrapeMarkdown→ replaced byweb.scrape({ url, mode })web.crawl,web.getCrawlStatusai.extractProduct- The entire
client.utilitynamespace (prefetch,prefetchByEmail)
If you were using any of these on the old SDK, they were no-ops anyway — the endpoints don’t exist on the API.
Local playground
A new sandbox app at apps/sdk-playground exercises every method against a running API and serves as a DX reference for new consumers. See the TypeScript SDK page for the link.
v1.0.0 — April 2025
🚀 General Availability
The Orsa API is generally available. Everything you need to extract brand data, scrape the web, and power AI agents with live website context.
Brand Intelligence
- Retrieve by Domain — Full brand data from any domain (logos, colors, fonts, socials, industries)
- Retrieve by Name — Fuzzy search by company name, returns top match plus candidates
- Retrieve by Email — Extract domain from business email
- Retrieve by Ticker / ISIN — Look up brands by stock identifiers
- Retrieve Simplified — Lightweight response for high-volume use
- Screenshot — Homepage capture as inline base64 PNG
- Styleguide — W3C-DTCG design tokens + paste-ready DESIGN.md
- Fonts — Font-only extraction at reduced credit cost
- NAICS Classification — Industry tags surfaced from the cached brand
- Transaction Identifier — Match bank descriptors to brands
Web Scraping
- Scrape (template) — Single-page extract with
modetoggle (markdown / html / text), JS rendering on by default - Scrape Images — Images with
roleclassification (logo / hero / product / icon / decorative) - Scrape Sitemap — Robots-aware sitemap discovery with path-grouped buckets
AI Extraction
- AI Query — Natural language extraction (free-form string output)
- AI Products — Anthropic tool-use enforced product schema
SDKs
- TypeScript SDK —
npm install @orsa.dev/sdk - Python SDK —
pip install orsa - MCP Server — Claude Desktop and Cursor integration
Platform
- Rate limiting with
X-RateLimit-*headers - Request IDs on every response for debugging
- Credit-based billing with per-endpoint pricing