---
title: Jan | RunAPI
description: Add RunAPI as a Jan provider and verify a chat.
url: https://runapi.ai/docs/resources/application-practices/jan.md
canonical: https://runapi.ai/docs/resources/application-practices/jan
locale: en
---

> HTML version: https://runapi.ai/docs/resources/application-practices/jan
> Site index for agents: https://runapi.ai/llms.txt

# Jan

Connect Jan to RunAPI with a custom OpenAI-compatible provider. Create a
standard RunAPI API key in the [Authentication
Guide](https://runapi.ai/docs/guides/authentication.md) before continuing.

## Install Jan

Download and install the desktop application from the [official Jan
website][1], then open its settings.



[1]: https://jan.ai/

## Add the RunAPI provider

1.  Open **Settings -> Model Providers -> Add Provider**.
2.  Set the API format to **OpenAI-compatible** and the provider name to
    `RunAPI`.
3.  Set the Base URL to `https://runapi.ai/v1`, enter your RunAPI API
    key, and create the provider.
4.  Select a discovered model or add an exact identifier from the [Model
    Catalog](https://runapi.ai/models) in the provider's **Models** area.

The selected API format is OpenAI-compatible, so this Base URL includes
`/v1`. A provider using another public protocol must use that protocol's
own client configuration instead.

When the provider is saved, Jan requests `{base_url}/models`, which
resolves to `https://runapi.ai/v1/models`. If the model you need is not
returned, use the manual **+** action instead of changing the Base URL.

## Configure model capabilities

Jan does not infer every capability for a custom provider. Enable only
the vision, tools, or audio behavior that the selected model declares in
the [Model Catalog](https://runapi.ai/models). A UI switch cannot add an unsupported API
capability.

## Verify the connection

Start a new chat, select the RunAPI model, and send `Reply with the word
connected.` A normal complete or streamed response confirms the provider
and model are active.

## Troubleshoot

* **Every request returns `404`:** make sure the Base URL includes
  `/v1`; Jan appends the operation path.
* **No models appear:** confirm the Base URL is `https://runapi.ai/v1`,
  then add the exact model identifier manually.
* **Provider creation returns `401` or `403`:** replace the key with a
  valid standard RunAPI API key, not a Management Key.
* **Capability controls do not match the model:** configure each custom
  model from its declared capabilities rather than relying on automatic
  detection.
* **A fallback key is not tried:** Jan rotates keys for `401`, `403`, or
  `429`; other errors do not trigger key rotation.

For shared protocol behavior, use the [LLM API
Quickstart](https://runapi.ai/docs/guides/llm-api/quickstart.md). For request and response
fields, use the [Chat Completions API
Reference](https://runapi.ai/docs/api/openai/chat-completions.md).

---

## More from RunAPI

- [Home](https://runapi.ai/.md)
- [Models](https://runapi.ai/models.md)
- [AI Video API Comparison](https://runapi.ai/ai-video-api-comparison.md)
- [OpenClaw Integration](https://runapi.ai/openclaw.md)
- [Best API for OpenClaw](https://runapi.ai/best-api-for-openclaw.md)
- [OpenClaw Image Generation](https://runapi.ai/openclaw-image-generation.md)
- [Hermes Agent Integration](https://runapi.ai/hermes-agent.md)
- [Pricing](https://runapi.ai/pricing.md)
- [Claude API Pricing](https://runapi.ai/claude-api-pricing.md)
- [ChatGPT API Pricing](https://runapi.ai/chatgpt-api-pricing.md)
- [OpenAI API Pricing](https://runapi.ai/openai-api-pricing.md)
- [Gemini API Pricing](https://runapi.ai/gemini-api-pricing.md)
- [Claude Code Pricing](https://runapi.ai/claude-code-pricing.md)
- [Claude Code API](https://runapi.ai/claude-code-api.md)
- [Claude Code vs Cursor](https://runapi.ai/claude-code-vs-cursor.md)
- [Claude Max vs API](https://runapi.ai/claude-max-vs-api.md)
- [Requesty Alternative](https://runapi.ai/requesty-alternative.md)
- [Docs](https://runapi.ai/docs/guides)
- [SDK](https://runapi.ai/sdk.md)
- [Skills](https://runapi.ai/skills.md)
- [MCP Server](https://runapi.ai/mcp.md)
- [CLI](https://runapi.ai/cli.md)
- [Feedback](https://runapi.ai/)
- [Contact](mailto:support@runapi.ai)
- [Terms](https://runapi.ai/terms.md)
- [Privacy](https://runapi.ai/privacy.md)
- [Site index for agents](https://runapi.ai/llms.txt)

Contact: contact@runapi.ai

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/icon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "TechArticle",
    "headline": "Jan",
    "description": "Add RunAPI as a Jan provider and verify a chat.",
    "url": "https://runapi.ai/docs/resources/application-practices/jan",
    "mainEntityOfPage": "https://runapi.ai/docs/resources/application-practices/jan"
  }
]
```
