MCPcopy Create free account
hub / github.com/Zoo-Code-Org/Zoo-Code / getOpenRouterModels

Function getOpenRouterModels

src/api/providers/fetchers/openrouter.ts:97–136  ·  view source on GitHub ↗
(options?: ApiHandlerOptions)

Source from the content-addressed store, hash-verified

95 */
96
97export async function getOpenRouterModels(options?: ApiHandlerOptions): Promise<Record<string, ModelInfo>> {
98 const models: Record<string, ModelInfo> = {}
99 const baseURL = options?.openRouterBaseUrl || "https://openrouter.ai/api/v1"
100
101 try {
102 const response = await axios.get<OpenRouterModelsResponse>(`${baseURL}/models`)
103 const result = openRouterModelsResponseSchema.safeParse(response.data)
104 const data = result.success ? result.data.data : response.data.data
105
106 if (!result.success) {
107 console.error("OpenRouter models response is invalid", result.error.format())
108 }
109
110 for (const model of data) {
111 const { id, architecture, top_provider, supported_parameters = [] } = model
112
113 // Skip image generation models (models that output images)
114 if (architecture?.output_modalities?.includes("image")) {
115 continue
116 }
117
118 const parsedModel = parseOpenRouterModel({
119 id,
120 model,
121 inputModality: architecture?.input_modalities,
122 outputModality: architecture?.output_modalities,
123 maxTokens: top_provider?.max_completion_tokens,
124 supportedParameters: supported_parameters,
125 })
126
127 models[id] = parsedModel
128 }
129 } catch (error) {
130 console.error(
131 `Error fetching OpenRouter models: ${JSON.stringify(error, Object.getOwnPropertyNames(error), 2)}`,
132 )
133 }
134
135 return models
136}
137
138/**
139 * getOpenRouterModelEndpoints

Callers 2

fetchModelsFromProviderFunction · 0.90
openrouter.spec.tsFile · 0.90

Calls 2

parseOpenRouterModelFunction · 0.85
errorMethod · 0.65

Tested by

no test coverage detected