Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion autoqa/checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,10 @@ In Remote Model Providers:
- [ ] Groq
- [ ] Gemini
- [ ] Hugging Face
- [ ] CometAPI
- [ ] Models should appear as available on the selectable dropdown in chat input once some value is input in the API key field. (it could be the wrong API key)
- [ ] Once a valid API key is used, user can select a model from that provider and chat without any error.
- [ ] Delete a model and ensure that it doesn't show up in the `Modesl` list view or in the selectable dropdown in chat input.
- [ ] Delete a model and ensure that it doesn't show up in the `Models` list view or in the selectable dropdown in chat input.
- [ ] Ensure that a deleted model also not selectable or appear in old threads that used it.
- [ ] Adding of new model manually works and user can chat with the newly added model without error (you can add back the model you just delete for testing)
- [ ] [0.6.9] Make sure that Ollama set-up as a custom provider work with Jan
Expand Down
Binary file added docs/src/pages/docs/desktop/_assets/cometapi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/src/pages/docs/desktop/remote-models/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,8 @@
},
"huggingface": {
"title": "Hugging Face"
},
"cometapi": {
"title": "CometAPI"
}
}
107 changes: 107 additions & 0 deletions docs/src/pages/docs/desktop/remote-models/cometapi.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: CometAPI
description: Learn how to integrate CometAPI with Jan for enhanced functionality.
keywords:
[
CometAPI,
Jan,
Jan AI,
ChatGPT alternative,
conversational AI,
large language model,
integration,
CometAPI integration,
API integration,
500+ AI models,
unified API
]
---

import { Callout, Steps } from 'nextra/components'
import { Settings, Plus } from 'lucide-react'

# CometAPI

Jan supports [CometAPI](https://www.cometapi.com/?utm_source=jan&utm_campaign=integration&utm_medium=integration&utm_content=integration) integration, providing access to 500+ AI models
through a unified API. CometAPI aggregates models from various providers including GPT, Claude,
Gemini, Grok, DeepSeek, and Qwen series, offering competitive pricing and comprehensive model access.

## Integrate CometAPI with Jan

<Steps>

### Step 1: Get Your API Key
1. Visit [CometAPI Console](https://api.cometapi.com/console/token) and sign in
2. Create a new API key and/or copy your existing one

<Callout type='info'>
Ensure your API key has sufficient credits. CometAPI credits work across all 500+ available models.
</Callout>

### Step 2: Configure Jan

1. Navigate to **Settings** (<Settings width={16} height={16} style={{display:"inline"}}/>)
2. Under **Model Providers**, select **CometAPI**
3. Insert your **API Key**

<br/>
![CometAPI](../_assets/cometapi.png)
<br/>

### Step 3: Start Using CometAPI Models

1. Jump into any existing **Chat** or create a new one
2. Select any CometAPI model from the **model selector**
3. Start chatting with access to 500+ models
</Steps>

## Available CometAPI Models

Jan automatically fetches CometAPI's available models. The platform provides access to:

### Popular Model Series:
- **GPT Series**: `gpt-5-chat-latest`, `chatgpt-4o-latest`, `gpt-5-mini`, `gpt-5-nano`, `gpt-5`, `gpt-4.1`, `gpt-4o-mini`
- **Claude Series**: `claude-opus-4-1-20250805`, `claude-sonnet-4-20250514`, `claude-3-7-sonnet-latest`, `claude-3-5-haiku-latest`
- **Gemini Series**: `gemini-2.5-pro`, `gemini-2.5-flash`, `gemini-2.5-flash-lite`, `gemini-2.0-flash`
- **Grok Series**: `grok-4-0709`, `grok-3`, `grok-3-mini`, `grok-2-image-1212`
- **DeepSeek Series**: `deepseek-v3.1`, `deepseek-v3`, `deepseek-r1-0528`, `deepseek-chat`, `deepseek-reasoner`
- **Qwen Series**: `qwen3-30b-a3b`, `qwen3-coder-plus-2025-07-22`

### Custom Model Configuration:
For models not automatically listed in Jan, you can manually add them by following the instructions in [Add Cloud Models](/docs/manage-models):
- See the complete list of available models at [CometAPI Pricing](https://api.cometapi.com/pricing)
- Use the exact model `id` from the [CometAPI Models API](https://api.cometapi.com/v1/models)
- The `id` property must match the model name exactly (e.g., `gpt-5-mini`, `claude-sonnet-4-20250514`)

<Callout type='warning'>
CometAPI automatically filters out non-chat models (image generation, audio, video, and utility models) to show only conversational AI models in Jan.
</Callout>

## Troubleshooting

Common issues and solutions:

**1. API Key Issues**
- Verify your API key is correct and not expired
- Check if you have sufficient credits in your CometAPI account
- Ensure you have access to the model you're trying to use
- Test your API key with the [CometAPI Models endpoint](https://api.cometapi.com/v1/models)

**2. Connection Problems**
- Check your internet connection
- Verify CometAPI service availability
- Look for error messages in [Jan's logs](/docs/troubleshooting#how-to-get-error-logs)
- Ensure the base URL `https://api.cometapi.com/v1/` is accessible

**3. Model Unavailable**
- Confirm the model is currently available on CometAPI
- Check if you're using the correct model ID format
- Verify your account has access to the specific model
- Some models may require higher tier access

**4. Rate Limiting**
- CometAPI implements rate limiting per model and tier
- Consider upgrading your plan for higher rate limits
- Distribute requests across multiple models if needed

Need more help? Join the [CometAPI Discord community](https://discord.gg/cometapi) or check the [CometAPI documentation](https://api.cometapi.com/doc). You can also visit their [GitHub organization](https://github.com/cometapi-dev) for additional resources.
1 change: 1 addition & 0 deletions tests/checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ In Remote Model Providers:
- [ ] Groq
- [ ] Gemini
- [ ] Hugging Face
- [ ] CometAPI
- [ ] Models should appear as available on the selectable dropdown in chat input once some value is input in the API key field. (it could be the wrong API key)
- [ ] Once a valid API key is used, user can select a model from that provider and chat without any error.
- [ ] Delete a model and ensure that it doesn't show up in the `Models` list view or in the selectable dropdown in chat input.
Expand Down
8 changes: 8 additions & 0 deletions web-app/public/images/model-provider/cometapi.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
223 changes: 223 additions & 0 deletions web-app/src/consts/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -385,4 +385,227 @@ export const predefinedProviders = [
},
],
},
{
active: true,
api_key: '',
base_url: 'https://api.cometapi.com/v1',
explore_models_url: 'https://api.cometapi.com/pricing',
provider: 'cometapi',
settings: [
{
key: 'api-key',
title: 'API Key',
description:
"The CometAPI uses API keys for authentication. Visit your [API Keys](https://api.cometapi.com/console/token) page to retrieve the API key you'll use in your requests.",
controller_type: 'input',
controller_props: {
placeholder: 'Insert API Key',
value: '',
type: 'password',
input_actions: ['unobscure', 'copy'],
},
},
{
key: 'base-url',
title: 'Base URL',
description:
'The base endpoint to use. See the [CometAPI API documentation](https://api.cometapi.com/doc) for more information.',
controller_type: 'input',
controller_props: {
placeholder: 'https://api.cometapi.com/v1',
value: 'https://api.cometapi.com/v1',
},
},
],
models: [
// GPT series
{
id: 'gpt-5-chat-latest',
name: 'GPT-5 Chat Latest',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gpt-5-mini',
name: 'GPT-5 Mini',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gpt-5-nano',
name: 'GPT-5 Nano',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gpt-5',
name: 'GPT-5',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gpt-4.1',
name: 'GPT-4.1',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gpt-4o-mini',
name: 'GPT-4o Mini',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'o4-mini-2025-04-16',
name: 'o4-mini (2025-04-16)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'o3-pro-2025-06-10',
name: 'o3-pro (2025-06-10)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
// Claude series
{
id: 'claude-opus-4-1-20250805',
name: 'Claude Opus 4.1 (2025-08-05)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'claude-opus-4-1-20250805-thinking',
name: 'Claude Opus 4.1 Thinking (2025-08-05)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'claude-sonnet-4-20250514',
name: 'Claude Sonnet 4 (2025-05-14)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'claude-sonnet-4-20250514-thinking',
name: 'Claude Sonnet 4 Thinking (2025-05-14)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'claude-3-7-sonnet-latest',
name: 'Claude 3.7 Sonnet Latest',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'claude-3-5-haiku-latest',
name: 'Claude 3.5 Haiku Latest',
version: '1.0',
description: '',
capabilities: ['completion'],
},
// Gemini series
{
id: 'gemini-2.5-pro',
name: 'Gemini 2.5 Pro',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gemini-2.5-flash',
name: 'Gemini 2.5 Flash',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gemini-2.5-flash-lite',
name: 'Gemini 2.5 Flash Lite',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'gemini-2.0-flash',
name: 'Gemini 2.0 Flash',
version: '1.0',
description: '',
capabilities: ['completion'],
},
// Grok series
{
id: 'grok-4',
name: 'Grok 4',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'grok-4-fast-non-reasoning',
name: 'Grok 4 Fast Non-Reasoning',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'grok-4-fast-reasoning',
name: 'Grok 4 Fast Reasoning',
version: '1.0',
description: '',
capabilities: ['completion'],
},
// DeepSeek series
{
id: 'deepseek-v3.1',
name: 'DeepSeek V3.1',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'deepseek-chat',
name: 'DeepSeek Chat',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'deepseek-reasoner',
name: 'DeepSeek Reasoner',
version: '1.0',
description: '',
capabilities: ['completion'],
},
// Qwen series
{
id: 'qwen3-30b-a3b',
name: 'Qwen3 30B A3B',
version: '1.0',
description: '',
capabilities: ['completion'],
},
{
id: 'qwen3-coder-plus-2025-07-22',
name: 'Qwen3 Coder Plus (2025-07-22)',
version: '1.0',
description: '',
capabilities: ['completion'],
},
],
},
]
4 changes: 4 additions & 0 deletions web-app/src/lib/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ export function getProviderLogo(provider: string) {
return '/images/model-provider/openai.svg'
case 'azure':
return '/images/model-provider/azure.svg'
case 'cometapi':
return '/images/model-provider/cometapi.svg'
default:
return undefined
}
Expand All @@ -73,6 +75,8 @@ export const getProviderTitle = (provider: string) => {
return 'Gemini'
case 'huggingface':
return 'Hugging Face'
case 'cometapi':
return 'CometAPI'
default:
return provider.charAt(0).toUpperCase() + provider.slice(1)
}
Expand Down