Skip to content
Open
Show file tree
Hide file tree
Changes from 4 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 @@ -108,6 +108,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 @@ -375,4 +375,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 @@ -47,6 +47,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 @@ -66,6 +68,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