Единый API для доступа к ведущим языковым моделям из России
Три простых шага для начала использования API:
https://rus-gpt.com/api/v1Authorization: Bearer YOUR_API_KEY
Основной эндпоинт для генерации текста. Совместим с OpenAI SDK.
from openai import OpenAI
client = OpenAI(
base_url="https://rus-gpt.com/api/v1",
api_key="rusgpt-YOUR_API_KEY",
)
response = client.chat.completions.create(
model="qwen/qwen3-30b-a3b-instruct-2507",
messages=[
{"role": "user", "content": "5+7=?"}
],
)
print(response.choices[0].message.content)
curl https://rus-gpt.com/api/v1/chat/completions -H "Authorization: Bearer rusgpt-YOUR_API_KEY" -H "Content-Type: application/json" -d '{
"model": "qwen/qwen3-30b-a3b-instruct-2507",
"messages": [
{"role": "user", "content": "5+7=?"}
]
}'
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://rus-gpt.com/api/v1',
apiKey: 'rusgpt-YOUR_API_KEY',
});
const response = await client.chat.completions.create({
model: 'qwen/qwen3-30b-a3b-instruct-2507',
messages: [
{ role: 'user', content: '5+7=?' }
],
});
console.log(response.choices[0].message.content);
package main
import (
"context"
"fmt"
"github.com/sashabaranov/go-openai"
)
func main() {
config := openai.DefaultConfig("rusgpt-YOUR_API_KEY")
config.BaseURL = "https://rus-gpt.com/api/v1"
client := openai.NewClientWithConfig(config)
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: "qwen/qwen3-30b-a3b-instruct-2507",
Messages: []openai.ChatCompletionMessage{
{Role: "user", Content: "5+7=?"},
},
},
)
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}
Для получения ответа по частям используйте параметр stream: true.
from openai import OpenAI
client = OpenAI(
base_url="https://rus-gpt.com/api/v1",
api_key="rusgpt-YOUR_API_KEY",
)
stream = client.chat.completions.create(
model="qwen/qwen3-30b-a3b-instruct-2507",
messages=[{"role": "user", "content": "5+7=?"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
curl https://rus-gpt.com/api/v1/chat/completions -H "Authorization: Bearer rusgpt-YOUR_API_KEY" -H "Content-Type: application/json" -d '{
"model": "qwen/qwen3-30b-a3b-instruct-2507",
"messages": [{"role": "user", "content": "5+7=?"}],
"stream": true
}'
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://rus-gpt.com/api/v1',
apiKey: 'rusgpt-YOUR_API_KEY',
});
const stream = await client.chat.completions.create({
model: 'qwen/qwen3-30b-a3b-instruct-2507',
messages: [{ role: 'user', content: '5+7=?' }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || '';
process.stdout.write(content);
}
package main
import (
"context"
"fmt"
"io"
"github.com/sashabaranov/go-openai"
)
func main() {
config := openai.DefaultConfig("rusgpt-YOUR_API_KEY")
config.BaseURL = "https://rus-gpt.com/api/v1"
client := openai.NewClientWithConfig(config)
stream, err := client.CreateChatCompletionStream(
context.Background(),
openai.ChatCompletionRequest{
Model: "qwen/qwen3-30b-a3b-instruct-2507",
Messages: []openai.ChatCompletionMessage{
{Role: "user", Content: "5+7=?"},
},
Stream: true,
},
)
if err != nil {
panic(err)
}
defer stream.Close()
for {
response, err := stream.Recv()
if err == io.EOF {
break
}
if err != nil {
panic(err)
}
fmt.Print(response.Choices[0].Delta.Content)
}
}
Альтернативный эндпоинт, совместимый с Anthropic SDK.
import httpx
response = httpx.post(
"https://rus-gpt.com/api/v1/messages",
headers={
"Authorization": "Bearer rusgpt-YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"model": "qwen/qwen3-30b-a3b-instruct-2507",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "5+7=?"}
],
},
)
data = response.json()
print(data["content"][0]["text"])
curl https://rus-gpt.com/api/v1/messages -H "Authorization: Bearer rusgpt-YOUR_API_KEY" -H "Content-Type: application/json" -d '{
"model": "qwen/qwen3-30b-a3b-instruct-2507",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "5+7=?"}
]
}'
const response = await fetch('https://rus-gpt.com/api/v1/messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer rusgpt-YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'qwen/qwen3-30b-a3b-instruct-2507',
max_tokens: 1024,
messages: [
{ role: 'user', content: '5+7=?' }
],
}),
});
const data = await response.json();
console.log(data.content[0].text);
Выбор модели зависит от вашей задачи. Вот рекомендации:
| Задача | Рекомендуемая модель | Почему |
|---|---|---|
| Программирование | anthropic/claude-sonnet-4.5 |
Баланс качества и скорости |
| Программирование (open source) | z-ai/glm-4.7 |
Открытая модель для кода |
| Сложный анализ | anthropic/claude-opus-4.6 |
Максимальное качество |
| Простые задачи | qwen/qwen3-30b-a3b-instruct-2507 |
Низкая стоимость |
| Генерация изображений | google/gemini-3-pro-image-preview |
Лучшее качество (nano banana 2) |
Оплата за токены (input + output). Цены указаны за 1 миллион токенов.
Полный список моделей с актуальными ценами: Страница моделей
Вы можете проверить скорость и сравнить с другими провайдерами.
Управляйте балансом и отслеживайте использование API:
Текущий баланс и статистика
АккаунтИстория запросов к API
АктивностьПополнение баланса картой
ПополнитьChat Completions в формате OpenAI
Messages API в формате Anthropic
Список доступных моделей
Передайте API-ключ одним из способов:
Authorization: Bearer rusgpt-xxxxx... (рекомендуется)x-api-key: rusgpt-xxxxx...API возвращает стандартные HTTP-коды ошибок:
400 - Неверный запрос (проверьте параметры)401 - Неавторизован (проверьте API-ключ)402 - Недостаточно средств на балансе404 - Модель не найдена429 - Превышен лимит запросов500 - Внутренняя ошибка сервераЕсли у вас возникли вопросы или проблемы: