Skip to content

@aeye/openrouter — API Reference ​

OpenRouterProvider ​

Extends OpenAIProvider with OpenRouter-specific features.

typescript
class OpenRouterProvider extends OpenAIProvider<OpenRouterConfig>

OpenRouterConfig ​

Extends OpenAIConfig (minus api) with:

typescript
interface OpenRouterConfig extends Omit<OpenAIConfig, 'api'> {
  defaultParams?: {
    siteUrl?: string;
    appName?: string;
    providers?: {
      order?: string[];
      allowFallbacks?: boolean;
      requireParameters?: boolean;      // auto-on for strict json_schema when undefined
      dataCollection?: 'deny' | 'allow';
      zdr?: boolean;
      enforceDistillableText?: boolean; // only providers that allow training on outputs
      only?: string[];
      ignore?: string[];
      quantizations?: OpenRouterQuantization[]; // 'int4' | 'int8' | 'fp4' | 'mxfp4' | 'nvfp4' | 'fp6' | 'fp8' | 'mxfp8' | 'fp16' | 'bf16' | 'fp32' | 'unknown'
      sort?: OpenRouterSort | { by: OpenRouterSort; partition?: 'model' | 'none' }; // 'price' | 'throughput' | 'latency' | 'exacto'
      preferredMinThroughput?: number;  // tokens/second, median
      preferredMaxLatency?: number;     // seconds, median
      maxPrice?: { prompt?: number; completion?: number; image?: number; audio?: number; request?: number };
    };
    fallbackModels?: string[];          // sent as `models`
    plugins?: OpenRouterPlugin[];       // file-parser | response-healing | context-compression
    /** @deprecated `middle-out` is sent as the `context-compression` plugin */
    transforms?: string[];
  };
}

OpenRouterConfig omits OpenAIConfig's api option: requests always go through Chat Completions, where routing, plugins, server tools, and reasoning options work.

OpenRouterModelSource ​

Dynamic model source for fetching available models:

typescript
class OpenRouterModelSource implements ModelSource {
  constructor(config?: { apiKey?: string; includeZDR?: boolean });
  fetchModels(): Promise<ModelInfo[]>;
}

Exported Functions ​

fetchModels(apiKey?) ​

Fetch available models from OpenRouter API, including speech, transcription, embedding, and image models.

fetchZDRModels(apiKey?) ​

Fetch models that support Zero Data Retention.

fetchEndpointMetrics(modelId, apiKey?) ​

Best median latency (ms), median throughput (tokens/s), and uptime across the providers serving a model, from /models/{id}/endpoints.

Released under the GPL-3.0 License.