Changelog

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/sdk

What’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-level colors / logos / socials are now arrays of objects, with named-slot links and per-field *_legacy mirrors for backward compatibility.
  • Four structured error classes. OrsaError, OrsaAPIError (with .status, .errorCode, .requestId), OrsaTimeoutError, OrsaConnectionError. Use instanceof to narrow.
  • Per-request RequestOptionssignal, timeout, and headers on every method.
  • Automatic retries on 429 / 500 / 502 / 503 and connection errors, with exponential backoff honoring Retry-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, transactionIdentifier
  • client.web.*scrape({ url, mode }), scrapeImages, scrapeSitemap
  • client.ai.*query, products

Removed (endpoints that never shipped)

  • web.scrapeHtml, web.scrapeMarkdown → replaced by web.scrape({ url, mode })
  • web.crawl, web.getCrawlStatus
  • ai.extractProduct
  • The entire client.utility namespace (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 mode toggle (markdown / html / text), JS rendering on by default
  • Scrape Images — Images with role classification (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 SDKnpm install @orsa.dev/sdk
  • Python SDKpip 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