# Как подключить Codex к стороннему API и не спутать proxy с совместимостью

> Настройте custom model provider для Codex через Responses API, передайте ключ переменной окружения и разделите ошибки авторизации, модели, SSE-потока и лимита.

- Source: https://www.aifreeapi.com/ru/posts/codex-third-party-api
- Language: ru
- Published: 2026-08-25
- Updated: 2026-08-25
- Publisher: AI Free API (https://www.aifreeapi.com)

Наличие API-ключа ещё не означает, что сторонний сервис сможет обслуживать Codex. Клиенту нужен endpoint, который реализует Responses API, принимает реальный идентификатор модели этого поставщика и возвращает совместимый поток. Сервис может поддерживать `/v1/chat/completions` и честно называться OpenAI-compatible, но всё равно не подходить Codex.

Поэтому сначала найдите в документации поставщика прямое подтверждение Responses API. Если описаны только Chat Completions, не добавляйте `/responses` к URL наугад: новый путь не создаёт отсутствующий протокол. Уточните у поставщика подходящий endpoint и поддерживаемые модели.

Речь идёт о замене **поставщика модели** для локального Codex. MCP подключает внешние инструменты и данные, а proxy или gateway может быть посредником между клиентом и моделью. Эти механизмы могут работать вместе, но не доказывают совместимость друг друга.

![Шесть шагов проверки совместимости, безопасной настройки provider, доказательства маршрута, диагностики и отката](https://www.aifreeapi.com/posts/ru/codex-third-party-api/img/compatibility-route-diagnostics.webp)

## Что проверить до изменения файла

У рабочего маршрута есть четыре независимых владельца:

1. Поставщик подтверждает Responses endpoint и точный model ID.
2. Учётная запись поставщика разрешает эту модель и имеет собственный баланс или лимит.
3. Codex получает секрет тем способом, который ожидает endpoint.
4. Поток доходит до завершения, а не только устанавливает HTTP-соединение.

Подписка ChatGPT не закрывает пункты 2 и 3. В официальной [документации по аутентификации Codex](https://learn.chatgpt.com/docs/auth#openai-authentication) даже вход через ChatGPT и OpenAI API key описаны как разные контракты. У стороннего provider будут свои счета, ограничения, журналы и правила обработки данных.

Региональная доступность также принадлежит поставщику и сети. Использование proxy само по себе не подтверждает законность, стабильность или доступность конкретной модели в вашем регионе. Проверяйте это в первичных правилах выбранного сервиса, а не по чужому конфигу.

## Изолируйте эксперимент отдельным profile

Настройки provider являются локальными для машины. Codex игнорирует `model_provider` и `model_providers` в проектном `.codex/config.toml`; официальный [Configuration Reference](https://learn.chatgpt.com/docs/config-file/config-reference#configtoml) требует размещать их в пользовательской конфигурации. Чтобы не менять основной маршрут, создайте `~/.codex/third-party.config.toml`:

```toml
model = "provider-model-id"
model_provider = "acme"

[model_providers.acme]
name = "Acme Model API"
base_url = "https://api.example.com/v1"
env_key = "ACME_API_KEY"
wire_api = "responses"
```

Значения `provider-model-id` и `base_url` здесь вымышленные. Возьмите их из документации поставщика без переименования. Локальный ID `acme` должен совпадать в двух местах. Нельзя переопределять зарезервированные `openai`, `ollama` и `lmstudio`.

OpenAI сейчас указывает `responses` как единственное допустимое значение `wire_api`. Полный список полей и ограничения авторизации приведены в [Advanced Configuration](https://learn.chatgpt.com/docs/config-file/config-advanced#custom-model-providers).

Передайте секрет через переменную окружения в том же процессе, из которого запускаете CLI:

```bash
export ACME_API_KEY="настоящий-ключ"
codex --profile third-party
```

В PowerShell для текущей сессии:

```powershell
$env:ACME_API_KEY = "настоящий-ключ"
codex --profile third-party
```

`env_key` содержит имя переменной, а не сам ключ. Не записывайте секрет в TOML, репозиторий dotfiles, скриншот или лог поддержки. Поле `experimental_bearer_token` существует, но официальный справочник рекомендует `env_key`. Если сервис требует особый header или query parameter, используйте только документированные им `env_http_headers`, `http_headers` или `query_params`.

Переменная из терминала может быть невидима приложению, запущенному через Dock, меню Windows или IDE. Если CLI работает, а desktop сообщает об отсутствии ключа, сначала проверьте окружение процесса запуска. Изменение URL в такой ситуации маскирует настоящий источник ошибки.

## Докажите маршрут по обе стороны соединения

![Доказательство маршрута по данным Codex и provider с таблицей владельцев ошибок](https://www.aifreeapi.com/posts/ru/codex-third-party-api/img/route-proof-failure-owner.webp)

Название модели в интерфейсе доказывает чтение конфигурации, но не адрес назначения. Для первой проверки откройте пустой каталог, запустите `codex --profile third-party` и попросите вернуть короткую фиксированную строку без чтения файлов и вызова инструментов.

Успех состоит из трёх совпавших наблюдений: Codex показывает нужную модель; ответ завершается без ошибки потока; в панели provider или gateway в то же время появляется запрос с нужной моделью, статусом и расходом. Сохраните request ID и время, если они доступны, но не ключ и не лишнее содержимое prompt.

Например, DeepSeek на своей [официальной странице подключения Codex](https://api-docs.deepseek.com/quick_start/agent_integrations/codex/) прямо заявляет поддержку Responses и описывает собственные модели. Это первичный источник для DeepSeek, но не доказательство совместимости другого gateway.

## Ошибка подсказывает владельца

| Наблюдение | Где искать причину | Следующий шаг |
|---|---|---|
| Неизвестный ключ конфигурации | Версия Codex или TOML | Сверить `codex --version`, таблицы и актуальный reference |
| Переменная не найдена | Окружение запуска | Установить её в том же shell или настроить окружение desktop/IDE |
| 401 / 403 | Ключ, header, проект или права provider | Проверить состояние ключа и доступ к модели в панели provider |
| 404 / model not found | Base URL или model ID | Сравнить точный Responses путь и список моделей |
| Немедленная ошибка разбора | Несовместимый формат ответа | Прекратить использование Chat Completions-only endpoint |
| Вывод обрывается, идут reconnect | SSE, тайм-аут посредника или upstream | Сопоставить время обрыва и request ID в логах |
| 429 | Сторонний аккаунт, gateway или модельный лимит | Проверить систему, реально вернувшую статус |

Для подтверждённого 429 используйте отдельную [диагностику лимитов Codex](/ru/posts/codex-rate-limits), для зависшего потока — [руководство по тайм-аутам](/ru/posts/codex-timeout), а для конфликтующих слоёв — [границы config.toml](/ru/posts/codex-config-toml).

После обычного текстового ответа проверяйте только нужные функции. Web search для custom provider по умолчанию не заявлен; один флаг не создаст endpoint, поддержку модели или разрешение политики. Аналогично отдельно проверяются изображения, tool calls, reasoning summaries, WebSocket, plugins и cloud-функции.

Для возврата к официальному маршруту завершите custom-сессию и запустите Codex без `--profile third-party`. Если provider был добавлен в основной файл, удалите только добавленные `model`, `model_provider` и соответствующую таблицу. Удаление всего `~/.codex` затронет авторизацию, MCP, правила, profiles и историю, но не исправит несовместимый API.
