---
title: Настройка Codex CLI с apiToken.sale — профиль GPT-5.6
description: "Настройте Codex CLI именованным профилем model_providers на OpenAI-совместимый эндпоинт apiToken.sale — модели GPT-5.6 на предоплаченном балансе со скидкой до 70%, без аккаунта ChatGPT."
url: https://apitoken.sale/ru/docs/learn/codex-cli-setup
language: ru
---

# Запускайте Codex CLI на apiToken.sale

Codex CLI полностью работает на аутентификации по API-ключу, если задать кастомного провайдера модели. Один TOML-профиль направляет его на apiToken.sale, и предоплаченный баланс покрывает каждую сессию — без входа в ChatGPT и со скидкой до 70% от официального расхода.

## Создайте профиль

Сохраните это как ~/.codex/apitoken.config.toml. Именованный профиль не трогает конфигурацию Codex по умолчанию и возможный вход в ChatGPT — вы включаете его явно на каждый запуск.

```
# ~/.codex/apitoken.config.toml
model = "gpt-5.6-sol"
model_provider = "apitoken"

[model_providers.apitoken]
name = "apiToken.sale"
base_url = "https://openai.api.apitoken.sale/v1"
wire_api = "responses"
env_key = "APITOKEN_API_KEY"
```

env_key задаёт имя переменной окружения, из которой Codex читает ключ, — секрет остаётся в шелле и никогда не попадает в TOML-файл.

## Запуск и проверка

```
export APITOKEN_API_KEY=sk-pool-•••
codex --profile apitoken
```

- Всегда явно передавайте --profile apitoken, чтобы не было двусмысленности, какой провайдер — и какая переменная — активен.
- Меняйте модель под проект строкой model: gpt-5.6-sol для самой сложной работы, gpt-5.6-terra на каждый день, gpt-5.6-luna для быстрых дешёвых шагов.
- GET https://openai.api.apitoken.sale/v1/models с тем же Bearer-ключом показывает актуальный набор моделей.

> wire_api = "responses" — правильное значение для этого шлюза: он обслуживает и Responses, и Chat Completions, а Codex стримит через Responses. Ставьте "chat" только если конкретный клиент требует классическую форму.

## Ошибки, которые можно встретить

- Missing APITOKEN_API_KEY — переменная из env_key не экспортирована в шелле, который запускает codex. Экспортируйте её в том же шелле или в профиле оболочки.
- stream error: unexpected status 401 — ключ неверен, отозван или base_url потерял суффикс /v1. Воспроизведите curl'ом вне Codex, чтобы понять, какая половина сломана.
- stream error: unexpected status 404 — ID модели не включён; проверьте GET /v1/models вместо предположений.
- 402 — предоплаченный баланс нужно пополнить; ожидание не поможет.

[Полный разбор ошибок Codex — config.toml, auth.json, stream errors](/errors/codex)

## Частые вопросы

### Нужен ли аккаунт или подписка ChatGPT?

Нет. С кастомным профилем model_providers и ключом провайдера в окружении Codex работает полностью на аутентификации по API-ключу — вход ChatGPT из auth.json роли не играет.

### Меняет ли это мою конфигурацию Codex по умолчанию?

Нет. Профиль живёт в отдельном файле и активируется только с --profile apitoken. Конфигурация и вход по умолчанию остаются как были.

### Скидка та же, что и для Claude?

Да. Использование GPT-5.6 метерится по официальным ставкам OpenAI, и ваша активная скидка B2C — от 60% до 70% — применяется к тому же предоплаченному балансу.

### Responses или Chat Completions для wire_api?

Используйте wire_api = "responses" — шлюз обслуживает оба формата, а Codex построен вокруг потока Responses. Форма Chat Completions существует для клиентов, которым она нужна.

---
Get a key: https://apitoken.sale/register
More guides: https://apitoken.sale/ru/docs/learn
