> ## Documentation Index
> Fetch the complete documentation index at: https://www.stratus.run/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Complete reference of all Stratus X1 model combinations

## Overview

Stratus X1 supports **2,050+ model combinations** across 5 world model sizes and 410+ LLM backends — including every model available through OpenRouter.

**Native model format:** `stratus-x1ac-{size}-{llm-model}`

**OpenRouter model format:** `stratus-x1ac-{size}-{or-provider}/{or-model}`

<Info>
  All models are available out of the box. Formation's shared OpenRouter pool handles LLM calls automatically when no provider key is configured — no external API accounts required. Add your own provider key via [LLM Key Management](/docs/api-reference/llm-keys) to remove the 25% pool markup and pay providers directly.
</Info>

## How Model Discovery Works

At startup, Stratus queries OpenRouter's model catalog and registers every available model dynamically. This means every model OpenRouter supports is immediately available as a Stratus model combination — no manual updates required.

The **2,050+ total** breaks down as:

| Source                                    | Count  | Format                                   |
| ----------------------------------------- | ------ | ---------------------------------------- |
| Native models (OpenAI, Anthropic, Google) | \~250  | `stratus-x1ac-{size}-{model}`            |
| OpenRouter-native models                  | 1,800+ | `stratus-x1ac-{size}-{provider}/{model}` |

**Key point:** Original model names are unchanged. `stratus-x1ac-base-gpt-4o` and `stratus-x1ac-base-claude-sonnet-4-20250514` work exactly as before. The OpenRouter slash-notation is purely additive.

## List Models Endpoint

```
GET /v1/models
```

Programmatically retrieve all available Stratus model combinations. This endpoint follows the OpenAI-compatible models list format.

### Request

No parameters required. Authentication via `Authorization` header:

```bash theme={null}
curl https://api.stratus.run/v1/models \
  -H "Authorization: Bearer stratus_sk_live_your_key"
```

### Response Format

```json theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "stratus-x1ac-small-gpt-4o",
      "object": "model",
      "created": 1702500000,
      "owned_by": "stratus"
    },
    {
      "id": "stratus-x1ac-base-gpt-4o",
      "object": "model",
      "created": 1702500000,
      "owned_by": "stratus"
    },
    {
      "id": "stratus-x1ac-base-deepseek/deepseek-r1",
      "object": "model",
      "created": 1702500000,
      "owned_by": "stratus"
    },
    {
      "id": "stratus-x1ac-base-meta-llama/llama-3.3-70b-instruct",
      "object": "model",
      "created": 1702500000,
      "owned_by": "stratus"
    }
    // ... 2,046 more models
  ]
}
```

### Code Examples

<CodeGroup>
  ```typescript TypeScript theme={null}
  import OpenAI from 'openai';

  const client = new OpenAI({
    baseURL: 'https://api.stratus.run/v1',
    apiKey: process.env.STRATUS_API_KEY
  });

  const models = await client.models.list();

  // Filter for GPT-4o models
  const gpt4oModels = models.data.filter(m =>
    m.id.includes('gpt-4o') && !m.id.includes('mini')
  );

  console.log('Available GPT-4o models:');
  gpt4oModels.forEach(model => console.log(`  - ${model.id}`));

  // Filter for OpenRouter-native models (contain a slash)
  const orModels = models.data.filter(m => m.id.includes('/'));
  console.log(`\nOpenRouter models: ${orModels.length}`);

  // Find base size models
  const baseModels = models.data.filter(m => m.id.includes('-base-'));
  console.log(`Base models: ${baseModels.length}`);
  ```

  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.stratus.run/v1",
      api_key=os.environ["STRATUS_API_KEY"]
  )

  models = client.models.list()

  # Filter for DeepSeek models via OpenRouter
  deepseek_models = [m for m in models.data if 'deepseek' in m.id]

  print('Available DeepSeek models:')
  for model in deepseek_models:
      print(f"  - {model.id}")

  # Count OpenRouter-native vs native models
  or_models = [m for m in models.data if '/' in m.id]
  native_models = [m for m in models.data if '/' not in m.id]

  print(f"\nNative models: {len(native_models)}")
  print(f"OpenRouter models: {len(or_models)}")
  print(f"Total: {len(models.data)}")
  ```

  ```bash cURL theme={null}
  curl https://api.stratus.run/v1/models \
    -H "Authorization: Bearer stratus_sk_live_your_key" \
    | jq '.data[] | .id' | sort
  ```
</CodeGroup>

### Use Cases

**Dynamic Model Selection:**

```typescript theme={null}
async function selectOptimalModel(task: string) {
  const models = await client.models.list();

  // For complex reasoning — use a frontier model via OpenRouter
  if (task.includes('analyze') || task.includes('debug')) {
    return models.data.find(m => m.id.includes('claude-opus-4-5'))
      || models.data.find(m => m.id.includes('deepseek/deepseek-r1'));
  }

  // For fast prototyping
  if (process.env.NODE_ENV === 'development') {
    return models.data.find(m => m.id.includes('gpt-4o-mini'));
  }

  // Default: production-ready
  return models.data.find(m => m.id === 'stratus-x1ac-base-gpt-4o');
}
```

**Model Availability Check:**

```python theme={null}
def is_model_available(model_name: str) -> bool:
    models = client.models.list()
    return any(m.id == model_name for m in models.data)

if is_model_available('stratus-x1ac-large-claude-sonnet-4-5'):
    print('✅ Model available')
else:
    print('❌ Model not loaded - contact support')
```

**UI Model Picker:**

```typescript theme={null}
// Build model picker for UI
const models = await client.models.list();

const grouped = models.data.reduce((acc, model) => {
  if (model.id.includes('gpt')) {
    acc.openai = acc.openai || [];
    acc.openai.push(model.id);
  } else if (model.id.includes('claude')) {
    acc.anthropic = acc.anthropic || [];
    acc.anthropic.push(model.id);
  } else {
    acc.embeddings = acc.embeddings || [];
    acc.embeddings.push(model.id);
  }
  return acc;
}, {});

console.log(grouped);
// {
//   openai: ['stratus-x1ac-small-gpt-4o', ...],
//   anthropic: ['stratus-x1ac-small-claude-sonnet-4-5', ...],
//   embeddings: ['stratus-x1ac-small', 'stratus-x1ac-base', ...]
// }
```

<Note>
  The `/v1/models` endpoint returns all **2,050+ model combinations** dynamically. The list is refreshed at startup from OpenRouter's catalog, so your code always works with the latest available models without hardcoding.
</Note>

## Model Sizes

<CardGroup cols={2}>
  <Card title="small" icon="gauge-low">
    Smallest model variant - fastest inference
  </Card>

  <Card title="base" icon="gauge">
    **Currently in production** - balanced performance
  </Card>

  <Card title="large" icon="gauge-high">
    Large model variant - extended context
  </Card>

  <Card title="xl" icon="gauge-max">
    Extra-large variant - maximum context
  </Card>

  <Card title="huge" icon="server">
    Largest model variant - research-grade capacity
  </Card>
</CardGroup>

## Embedding-Only Models

Use these for world model embeddings without LLM text generation.

```bash theme={null}
stratus-x1ac-small
stratus-x1ac-base      # Currently loaded in production
stratus-x1ac-large
stratus-x1ac-xl
stratus-x1ac-huge
```

<Note>
  Embedding-only models return Stratus world model representations without requiring LLM API keys.
</Note>

## OpenAI Models

<Accordion title="GPT-4o (5 models) - Recommended for Production">
  ```bash theme={null}
  stratus-x1ac-small-gpt-4o
  stratus-x1ac-base-gpt-4o       # Production recommended
  stratus-x1ac-large-gpt-4o
  stratus-x1ac-xl-gpt-4o
  stratus-x1ac-huge-gpt-4o
  ```

  Best balance of speed, quality, and cost.
</Accordion>

<Accordion title="GPT-4o Mini (5 models) - Fastest & Cheapest">
  ```bash theme={null}
  stratus-x1ac-small-gpt-4o-mini
  stratus-x1ac-base-gpt-4o-mini  # Best for prototyping
  stratus-x1ac-large-gpt-4o-mini
  stratus-x1ac-xl-gpt-4o-mini
  stratus-x1ac-huge-gpt-4o-mini
  ```

  Optimized for speed and cost - ideal for development.
</Accordion>

<Accordion title="GPT-4 Turbo (5 models)">
  ```bash theme={null}
  stratus-x1ac-small-gpt-4-turbo
  stratus-x1ac-base-gpt-4-turbo
  stratus-x1ac-large-gpt-4-turbo
  stratus-x1ac-xl-gpt-4-turbo
  stratus-x1ac-huge-gpt-4-turbo
  ```
</Accordion>

<Accordion title="GPT-4 (5 models)">
  ```bash theme={null}
  stratus-x1ac-small-gpt-4
  stratus-x1ac-base-gpt-4
  stratus-x1ac-large-gpt-4
  stratus-x1ac-xl-gpt-4
  stratus-x1ac-huge-gpt-4
  ```
</Accordion>

<Accordion title="GPT-3.5 Turbo (5 models)">
  ```bash theme={null}
  stratus-x1ac-small-gpt-3.5-turbo
  stratus-x1ac-base-gpt-3.5-turbo
  stratus-x1ac-large-gpt-3.5-turbo
  stratus-x1ac-xl-gpt-3.5-turbo
  stratus-x1ac-huge-gpt-3.5-turbo
  ```
</Accordion>

<Note>
  OpenAI models are accessible without an OpenAI API key — Formation's pool routes the request automatically. To remove the 25% pool markup and pay OpenAI directly, store your own key via [LLM Key Management](/docs/api-reference/llm-keys).
</Note>

## Anthropic Models

<Accordion title="Claude Sonnet 4.5 (5 models) - Most Capable">
  ```bash theme={null}
  stratus-x1ac-small-claude-sonnet-4-5
  stratus-x1ac-base-claude-sonnet-4-5    # Production quality
  stratus-x1ac-large-claude-sonnet-4-5
  stratus-x1ac-xl-claude-sonnet-4-5
  stratus-x1ac-huge-claude-sonnet-4-5
  ```

  Maps to `claude-sonnet-4-5-20250929` - Best reasoning capabilities.
</Accordion>

<Accordion title="Claude Opus 4.5 (5 models) - Maximum Reasoning">
  ```bash theme={null}
  stratus-x1ac-small-claude-opus-4-5
  stratus-x1ac-base-claude-opus-4-5      # Research-grade
  stratus-x1ac-large-claude-opus-4-5
  stratus-x1ac-xl-claude-opus-4-5
  stratus-x1ac-huge-claude-opus-4-5
  ```

  Maps to `claude-opus-4-5-20251101` - Most capable model available.
</Accordion>

<Accordion title="Claude Haiku 4.5 (5 models) - Fastest Claude">
  ```bash theme={null}
  stratus-x1ac-small-claude-haiku-4-5
  stratus-x1ac-base-claude-haiku-4-5
  stratus-x1ac-large-claude-haiku-4-5
  stratus-x1ac-xl-claude-haiku-4-5
  stratus-x1ac-huge-claude-haiku-4-5
  ```

  Maps to `claude-haiku-4-5-20251001` - Optimized for speed.
</Accordion>

<Accordion title="Claude 4 Models (10 models)">
  **Sonnet 4:**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-sonnet-4
  ```

  Maps to `claude-sonnet-4-20250514`

  **Opus 4:**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-opus-4
  ```

  Maps to `claude-opus-4-20250514`
</Accordion>

<Accordion title="Claude 3.7 & 3.5 Models (10 models)">
  **3.7 Sonnet:**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-3-7-sonnet
  ```

  Maps to `claude-3-7-sonnet-20250219`

  **3.5 Sonnet (upgraded to 3.7):**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-3-5-sonnet
  ```

  Maps to `claude-3-7-sonnet-20250219`
</Accordion>

<Accordion title="Claude 3 Models (15 models)">
  **Opus (upgraded to Opus 4):**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-3-opus
  ```

  Maps to `claude-opus-4-20250514`

  **Sonnet (upgraded to 3.7):**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-3-sonnet
  ```

  Maps to `claude-3-7-sonnet-20250219`

  **Haiku:**

  ```bash theme={null}
  stratus-x1ac-{small|base|large|xl|huge}-claude-3-haiku
  ```

  Maps to `claude-3-5-haiku-20241022`
</Accordion>

<Note>
  Anthropic models are accessible without an Anthropic API key — Formation's pool routes the request automatically. To remove the 25% pool markup and pay Anthropic directly, store your own key via [LLM Key Management](/docs/api-reference/llm-keys).
</Note>

## OpenRouter Models (1,800+)

Every model in OpenRouter's catalog is available via the slash-notation format: `stratus-x1ac-{size}-{or-provider}/{or-model}`.

All OpenRouter models are routed through Formation's pool by default. Supply your own `openrouter_key` via [LLM Key Management](/docs/api-reference/llm-keys) or the `X-OpenRouter-Key` header to bypass the 25% pool markup.

<Accordion title="DeepSeek">
  ```bash theme={null}
  stratus-x1ac-base-deepseek/deepseek-r1
  stratus-x1ac-base-deepseek/deepseek-r1-distill-llama-70b
  stratus-x1ac-base-deepseek/deepseek-chat-v3-0324
  ```

  State-of-the-art reasoning models from DeepSeek. DeepSeek-R1 matches frontier reasoning at a fraction of the cost.
</Accordion>

<Accordion title="Meta Llama">
  ```bash theme={null}
  stratus-x1ac-base-meta-llama/llama-3.3-70b-instruct
  stratus-x1ac-base-meta-llama/llama-3.1-405b-instruct
  stratus-x1ac-base-meta-llama/llama-4-maverick
  stratus-x1ac-base-meta-llama/llama-4-scout
  ```

  Open-weight models from Meta. Llama 3.3 70B offers strong performance at low cost.
</Accordion>

<Accordion title="Google Gemini (via OpenRouter)">
  ```bash theme={null}
  stratus-x1ac-base-google/gemini-2.5-pro
  stratus-x1ac-base-google/gemini-2.5-flash
  stratus-x1ac-base-google/gemini-2.0-flash-001
  stratus-x1ac-base-google/gemini-flash-1.5-8b
  ```

  Google's Gemini family via OpenRouter routing. For direct Google API keys, use the native `google/gemini-*` format with `X-Google-Key`.
</Accordion>

<Accordion title="Mistral">
  ```bash theme={null}
  stratus-x1ac-base-mistralai/mistral-large-2411
  stratus-x1ac-base-mistralai/mistral-small-3.1-24b-instruct
  stratus-x1ac-base-mistralai/mistral-nemo
  stratus-x1ac-base-mistralai/codestral-2501
  ```

  Mistral's frontier and efficient models. Codestral is optimized for code generation.
</Accordion>

<Accordion title="Qwen (Alibaba)">
  ```bash theme={null}
  stratus-x1ac-base-qwen/qwen-2.5-72b-instruct
  stratus-x1ac-base-qwen/qwen-2.5-coder-32b-instruct
  stratus-x1ac-base-qwen/qwq-32b
  stratus-x1ac-base-qwen/qwen-max
  ```

  Alibaba's Qwen series. QwQ-32B is a strong reasoning model; Qwen-2.5-Coder leads code benchmarks.
</Accordion>

<Accordion title="xAI Grok">
  ```bash theme={null}
  stratus-x1ac-base-x-ai/grok-4
  stratus-x1ac-base-x-ai/grok-3-beta
  stratus-x1ac-base-x-ai/grok-3-mini-beta
  ```

  xAI's Grok models. Grok-4 is the most capable variant.
</Accordion>

<Accordion title="Perplexity">
  ```bash theme={null}
  stratus-x1ac-base-perplexity/sonar-pro
  stratus-x1ac-base-perplexity/sonar-reasoning-pro
  stratus-x1ac-base-perplexity/sonar
  ```

  Perplexity's Sonar models combine LLM reasoning with real-time web search grounding.
</Accordion>

<Accordion title="Amazon Nova">
  ```bash theme={null}
  stratus-x1ac-base-amazon/nova-pro-v1
  stratus-x1ac-base-amazon/nova-lite-v1
  stratus-x1ac-base-amazon/nova-micro-v1
  ```

  Amazon's Nova family — Nova Pro for production-quality tasks, Nova Micro for ultra-low latency.
</Accordion>

<Accordion title="Cohere">
  ```bash theme={null}
  stratus-x1ac-base-cohere/command-a
  stratus-x1ac-base-cohere/command-r-plus-08-2024
  stratus-x1ac-base-cohere/command-r7b-12-2024
  ```

  Cohere's Command series. Command-A is their most capable model; Command-R is optimized for RAG.
</Accordion>

<Accordion title="Nvidia Llama">
  ```bash theme={null}
  stratus-x1ac-base-nvidia/llama-3.1-nemotron-70b-instruct
  stratus-x1ac-base-nvidia/llama-3.1-nemotron-ultra-253b-v1
  ```

  Nvidia's fine-tuned Llama variants, optimized for instruction following and helpfulness.
</Accordion>

<Accordion title="40+ More Providers">
  OpenRouter's full catalog — including Nous Research, MythoMax, WizardLM, Yi, Phi, Falcon, and more — is available. Use `GET /v1/models` to enumerate all available IDs.

  ```bash theme={null}
  # List all available models
  curl https://api.stratus.run/v1/models \
    -H "Authorization: Bearer $STRATUS_API_KEY" \
    | jq '.data[].id' | grep '/'
  ```
</Accordion>

<Note>
  The OpenRouter model list is refreshed at startup. Use `GET /v1/models` to see what is currently available. All OR models use Formation's pool by default — supply your own `openrouter_key` to route directly and remove the 25% markup.
</Note>

## Model Selection Guide

<CardGroup cols={2}>
  <Card title="Fast Prototyping" icon="bolt">
    **stratus-x1ac-base-gpt-4o-mini**

    Fastest and cheapest - ideal for development
  </Card>

  <Card title="Production Quality" icon="check">
    **stratus-x1ac-base-gpt-4o**

    Best balance of speed and quality
  </Card>

  <Card title="Maximum Reasoning" icon="brain">
    **stratus-x1ac-base-claude-opus-4-5**

    Most capable reasoning available
  </Card>

  <Card title="Complex Tasks" icon="sitemap">
    **stratus-x1ac-xl-claude-sonnet-4-5**

    Extended context for complex workflows
  </Card>

  <Card title="Open-Weight / Cost-Efficient" icon="dollar-sign">
    **stratus-x1ac-base-meta-llama/llama-3.3-70b-instruct**

    Strong open-weight model at low cost
  </Card>

  <Card title="Deep Reasoning" icon="diagram-project">
    **stratus-x1ac-base-deepseek/deepseek-r1**

    Chain-of-thought reasoning matching frontier quality
  </Card>
</CardGroup>

## Usage Examples

### Embedding Only

```python theme={null}
from openai import OpenAI

client = OpenAI(
    base_url="https://api.stratus.run/v1",
    api_key=os.environ["STRATUS_API_KEY"]
)

response = client.embeddings.create(
    model="stratus-x1ac-base",
    input="Navigate to github.com and find the latest release"
)
```

### With GPT-4o

```python theme={null}
response = client.chat.completions.create(
    model="stratus-x1ac-base-gpt-4o",
    messages=[
        {"role": "user", "content": "Help me debug this React component"}
    ]
)
```

### With Claude Sonnet 4.5

```python theme={null}
response = client.chat.completions.create(
    model="stratus-x1ac-base-claude-sonnet-4-5",
    messages=[
        {"role": "user", "content": "Explain how state machines work"}
    ]
)
```

### With DeepSeek R1 (via OpenRouter)

```python theme={null}
response = client.chat.completions.create(
    model="stratus-x1ac-base-deepseek/deepseek-r1",
    messages=[
        {"role": "user", "content": "Reason through this multi-step planning problem"}
    ]
)
```

### With Llama 3.3 70B (via OpenRouter)

```python theme={null}
response = client.chat.completions.create(
    model="stratus-x1ac-base-meta-llama/llama-3.3-70b-instruct",
    messages=[
        {"role": "user", "content": "Summarize the key actions on this page"}
    ]
)
```

### With Gemini 2.5 Pro (via OpenRouter)

```typescript theme={null}
const response = await client.chat.completions.create({
  model: 'stratus-x1ac-base-google/gemini-2.5-pro',
  messages: [
    { role: 'user', content: 'Analyze this multi-step workflow' }
  ]
});
```

### Multi-Step Rollout

```python theme={null}
import requests

response = requests.post(
    "https://api.stratus.run/v1/rollout",
    headers={
        "Authorization": f"Bearer {os.environ['STRATUS_API_KEY']}",
        "Content-Type": "application/json"
    },
    json={
        "goal": "Find the latest TypeScript documentation for generics",
        "max_steps": 3
    }
)
```

## Production Status

<Note>
  **Currently Deployed:** `api.stratus.run` has the `base` size loaded.

  To use other sizes (`small`, `large`, `xl`, `huge`), contact support to load additional checkpoint files.
</Note>

### Health Check

```bash theme={null}
curl https://api.stratus.run/health
```

Response:

```json theme={null}
{
  "status": "healthy",
  "stratus_models_loaded": ["base"],
  "llm_providers": ["openai", "anthropic", "openrouter"],
  "vault": "connected",
  "version": "1.0.0",
  "git_sha": "abc1234"
}
```

## Pricing

Pricing varies by:

* **Stratus size** (small \< base \< large \< xl \< huge)
* **LLM provider** (OpenAI vs Anthropic)
* **LLM model** (mini \< standard \< opus)

Contact support for detailed pricing information.

## API Reference

<CardGroup cols={2}>
  <Card title="Chat Completions" icon="messages" href="/docs/api-reference/chat-completions">
    OpenAI-compatible chat endpoint
  </Card>

  <Card title="Embeddings" icon="vector-square" href="/docs/api-reference/embeddings">
    World model embeddings endpoint
  </Card>

  <Card title="Rollout" icon="sitemap" href="/docs/api-reference/rollout">
    Multi-step planning endpoint
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/docs/api-reference/errors">
    Error codes and handling
  </Card>
</CardGroup>
