apiToken.sale에서 Codex CLI 실행하기
커스텀 모델 프로바이더를 지정하면 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.
- 같은 Bearer 키로 GET https://openai.api.apitoken.sale/v1/models를 호출하면 현재 활성화된 모델 세트를 볼 수 있습니다.
wire_api = "responses"가 이 게이트웨이에 맞는 값입니다 — Responses와 Chat Completions를 모두 제공하며 Codex는 Responses로 스트리밍합니다. 특정 클라이언트가 클래식 형태를 요구할 때만 "chat"으로 설정하세요.
만날 수 있는 오류
- Missing APITOKEN_API_KEY — env_key가 가리키는 변수가 codex를 실행하는 셸에 export되어 있지 않습니다. 같은 셸(또는 셸 프로필)에서 export하세요.
- stream error: unexpected status 401 — 키가 잘못되었거나 폐기되었거나, base_url에서 /v1 접미사가 빠졌습니다. Codex 밖에서 curl로 재현해 어느 쪽이 깨졌는지 확인하세요.
- stream error: unexpected status 404 — 모델 ID가 활성화되어 있지 않습니다. 추측하지 말고 GET /v1/models를 확인하세요.
- 402 — 공유 선불 잔액을 충전해야 합니다. 기다린다고 해결되지 않습니다.
자주 묻는 질문
ChatGPT 계정이나 구독이 필요한가요?
아니요. 커스텀 model_providers 프로필과 환경에 있는 프로바이더 API 키만 있으면 Codex는 완전히 API 키 인증으로 실행됩니다 — auth.json의 ChatGPT 로그인은 무관합니다.
기본 Codex 설정이 바뀌나요?
아니요. 프로필은 자체 파일에 있으며 --profile apitoken을 전달할 때만 활성화됩니다. 기본 설정과 로그인은 그대로 유지됩니다.
할인이 Claude와 동일한가요?
네. GPT-5.6 사용량은 공식 OpenAI 토큰 요금으로 측정되고 현재 B2C 할인(60~70%)이 같은 선불 잔액에 적용됩니다.
wire_api는 Responses와 Chat Completions 중 무엇으로 하나요?
wire_api = "responses"를 사용하세요 — 게이트웨이는 둘 다 제공하며 Codex는 Responses 스트림을 중심으로 만들어졌습니다. Chat Completions 형태는 필요한 클라이언트를 위한 것입니다.