TypeScript SDK

In Development

The TypeScript SDK is under active development. API surface is stabilizing but may still change before v1.0.

@useio/sdk — native TypeScript SDK for IO. ESM-first, typed, tested.


Installation

npm install @useio/sdk
pnpm add @useio/sdk
yarn add @useio/sdk

Requires: Node.js 18+, ESM


Quick Start

import { IO } from "@useio/sdk";
 
const io = new IO({
  apiKey: process.env.IO_API_KEY,
});
 
const response = await io.completions.create({
  model: "auto",
  messages: [{ role: "user", content: "Hello, IO!" }],
});
 
console.log(response.message);
console.log("Receipt:", response.receipt.signature);

Streaming

const stream = io.stream.create({
  model: "auto",
  messages: [{ role: "user", content: "Count to 10" }],
});
 
for await (const chunk of stream) {
  process.stdout.write(chunk.delta);
}

All Methods

MethodEndpoint
completions.create()POST /completions
stream.create()POST /stream
broadcast.create()POST /broadcast
diffuse.create()POST /diffuse
batch.create()POST /batch
diff.create()POST /diff
receipts.verify()POST /verify-receipt
receipts.chain()POST /receipt-chain
receipts.chainVerify()POST /chain-verify
receipts.proof()POST /proof
redact.create()POST /redact
timer.set()POST /timer
wipe.create()POST /wipe
fork.create()POST /fork
merge.create()POST /merge
models.list()GET /models
health.check()GET /health
system.ping()GET /ping
system.version()GET /version

Error Handling

try {
  await io.completions.create({ model: "auto", messages: [] });
} catch (err) {
  if (err instanceof IORateLimitError) {
    console.log(`Rate limited. Retry after ${err.retryAfter}s`);
  }
}

Errors: IOError, IOAuthError, IORateLimitError, IOModelError, IONetworkError.