GPT(OpenAI) API를 키 하나로 호출하기
GPT API 호출에 필요한 변경은 두 가지입니다. Base URL을 https://api.relayswitch.io/v1로, 키를 RelaySwitch 키로 바꾸면 OpenAI SDK가 그대로 동작합니다. GPT 모델 19개가 Chat Completions와 Responses 두 형식에 응답하고, 요금은 토큰당 선불 잔액에서 차감됩니다.
01GPT API, ChatGPT API, OpenAI API는 같은 것
"GPT API", "ChatGPT API", "OpenAI API"는 모두 같은 인터페이스를 가리킵니다. OpenAI의 API를 직접 쓰려면 OpenAI 플랫폼에서 계정을 만들고 결제한 뒤 그곳의 키로 호출합니다. 여기서는 그 구간이 바뀝니다. RelaySwitch에 선불로 충전하고 RelaySwitch 키로 게이트웨이에 요청을 보내면, 게이트웨이가 요청을 모델로 전달합니다.
코드에서 달라지는 것은 Base URL과 키 두 가지뿐입니다. 요청 본문, 모델 id, 스트리밍, tool use는 그대로이므로 Base URL을 지정할 수 있는 클라이언트와 프레임워크라면 어디든 연결됩니다. 같은 키로 Claude와 Gemini도 호출하며, 모델을 바꿀 때는 model 필드 하나만 고칩니다.
02curl로 첫 요청 보내기
SDK에 넣기 전에 curl 한 번으로 키와 주소를 확인하십시오. 코드 블록은 Chat Completions 형식의 최소 요청입니다. Base URL에는 /v1이 들어가며, /v1을 뺀 도메인만 넣으면 404가 돌아옵니다.
응답 헤더에는 이 요청의 id가 들어 있고, 그 id로 모델, 과금 토큰, 비용이 적힌 서명된 영수증을 조회할 수 있습니다.
curl https://api.relayswitch.io/v1/chat/completions \ -H "Authorization: Bearer sk-relay-..." \ -H "content-type: application/json" \ -d '{"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "Reply with ok"}]}'03Python: OpenAI SDK에서 base_url만 변경
OpenAI SDK에서는 base_url과 api_key 두 인자만 바꿉니다. 코드를 고치고 싶지 않다면 환경 변수 OPENAI_BASE_URL과 OPENAI_API_KEY를 설정하십시오. OpenAI 공식 SDK는 인자를 명시하지 않으면 이 두 변수를 읽습니다.
스트리밍은 stream을 true로 두면 server-sent events로 내려오며 OpenAI의 형식과 같습니다. 응답의 usage에 들어 있는 토큰 수는 영수증의 숫자와 같습니다.
from openai import OpenAI client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.chat.completions.create( model="gpt-6.1-sol", messages=[{"role": "user", "content": "Reply with ok"}],)print(reply.choices[0].message.content)04Chat Completions와 Responses 중 무엇을 쓸까
호출 방식은 두 가지입니다. Chat Completions(/chat/completions)는 기존 코드와 대부분의 서드파티 도구가 쓰는 형식이고, Responses(/responses)는 OpenAI의 더 새로운 인터페이스입니다. 두 형식은 같은 키, 같은 잔액을 쓰고 가격도 같습니다.
새로 작성하는 프로그램은 어느 쪽이든 괜찮습니다. Codex CLI는 Responses만 사용하므로 Codex 사용법 페이지를 따로 두었습니다. 아래는 Responses 형식의 최소 요청입니다.
curl -i https://api.relayswitch.io/v1/responses \ -H "Authorization: Bearer sk-relay-..." \ -H "content-type: application/json" \ -d '{"model": "gpt-6.1-sol", "input": "Reply with ok"}'05GPT 모델 실시간 가격
백만 토큰당 달러 가격이며 페이지를 렌더링할 때 카탈로그에서 읽습니다. 과금 단가는 입력, 캐시 입력, 출력 세 가지이고, 표에 보이는 단가가 그대로 차감됩니다. 다른 개발사 모델까지 포함한 전체 표는 모델 목록에 있습니다.
| 모델 | 개발사 | 입력 | 출력 | 컨텍스트 |
|---|---|---|---|---|
| GPT-6.1 Solgpt-6.1-sol | OpenAI | $0.582≈ ₩794 | $2.91≈ ₩3,969 | 1,050,000 |
| GPT-6 Lunagpt-6-luna | OpenAI | $0.0625≈ ₩85 | $0.20≈ ₩273 | 1,050,000 |
| GPT-6 Solgpt-6-sol | OpenAI | $0.60≈ ₩818 | $3.00≈ ₩4,092 | 1,050,000 |
| GPT-6 Astragpt-6-astra | OpenAI | $3.00≈ ₩4,092 | $15.00≈ ₩20,458 | 1,050,000 |
| GPT-5.6 Lunagpt-5.6-luna | OpenAI | $0.12≈ ₩164 | $0.72≈ ₩982 | 1,050,000 |
| GPT-5.6 Solgpt-5.6-sol | OpenAI | $1.20≈ ₩1,637 | $3.00≈ ₩4,092 | 1,050,000 |
| GPT-5.6 Terragpt-5.6-terra | OpenAI | $1.20≈ ₩1,637 | $3.60≈ ₩4,910 | 1,050,000 |
| GPT-5.5gpt-5.5 | OpenAI | $1.80≈ ₩2,455 | $9.00≈ ₩12,275 | 1,050,000 |
| GPT-5.4 Minigpt-5.4-mini | OpenAI | $0.75≈ ₩1,023 | $4.50≈ ₩6,137 | 400,000 |
| GPT-5.4gpt-5.4 | OpenAI | $1.50≈ ₩2,046 | $9.00≈ ₩12,275 | 1,050,000 |
| GPT-5.3-Codexgpt-5.3-codex | OpenAI | $1.75≈ ₩2,387 | $14.00≈ ₩19,094 | 400,000 |
| GPT-4o minigpt-4o-mini | OpenAI | $0.15≈ ₩205 | $0.60≈ ₩818 | 128,000 |
| GPT-4ogpt-4o | OpenAI | $2.50≈ ₩3,410 | $10.00≈ ₩13,639 | 128,000 |
| GPT-4.1 Nanogpt-4.1-nano | OpenAI | $0.10≈ ₩136 | $0.40≈ ₩546 | 1,048,576 |
| GPT 5.4 Nanogpt-5.4-nano | OpenAI | $0.40≈ ₩546 | $2.50≈ ₩3,410 | 400,000 |
| GPT 5.6gpt-5.6 | OpenAI | $0.9412≈ ₩1,284 | $4.7059≈ ₩6,418 | 1,050,000 |
| GPT 6.1 Terragpt-6.1-terra | OpenAI | $0.2941≈ ₩401 | $1.4706≈ ₩2,006 | 1,000,000 |
| gpt-oss-120bgpt-oss-120b | OpenAI | $0.20≈ ₩273 | $1.80≈ ₩2,455 | |
| gpt-oss-20bgpt-oss-20b | OpenAI | $0.16≈ ₩218 | $0.72≈ ₩982 |
백만 토큰당 가격(USD) · ≈ 는 유럽중앙은행 2026-11-13 환율로 환산한 원화 참고 가격이며, 과금은 미국 달러로 이루어집니다
06API key 발급과 충전
잔액은 달러로 표시되고 요청이 실제로 쓴 토큰만큼 차감됩니다. 구독도 월 요금도 없으며 잔액은 만료되지 않습니다. 충전은 환불되지 않으므로 처음에는 최소 금액 $10으로 시작해 위의 curl로 확인한 뒤 늘리기를 권합니다.
키마다 달러 예산, 일일 사용 한도, 모델 허용 목록, IP 허용 목록, 속도 제한을 따로 걸 수 있고, 유출된 키는 콘솔에서 폐기하는 즉시 무효가 됩니다. 각 제한의 계산 방식과 반환하는 오류는 API 키 발급 페이지에 있으며, 같은 키이므로 GPT 호출에도 그대로 적용됩니다.
발급은 콘솔 안에서 다음 세 단계로 끝납니다.
- 가입: app.relayswitch.io 에서 이메일을 입력하고 받은 인증 코드로 로그인합니다. Google 또는 GitHub 계정으로도 로그인할 수 있습니다. 휴대폰 번호, 신분증, OpenAI 계정은 필요하지 않습니다.
- 충전: 카드(Apple Pay, Google Pay) 또는 암호화폐(USDT, USDC, BTC, ETH, SOL)를 고르고 $10, $25, $50, $100, $250, $500 가운데 금액을 선택합니다. 암호화폐는 결제 화면에 표시된 네트워크와 주소로 정확한 금액을 보내며, 네트워크에서 확인되면 보통 몇 분 안에 반영됩니다.
- 키 생성: 키 페이지에서 이름을 정하고 생성합니다. 전체 키는 이때 한 번만 표시되고 이후 콘솔에는 앞부분만 보이므로 바로 비밀번호 관리자에 저장하십시오.
07오류 코드
오류 본문은 OpenAI의 오류 구조를 따릅니다. 401부터 404까지는 요청이 모델에 도달하기 전에 반환되고 429, 502, 503은 응답 내용이 없으므로 모두 과금되지 않습니다. 표의 예외 이름은 OpenAI Python SDK의 README 기준이며, 같은 문서에 따르면 SDK는 408, 409, 429, 5xx 요청을 기본으로 2회 자동 재시도합니다.
400 invalid_request | 요청 본문이 JSON 객체가 아니거나 model이 없거나, 한 요청에 서로 다른 키 두 개를 실었습니다. SDK 예외는 BadRequestError입니다. |
401 invalid_api_key | 키가 없거나 틀렸거나 폐기되었습니다. Authorization 헤더와 OPENAI_API_KEY에 RelaySwitch 키가 들어 있는지 확인하십시오. SDK 예외는 AuthenticationError입니다. |
402 insufficient_balance | 선불 잔액이 부족하며 충전하면 바로 복구됩니다. 계정에 잔액이 있어도 그 키의 예산을 다 쓰면 key_budget_exhausted가 반환됩니다. |
403 scope_denied, ip_not_allowed | 키는 유효하지만 모델 허용 목록이나 IP 허용 목록이 이 요청을 허용하지 않습니다. SDK 예외는 PermissionDeniedError입니다. |
404 model_not_found | 카탈로그에 없는 모델 id입니다. 대부분 오타이거나 표시 이름을 넣은 경우이고, Base URL에서 /v1이 빠져도 404입니다. SDK 예외는 NotFoundError입니다. |
429 rate_limited | 키의 분당 요청 수, 토큰 수 또는 동시 요청 수가 상한에 닿았습니다. retry-after 헤더가 기다릴 초 수를 알려 줍니다. SDK 예외는 RateLimitError입니다. |
502 upstream_error, 503 upstream_unavailable | 경로에서 오류가 났거나 이 모델에 응답하는 경로가 일시적으로 없습니다. 잠시 뒤 재시도하거나 다른 모델로 바꾸십시오. SDK 예외는 InternalServerError입니다. |
자주 묻는 질문
- ChatGPT API key는 어디서 발급하나요?
- 흔히 ChatGPT API key라고 부르는 것에는 두 종류가 있습니다. 하나는 OpenAI 플랫폼에서 만들고 OpenAI에 선불로 결제하는 공식 키이고, 다른 하나는 게이트웨이에 결제하고 게이트웨이가 요청을 전달하는 키입니다. 여기서 발급하는 것은 후자입니다. 이메일로 가입하고 $10부터 충전한 뒤 콘솔에서 sk-relay- 로 시작하는 키를 만들며, 호출할 때 쓰는 모델 id는 GPT의 id 그대로입니다.
- OpenAI API 결제는 어떻게 하나요?
- 콘솔에서 카드(Apple Pay, Google Pay) 또는 암호화폐(USDT, USDC, BTC, ETH, SOL)로 충전합니다. 충전 단위는 $10, $25, $50, $100, $250, $500이고 잔액은 달러로 표시되며 만료되지 않습니다. 구독은 없습니다. 충전은 환불되지 않으므로 처음에는 최소 금액으로 시작하십시오.
- Base URL에 /v1을 넣어야 하나요?
- 넣습니다. Base URL은 https://api.relayswitch.io/v1 이고 SDK가 /chat/completions 또는 /responses 경로를 붙입니다. /v1 없이 도메인만 넣으면 404가 반환됩니다.
- Chat Completions와 Responses 중 어느 쪽을 써야 하나요?
- 둘 다 지원하며 같은 키, 같은 가격입니다. 기존 코드와 대부분의 서드파티 도구는 Chat Completions를 쓰고, Codex CLI는 Responses만 씁니다. 새로 작성하는 프로그램은 어느 쪽이든 되고, 스트리밍은 두 형식 모두 stream을 true로 설정합니다.
- 호출되는 모델이 진짜 GPT인지 어떻게 확인하나요?
- 모든 모델에 매일 같은 점검 프롬프트를 보내 이전 응답과 비교한 결과가 https://api.relayswitch.io/v1/proof 에 공개됩니다. 요청마다 모델, 과금 토큰, 비용이 적힌 서명된 영수증(GET https://api.relayswitch.io/v1/requests/:id/receipt)도 발급됩니다. 표에 보이는 달러 단가가 그대로 차감되며 별도의 배율은 없습니다.
- 429 오류가 나면 어떻게 하나요?
- 키가 분당 요청 수나 토큰 수 상한을 넘은 것입니다. 응답의 retry-after 헤더가 알려 주는 초만큼 기다리거나 콘솔에서 그 키의 한도를 올리십시오. 한도는 키마다 설정하므로 계정의 다른 키에는 영향이 없습니다.