Skip to main content

JavaScript SDK Reference

Full API reference for the PolarGrid JavaScript SDK.

Client Methods

Text Inference

MethodDescription
chatCompletion(request)Generate chat completion
chatCompletionStream(request)Streaming chat completion
completion(request)Generate text completion
completionStream(request)Streaming text completion
generate(request)Legacy generate (wraps chatCompletion)

Voice / Audio

MethodDescription
textToSpeech(request)Convert text to audio (returns ArrayBuffer)
textToSpeechStream(request)Streaming TTS
transcribe(request)Transcribe audio to text
translate(request)Translate audio to English

Models

MethodDescription
listModels()List available models
loadModel(request)Load a model into GPU memory
unloadModel(request)Unload a model
unloadAllModels()Unload all models
getModelStatus()Get model loading status

GPU

MethodDescription
getGPUStatus()Detailed GPU status
getGPUMemory()Simplified GPU memory info
purgeGPU(request)Clear GPU memory

Health & Region

MethodDescription
health()Service health check
getRegionId()Get current region ID (e.g., ‘yvr-01’)
getRegionName()Get current region name (e.g., ‘Vancouver’)

Error Handling

import {
  PolarGrid,
  isPolarGridError,
  AuthenticationError,
  ValidationError,
  RateLimitError,
  NetworkError,
  TimeoutError,
  NotFoundError,
  ServerError,
} from '@polargrid/sdk';

try {
  const response = await client.chatCompletion(request);
} catch (error) {
  if (isPolarGridError(error)) {
    console.error(`Error: ${error.message}`);
    console.error(`Request ID: ${error.requestId}`);

    if (error instanceof AuthenticationError) {
      // Invalid or expired API key
    } else if (error instanceof ValidationError) {
      // Invalid request parameters
      console.error('Details:', error.details);
    } else if (error instanceof RateLimitError) {
      // Rate limited - wait and retry
      console.error(`Retry after: ${error.retryAfter}s`);
    } else if (error instanceof NetworkError) {
      // Network/connection error
    } else if (error instanceof TimeoutError) {
      // Request timed out
    } else if (error instanceof NotFoundError) {
      // Resource not found
    } else if (error instanceof ServerError) {
      // Server error (5xx)
    }
  }
}

Types

import type {
  // Config
  PolarGridConfig,
  
  // Text Inference
  ChatCompletionRequest,
  ChatCompletionResponse,
  ChatCompletionChunk,
  CompletionRequest,
  CompletionResponse,
  CompletionChunk,
  GenerateRequest,
  GenerateResponse,
  
  // Voice
  TextToSpeechRequest,
  TranscriptionRequest,
  TranscriptionResponse,
  VerboseTranscriptionResponse,
  TranslationRequest,
  TranslationResponse,
  TTSVoice,
  STTModel,
  AudioFormat,
  
  // Models
  ModelInfo,
  ListModelsResponse,
  LoadModelRequest,
  LoadModelResponse,
  UnloadModelRequest,
  UnloadModelResponse,
  UnloadAllModelsResponse,
  ModelStatusResponse,
  
  // GPU
  GPUStatusResponse,
  GPUMemoryResponse,
  GPUPurgeRequest,
  GPUPurgeResponse,
  GPUInfo,
  GPUMemoryInfo,
  GPUProcess,
  
  // Health
  HealthResponse,
  
  // Errors
  ApiError,
} from '@polargrid/sdk';

Regions

import { POLARGRID_REGIONS } from '@polargrid/sdk';

// Available regions
console.log(POLARGRID_REGIONS);
// {
//   'yvr-01': { id: 'yvr-01', name: 'Vancouver', url: 'https://api.yvr-01.edge.polargrid.ai:55111' },
//   'ymq-01': { id: 'ymq-01', name: 'Montreal', url: 'https://api.ymq-01.edge.polargrid.ai:55111' },
//   'was-01': { id: 'was-01', name: 'Washington', url: 'https://api.was-01.edge.polargrid.ai:55111' },
// }

// Region aliases supported: 'vancouver', 'yvr', 'montreal', 'ymq', 'washington', 'was'

Default Export

// Named import (recommended)
import { PolarGrid } from '@polargrid/sdk';

// Default import also works
import PolarGrid from '@polargrid/sdk';