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/sdkRequires: 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
| Method | Endpoint |
|---|---|
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.