OpenAI API из России, без VPN
Ключ к моделям GPT с оплатой картой РФ в рублях. Формат OpenAI Responses API: официальный SDK OpenAI и Codex CLI работают без переделки, меняются только адрес и ключ.
from openai import OpenAI
client = OpenAI(
base_url="https://api.aprium.ru/v1",
api_key="ваш_ключ",
)
response = client.responses.create(
model="gpt-6.1-sol",
input="Привет! Чем ты можешь помочь?",
)
print(response.output_text)- Адрес API
https://api.aprium.ru/v1- Формат
- OpenAI Responsesподходят официальные SDK
- Модели
- 2 модели GPTодин ключ на все
- Оплата
- Картой РФ в рубляхбез подписки, за токены
Модели GPT в API
Модель выбирается полем model в запросе. Основная — GPT-6.1 Sol; на странице каждой модели — задачи, расход и советы.
Подключение OpenAI API
Примеры на GPT-6.1 Sol: для другой модели замените имя в поле model. Выберите задачу слева и язык над кодом.
- Адрес API
https://api.aprium.ru/v1- Модель
gpt-6.1-sol- Заголовок
Authorization: Bearer ключ
Подключение ключа
# pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APRIUM_API_KEY"], # ключ: ai.aprium.ru/#keys
base_url="https://api.aprium.ru/v1",
)Перед запуском: export APRIUM_API_KEY="ваш_ключ". Или задайте OPENAI_BASE_URL и OPENAI_API_KEY — SDK прочитает их сам.
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APRIUM_API_KEY, // ключ: ai.aprium.ru/#keys
baseURL: "https://api.aprium.ru/v1",
});Перед запуском: export APRIUM_API_KEY="ваш_ключ".
export APRIUM_API_KEY="ваш_ключ"
curl https://api.aprium.ru/v1/responses \
-H "Authorization: Bearer $APRIUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-6.1-sol", "input": "Проверка связи"}'Если ключ верный, придёт ответ модели. Ошибка 401 значит, что ключ не указан или указан неверно.
Запрос с задачей
response = client.responses.create(
model="gpt-6.1-sol",
instructions="Отвечай по делу, без вступлений.",
input="Составь план статьи про налоговый вычет за обучение",
)
print(response.output_text)const response = await client.responses.create({
model: "gpt-6.1-sol",
instructions: "Отвечай по делу, без вступлений.",
input: "Составь план статьи про налоговый вычет за обучение",
});
console.log(response.output_text);curl https://api.aprium.ru/v1/responses \
-H "Authorization: Bearer $APRIUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"instructions": "Отвечай по делу, без вступлений.",
"input": "Составь план статьи про налоговый вычет за обучение"
}'Получение результата
print(response.output_text) # текст ответа
print(response.usage) # input_tokens, cached_tokens, output_tokens, reasoning_tokens
# Ответ по частям, как в чате
stream = client.responses.create(
model="gpt-6.1-sol",
input="Расскажи про осень",
stream=True,
)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)console.log(response.output_text); // текст ответа
console.log(response.usage); // input_tokens, cached_tokens, output_tokens, reasoning_tokens
// Ответ по частям, как в чате
const stream = await client.responses.create({
model: "gpt-6.1-sol",
input: "Расскажи про осень",
stream: true,
});
for await (const event of stream) {
if (event.type === "response.output_text.delta") process.stdout.write(event.delta);
}# По частям: "stream": true и -N, чтобы curl не копил вывод
curl -N https://api.aprium.ru/v1/responses \
-H "Authorization: Bearer $APRIUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-6.1-sol", "input": "Расскажи про осень", "stream": true}'Текст приходит в событиях response.output_text.delta, остальные события можно пропускать.
Параметры генерации
response = client.responses.create(
model="gpt-6.1-sol",
instructions="Отвечай по делу, без вступлений.",
max_output_tokens=4000, # предел ответа вместе с рассуждением
reasoning={"effort": "high"}, # low, medium, high, xhigh, max
input="Сократи текст до трёх пунктов: ...",
)Уровни рассуждения: low, medium, high, xhigh, max, по умолчанию medium. Рассуждение оплачивается как вывод.
const response = await client.responses.create({
model: "gpt-6.1-sol",
instructions: "Отвечай по делу, без вступлений.",
max_output_tokens: 4000, // предел ответа вместе с рассуждением
reasoning: { effort: "high" }, // low, medium, high, xhigh, max
input: "Сократи текст до трёх пунктов: ...",
});Уровни рассуждения: low, medium, high, xhigh, max, по умолчанию medium. Рассуждение оплачивается как вывод.
curl https://api.aprium.ru/v1/responses \
-H "Authorization: Bearer $APRIUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"instructions": "Отвечай по делу, без вступлений.",
"max_output_tokens": 4000,
"reasoning": {"effort": "high"},
"input": "Сократи текст до трёх пунктов: ..."
}'Уровни рассуждения: low, medium, high, xhigh, max, по умолчанию medium. Рассуждение оплачивается как вывод.
Ответ в JSON
response = client.responses.create(
model="gpt-6.1-sol",
input="Город: Казань, население 1,3 млн",
text={"format": {
"type": "json_schema", "name": "city", "strict": True,
"schema": {
"type": "object",
"properties": {"city": {"type": "string"}, "population_mln": {"type": "number"}},
"required": ["city", "population_mln"],
"additionalProperties": False,
},
}},
)
print(response.output_text) # {"city":"Казань","population_mln":1.3}const response = await client.responses.create({
model: "gpt-6.1-sol",
input: "Город: Казань, население 1,3 млн",
text: { format: {
type: "json_schema", name: "city", strict: true,
schema: {
type: "object",
properties: { city: { type: "string" }, population_mln: { type: "number" } },
required: ["city", "population_mln"],
additionalProperties: false,
},
} },
});
console.log(JSON.parse(response.output_text));curl https://api.aprium.ru/v1/responses \
-H "Authorization: Bearer $APRIUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": "Город: Казань, население 1,3 млн",
"text": {"format": {"type": "json_schema", "name": "city", "strict": true,
"schema": {"type": "object",
"properties": {"city": {"type": "string"}, "population_mln": {"type": "number"}},
"required": ["city", "population_mln"], "additionalProperties": false}}}
}'Картинки
import base64
with open("schet.png", "rb") as f:
img = base64.b64encode(f.read()).decode()
response = client.responses.create(
model="gpt-6.1-sol",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Выпиши сумму, дату и ИНН со счёта"},
{"type": "input_image", "image_url": f"data:image/png;base64,{img}"},
],
}],
)
print(response.output_text)Можно передать и ссылку на картинку в интернете: image_url с адресом https://…
import { readFileSync } from "node:fs";
const img = readFileSync("schet.png").toString("base64");
const response = await client.responses.create({
model: "gpt-6.1-sol",
input: [{
role: "user",
content: [
{ type: "input_text", text: "Выпиши сумму, дату и ИНН со счёта" },
{ type: "input_image", image_url: `data:image/png;base64,${img}` },
],
}],
});
console.log(response.output_text);IMG=$(base64 < schet.png | tr -d '\n')
curl https://api.aprium.ru/v1/responses \
-H "Authorization: Bearer $APRIUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": [{"role": "user", "content": [
{"type": "input_text", "text": "Выпиши сумму, дату и ИНН со счёта"},
{"type": "input_image", "image_url": "data:image/png;base64,'"$IMG"'"}
]}]
}'Агенты и редакторы кода
GPT в привычном инструменте: укажите адрес aprium и ключ, остальное работает как с OpenAI напрямую. В примерах — GPT-6.1 Sol.
Codex CLI
Агент OpenAI для терминала
5 шаговСоздайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например
codex, и скопируйте ключ.Установите Node.js 18 или новее с nodejs.org, затем Codex CLI:
npm install -g @openai/codexПроверка:
codex --version.Добавьте провайдера aprium в
~/.codex/config.toml(файла нет — создайте):model = "gpt-6.1-sol" model_provider = "aprium" model_reasoning_effort = "medium" [model_providers.aprium] name = "Aprium" base_url = "https://api.aprium.ru/v1" env_key = "APRIUM_API_KEY" wire_api = "responses"Уровень рассуждения меняется в
model_reasoning_effortили командой/modelв сессии.Сохраните ключ в переменной окружения. Чтобы не вводить каждый раз, добавьте строку в
~/.zshrcили~/.bashrc:export APRIUM_API_KEY="ваш_ключ"- Проверка
Запустите
codexв папке проекта и задайте простой вопрос, например «какие файлы в проекте?». Пришёл ответ, значит всё подключено.codex
OpenCode
Открытый агент для терминала
5 шаговСоздайте ключ: Аккаунт → Ключи → «Создать ключ». Задайте имя, например
opencode, и скопируйте ключ.Установите OpenCode:
npm install -g opencode-aiДобавьте провайдера в
opencode.json: в корне проекта или глобально в~/.config/opencode/opencode.json.{ "$schema": "https://opencode.ai/config.json", "provider": { "aprium-gpt": { "npm": "@ai-sdk/openai", "name": "aprium GPT", "options": { "baseURL": "https://api.aprium.ru/v1", "apiKey": "{env:APRIUM_API_KEY}" }, "models": { "gpt-6.1-sol": { "name": "GPT-6.1 Sol" }, "gpt-6-astra": { "name": "GPT-6 Astra" }, "gpt-5.5": { "name": "GPT-5.5" } } } } }Пакет
@ai-sdk/openaiходит в Responses API — тот формат, который работает у GPT через aprium.Сохраните ключ в переменной окружения:
export APRIUM_API_KEY="ваш_ключ"- Проверка
Запустите
opencode, введите/modelsи выберите GPT-6.1 Sol в группе aprium GPT. Задайте вопрос: ответ пришёл, значит всё работает.
Ключ во всех примерах: ваш_ключ. Подставьте свой из Аккаунт → Ключи.
Перенос кода с api.openai.com
Если код уже работает с OpenAI напрямую, переделывать его не нужно: меняются три строки.
Адрес
Замените https://api.openai.com/v1 на
https://api.aprium.ru/v1В SDK это base_url (Python) или baseURL (Node.js), либо переменная OPENAI_BASE_URL — тогда код не меняется вовсе.
Ключ
Вместо ключа OpenAI подставьте ключ aprium
Authorization: BearerЗаголовок тот же. В SDK — api_key или переменная OPENAI_API_KEY. Ключ один на все модели.
Модель
Укажите модель из списка выше
gpt-6.1-solРаботают текущие модели GPT из списка выше. Старые модели вроде gpt-4o вернут ошибку 404.
Справка
POST https://api.aprium.ru/v1/responses. Параметры тела запроса, разница между моделями и ответы с ошибкой.
Параметры
modelстрокаобязательный- Имя модели:
gpt-6.1-sol,gpt-6-astraилиgpt-5.5 inputстрока или массивобязательный- Задача: строка или сообщения с ролями. Картинки — блоками
input_image instructionsстрока- Правила для модели: роль, тон, формат ответа
max_output_tokensчисло- Предел ответа в токенах, вместе с рассуждением
reasoning.effortlow … max- Глубина рассуждения. У Sol и Astra — от
lowдоmax, у GPT-5.5 — отnoneдоxhigh; по умолчаниюmedium text.formatобъект- Ответ строго по JSON-схеме:
{"type": "json_schema", …} streamtrue или false- Получать ответ частями: текст — в событиях
response.output_text.delta
Ошибки
- 400
- Неверный запросПроверьте model и input. Уровень рассуждения должен быть из списка для этой модели
- 401
- Нет доступаКлюч не указан или указан неверно. Ключ передаётся в заголовке
Authorization: Bearer … - 402
- Закончился балансПополните баланс в Аккаунте, ключ менять не нужно
- 404
- Нет такой моделиПроверьте имя модели по таблице моделей. Старые модели, например
gpt-4o, не работают - 429
- Слишком частоПодождите и повторите запрос. Официальные SDK повторяют его сами
- 502, 503
- Модель временно недоступнаПоставщик не отвечает. Повторите позже или переключитесь на другую модель GPT
Вопросы о OpenAI API
Ключ, оплата и подключение коротко.
Как получить API-ключ OpenAI в России?
Зарегистрируйтесь в aprium, пополните баланс картой РФ, откройте Аккаунт → Ключи и нажмите «Создать ключ». Ключ работает со всеми моделями GPT, VPN, зарубежная карта и аккаунт OpenAI не нужны.
Это ключ OpenAI?
Нет, это ключ aprium. Запросы с ним идут на https://api.aprium.ru/v1, а aprium передаёт их моделям GPT. Формат тот же, что у OpenAI Responses API, поэтому меняются только адрес и ключ.
Это ChatGPT?
ChatGPT — приложение OpenAI, а здесь те же модели GPT по API: для своего кода, ботов и агентов. Для переписки без программирования есть чат aprium в браузере, там можно выбрать любую модель GPT.
Сколько стоит GPT API?
Оплата за токены, без подписки. Вход стоит от $0,41 (≈ 34,52 ₽) за 1 млн токенов у GPT-6.1 Sol до $2,05 (≈ 173 ₽) у GPT-6 Astra. Все цены и калькулятор — на странице «Модели и цены».
Работает ли Chat Completions?
Основной формат для GPT в aprium — Responses API (/v1/responses): так работают официальный SDK OpenAI и Codex CLI. Запросы /v1/chat/completions для простых ответов тоже проходят, но вызов инструментов в этом формате у GPT-6.1 Sol не поддерживается, поэтому агентов подключайте через Responses.
Как оплатить?
Картой Мир, Visa или Mastercard в рублях. Подписки нет: с баланса списывается стоимость каждого запроса. Подробнее на странице «Оплата и тарифы».
Один ключ работает со всеми моделями?
Да. Один ключ aprium подходит для Claude, GPT и Gemini: модель выбирается полем model в каждом запросе. Можно завести несколько ключей для разных проектов, расход по каждому виден отдельно.
Подключите OpenAI API
Создайте ключ и подключите GPT к своему коду, агенту или редактору.