@clariva/sdk
v0.2.0
Published
TypeScript SDK for the Clariva API
Downloads
46
Readme
@clariva/sdk
TypeScript SDK for the Clariva API.
Requirements
- Node.js 18+ (or Bun)
- A Clariva API key
Installation
npm install @clariva/sdkpnpm add @clariva/sdkyarn add @clariva/sdkbun add @clariva/sdkQuick Start
import { Clariva } from "@clariva/sdk";
const client = new Clariva({
apiKey: process.env.CLARIVA_API_KEY!,
// Optional (defaults to https://clariva-tau.vercel.app)
// baseUrl: "http://localhost:3000",
});
const voices = await client.voices.list();
console.log("voices:", voices.data.length);
const firstVoice = voices.data[0];
if (!firstVoice) throw new Error("No voices found");
const generation = await client.generations.create({
text: "Halo ini tes SDK Clariva",
// You can use voice_id or voiceId
voiceId: firstVoice.id,
});
const audio = await client.generations.getAudio(generation.id);
console.log("audio bytes:", audio.byteLength);Common APIs
Voices
const list = await client.voices.list({ query: "aaron" });
const system = await client.voices.listSystem();
const voice = await client.voices.get("voice_id");Generations
const gen = await client.generations.create({
text: "Hello world",
voice_id: "voice_id",
temperature: 0.7,
topP: 0.9,
topK: 40,
repetitionPenalty: 1.1,
});
const one = await client.generations.get(gen.id);
const list = await client.generations.list();
const audio = await client.generations.getAudio(gen.id);Usage
const usage = await client.usage.get();
console.log(usage.has_active_subscription);Error Handling
import {
Clariva,
AuthenticationError,
ForbiddenError,
NotFoundError,
RateLimitError,
TimeoutError,
ValidationError,
} from "@clariva/sdk";
const client = new Clariva({ apiKey: process.env.CLARIVA_API_KEY! });
try {
await client.voices.list();
} catch (error) {
if (error instanceof AuthenticationError) {
console.error("Invalid API key");
} else if (error instanceof ForbiddenError) {
console.error("Access forbidden");
} else if (error instanceof ValidationError) {
console.error("Invalid request payload");
} else if (error instanceof NotFoundError) {
console.error("Resource not found");
} else if (error instanceof RateLimitError) {
console.error(`Rate limited. Retry after ${error.retryAfter}s`);
} else if (error instanceof TimeoutError) {
console.error("Request timed out");
} else {
throw error;
}
}Configuration
const client = new Clariva({
apiKey: process.env.CLARIVA_API_KEY!,
baseUrl: "https://clariva-tau.vercel.app",
timeout: 60_000, // ms
maxRetries: 2,
});