# ChatOpenRouter

> **Class** in `@langchain/openrouter`

📖 [View in docs](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter)

OpenRouter chat model integration.

Talks directly to the OpenRouter REST API via `fetch` (no SDK dependency)
and supports tool calling, structured output, and streaming. Any model
available on OpenRouter can be used by passing its identifier (e.g.
`"anthropic/claude-4-sonnet"`) as the `model` param.

## Signature

```javascript
class ChatOpenRouter
```

## Extends

- `BaseChatModel<ChatOpenRouterCallOptions, AIMessageChunk>`

## Constructors

- [`constructor()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/constructor)

## Properties

- `apiKey`
- `appCategories`
- `baseURL`
- `cache`
- `callbacks`
- `caller`
- `disableStreaming`
- `frequencyPenalty`
- `lc_kwargs`
- `lc_namespace`
- `lc_runnable`
- `lc_serializable`
- `logitBias`
- `maxTokens`
- `metadata`
- `minP`
- `model`
- `modelKwargs`
- `models`
- `name`
- `outputVersion`
- `ParsedCallOptions`
- `plugins`
- `presencePenalty`
- `provider`
- `repetitionPenalty`
- `route`
- `seed`
- `sessionId`
- `siteName`
- `siteUrl`
- `stop`
- `streamUsage`
- `tags`
- `temperature`
- `topA`
- `topK`
- `topLogprobs`
- `topP`
- `trace`
- `transforms`
- `user`
- `verbose`
- `callKeys`
- `lc_aliases`
- `lc_attributes`
- `lc_id`
- `lc_secrets`
- `lc_serializable_keys`
- `profile`

## Methods

- [`_addVersion()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_addVersion)
- [`_batchWithConfig()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_batchWithConfig)
- [`_callWithConfig()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_callWithConfig)
- [`_combineLLMOutput()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_combineLLMOutput)
- [`_filterInvocationParamsForTracing()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_filterInvocationParamsForTracing)
- [`_generate()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_generate)
- [`_generateCached()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_generateCached)
- [`_getCallOptionsForTracing()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_getCallOptionsForTracing)
- [`_getInvocationParamsForTracing()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_getInvocationParamsForTracing)
- [`_getOptionsList()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_getOptionsList)
- [`_getSerializedCacheKeyParametersForCall()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_getSerializedCacheKeyParametersForCall)
- [`_identifyingParams()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_identifyingParams)
- [`_llmType()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_llmType)
- [`_modelType()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_modelType)
- [`_separateRunnableConfigFromCallOptions()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_separateRunnableConfigFromCallOptions)
- [`_separateRunnableConfigFromCallOptionsCompat()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_separateRunnableConfigFromCallOptionsCompat)
- [`_streamChatModelEvents()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_streamChatModelEvents)
- [`_streamIterator()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_streamIterator)
- [`_streamLog()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_streamLog)
- [`_streamResponseChunks()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_streamResponseChunks)
- [`_transformStreamWithConfig()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_transformStreamWithConfig)
- [`assign()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/assign)
- [`asTool()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/asTool)
- [`batch()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/batch)
- [`bindTools()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/bindTools)
- [`generate()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/generate)
- [`generatePrompt()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/generatePrompt)
- [`getGraph()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/getGraph)
- [`getLsParams()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/getLsParams)
- [`getLsParamsWithDefaults()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/getLsParamsWithDefaults)
- [`getName()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/getName)
- [`getNumTokens()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/getNumTokens)
- [`invocationParams()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/invocationParams)
- [`invoke()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/invoke)
- [`pick()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/pick)
- [`pipe()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/pipe)
- [`serialize()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/serialize)
- [`stream()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/stream)
- [`streamEvents()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/streamEvents)
- [`streamLog()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/streamLog)
- [`streamV2()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/streamV2)
- [`toJSON()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/toJSON)
- [`toJSONNotImplemented()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/toJSONNotImplemented)
- [`transform()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/transform)
- [`withConfig()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/withConfig)
- [`withFallbacks()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/withFallbacks)
- [`withListeners()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/withListeners)
- [`withRetry()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/withRetry)
- [`withStructuredOutput()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/withStructuredOutput)
- [`_convertInputToPromptValue()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/_convertInputToPromptValue)
- [`deserialize()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/deserialize)
- [`isRunnable()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/isRunnable)
- [`lc_name()`](https://reference.langchain.com/javascript/langchain-openrouter/ChatOpenRouter/lc_name)

---

[View source on GitHub](https://github.com/langchain-ai/langchainjs/blob/62fc484b2a0d1ec5b8bebff4a8a0efe6300ada72/libs/providers/langchain-openrouter/src/chat_models/index.ts#L90)