# Class LittleGhost::Providers::OpenRouter

Documentation version: Edge

Canonical HTML: https://littleghostai.org/docs/LittleGhost/Providers/OpenRouter.html

OpenRouter gives one LittleGhost provider access to models routed through
OpenRouter. Agents may select an OpenRouter target directly or keep a logical
role while shared configuration selects its physical model.

    provider = LittleGhost::Providers::OpenRouter.new(
      api_key: ENV.fetch("OPENROUTER_API_KEY"),
      model: ENV.fetch("OPENROUTER_MODEL"),
      app_name: "Support Console"
    )

`site_url` and `app_name` populate attribution headers. Capability metadata
controls structured output, tools, tool choice, and parameter filtering.
Requests that need a capability ask OpenRouter to route only to providers that
advertise it.

## Inheritance

`LittleGhost::Providers::OpenRouter < OpenAICompatible`

## Constants

### `DEFAULT_BASE_URL`

The OpenRouter API endpoint used when `base_url` is omitted.

## Class methods

<a id="method-c-new"></a>
### `.new`

```ruby
.new(site_url: nil, app_name: nil, base_url: DEFAULT_BASE_URL, **arguments)
```

Configures an OpenRouter client. All OpenAICompatible options, including
`api_key`, `model`, retry limits, timeouts, and custom transport, apply.

<a id="method-c-request_options"></a>
### `.request_options`

```ruby
.request_options()
```

Adds OpenRouter attribution to the shared OpenAI-compatible policy.

## Instance methods

<a id="method-i-capabilities"></a>
### `#capabilities`

```ruby
#capabilities(metadata: {})
```

Reads model capabilities from OpenRouter `supported_parameters` metadata.
Missing metadata produces ModelCapabilities.unknown.

<a id="method-i-prepare_request"></a>
### `#prepare_request`

```ruby
#prepare_request(request, capabilities:)
```

Filters unsupported model settings when the request requires advertised
capabilities.
