TypeScript SDK

Prerequisites

ItemValue
Package@joytoken/client-sdk-ts
Node.js18+
API keyJOY_TOKEN_API_KEY
API Base URLJOY_TOKEN_API_BASE_URL from Environments
OpenAI Base URLJOY_TOKEN_OPENAI_BASE_URL from Environments

Step 1: Install

$npm install @joytoken/client-sdk-ts

Step 2: Create a Client

1import { JoyTokenClient } from "@joytoken/client-sdk-ts";
2
3const joytoken = new JoyTokenClient({
4 apiKey: process.env.JOY_TOKEN_API_KEY,
5 apiBaseUrl: process.env.JOY_TOKEN_API_BASE_URL,
6 openAIBaseUrl: process.env.JOY_TOKEN_OPENAI_BASE_URL,
7 timeoutMs: 60_000,
8});

Step 3: Chat Completion

1const completion = await joytoken.chat.completions.create({
2 model: "auto",
3 messages: [{ role: "user", content: "Reply with exactly: pong" }],
4});
5
6console.log(completion.choices[0]?.message?.content);

Step 4: Streaming Response

1for await (const chunk of joytoken.chat.completions.stream({
2 model: "auto",
3 messages: [{ role: "user", content: "Write one short paragraph." }],
4})) {
5 process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
6}

Step 5: Model List

1const models = await joytoken.models.list();
2console.log(models.data.map((model) => model.id));

Common Errors

ErrorFix
No fetch implementation availableUse Node.js 18+, or pass fetch to JoyTokenClient({ fetch })
401 UnauthorizedCheck JOY_TOKEN_API_KEY
JoyTokenAPIErrorInspect status, requestId, and body