Skip to main content
The ResQ TypeScript SDK lives in the resq-software/npm workspace. It publishes a UI component library plus seven standalone utility packages under the @resq-systems/* scope. The packages are Effect-based, with zero or peer dependencies where it matters.
Moving from @resq-sw/*? These packages were previously published under the @resq-sw scope. That scope stopped receiving updates on 2026-07-09 and is not deprecated on npm, so installs still resolve — silently, to a stale version. @resq-sw/http is pinned at 0.2.0 while @resq-systems/http is at 2.0.1.Replace the scope in your package.json and reinstall:
Version numbers restart under the new scope, so pin against @resq-systems versions rather than carrying the old ranges over.
Install only what you need — every package is independently versioned and tree-shakable. See the README for the canonical per-package API.

Install

Authenticate

You can call POST /login directly with fetch while you’re getting set up. The packages provide higher-level wrappers — see the package READMEs for their current API.
Treat expires_at (Unix seconds) as authoritative — refresh proactively when fewer than 60 seconds remain. See Authentication for rotation guidance.

First call

Errors

The API rejects with HTTP status codes; bodies follow the envelope at Errors. For retry/backoff, the @resq-systems/rate-limiting and @resq-systems/http packages provide ready-made primitives — refer to the resq-software/npm README for their current shape.

Browser

The packages ship native ESM and tree-shake cleanly. In the browser:
  • Never embed long-lived credentials in client JavaScript.
  • Issue short-lived operator tokens server-side and hand them to the page.
  • Use a same-site, HTTP-only cookie or sessionStorage (memory only) to hold the token; clear on logout.

Next

API reference

Full endpoint catalog for both APIs.

Other SDKs

Python, Rust, .NET, and more.