# ChatGPT API 키 발급 방법: OpenAI 키 생성·결제·첫 호출까지

> ChatGPT 구독과 OpenAI API 결제는 별개입니다. Platform 프로젝트에서 키를 발급해 한 번만 저장하고, 권한과 Billing을 확인한 다음 서버 환경 변수로 Responses 요청을 보내 Usage 기록까지 확인해야 실제 발급이 끝납니다.

- URL: https://blog.laozhang.ai/ko/posts/openai-api-key-free-trial
- Published: 2026-04-02
- Updated: 2026-09-21
- Author: AI Free API Team (https://blog.laozhang.ai/ko/about)
- Category: API 가이드
- Tags: ChatGPT API, OpenAI API 키, API 결제, Responses API, API 보안

---
검색에서 말하는 “ChatGPT API 키”는 ChatGPT 채팅 화면에서 받는 키가 아닙니다. **OpenAI Platform 프로젝트에 만드는 API secret key**입니다. 발급 절차는 짧지만, 키 문자열을 본 것만으로 사용할 준비가 끝나지는 않습니다. 프로젝트 권한, 별도 API Billing, 서버 보관, 첫 Responses 호출을 각각 확인해야 합니다.

한국은 2026년 7월 18일 확인한 OpenAI [API 지원 국가 및 지역](https://developers.openai.com/api/docs/supported-countries) 목록에 포함되어 있습니다. 실제 이용 장소가 다른 국가라면 그 장소와 최신 목록을 기준으로 판단하세요.

## 먼저 답부터: 세 관문은 서로 다릅니다

| 관문 | 해야 할 일 | 통과 증거 |
|---|---|---|
| 키 생성 | 올바른 project에서 secret key 생성 | API Keys에 기록이 있고 전체 secret을 한 번 저장 |
| 결제 상태 | ChatGPT가 아닌 API Platform Billing 확인 | 계정별 시험 상태 또는 사용 가능한 선불 잔액 |
| 첫 호출 | 서버에서 `/v1/responses` 요청 | 응답이 오고 Usage에 project 사용량이 기록됨 |

한국어 튜토리얼에서 자주 보이는 다음 네 문장은 현재 일반 규칙이 아닙니다.

1. ChatGPT Plus/Pro가 API 사용료를 포함한다.
2. 키를 만들면 모든 신규 계정이 고정 무료 credits를 받는다.
3. 차단 옵션을 확인하지 않아도 월 예산만 설정하면 호출이 멈춘다.
4. 잃어버린 secret은 나중에 다시 볼 수 있다.

## ChatGPT 결제와 API 결제는 별도입니다

OpenAI는 [ChatGPT와 Platform Billing이 서로 다른 시스템](https://help.openai.com/en/articles/9039756-billing-settings-in-chatgpt-vs-platform)이라고 설명합니다. Plus나 Pro를 결제했어도 API 잔액은 생기지 않습니다. API에 잔액을 넣어도 ChatGPT 요금제가 바뀌지 않습니다.

ChatGPT는 정상인데 API에서 `insufficient_quota`가 나오면 Plus 페이지가 아니라 OpenAI Platform의 Billing과 Usage를 확인해야 합니다.

## 1. 올바른 project에서 키를 발급하세요

1. [OpenAI Platform](https://platform.openai.com/)에 로그인합니다.
2. 키를 귀속할 project를 선택한 뒤 [API Keys](https://platform.openai.com/api-keys)를 엽니다.
3. **Create new secret key**를 누르고 `service-staging`처럼 용도를 알 수 있는 이름을 붙입니다.
4. 필요한 권한만 선택합니다.
5. 생성 직후 전체 secret을 secret manager 또는 비밀번호 관리자에 저장합니다.

OpenAI의 [key permissions 문서](https://help.openai.com/en/articles/8867743-assign-api-key-permissions)에 따르면 현재 선택지는 `All`, `Restricted`, `Read Only`입니다. 어떤 작업인지 모른다는 이유로 All을 기본 선택하기보다, 실제 호출할 endpoint의 Read/Write만 Restricted로 여는 편이 안전합니다.

[한국어 OpenAI Help](https://help.openai.com/ko-kr/articles/4936850-where-do-i-find-my-openai-api-key)는 전체 secret이 생성 시 한 번만 표시된다고 명시합니다. 저장하지 못했다면 복구 메뉴를 찾지 말고 새 키를 만든 뒤 애플리케이션 설정을 교체해야 합니다.

## 2. 무료 키와 무료 사용을 구분하세요

키 생성 자체는 유료 API 요청이 아닙니다. 그렇다고 모든 신규 계정에 정해진 무료 credits가 보장되는 것도 아닙니다. Quickstart에서 계정별 test 경로가 보일 수 있고, prepaid 문서도 무료 credits가 **있는 경우** 먼저 소진된다고 조건부로 설명합니다. 최종 증거는 본인의 Billing dashboard입니다.

본인 계정에 적용되는 혜택이 궁금하다면 [OpenAI API 무료 사용 조건과 한도](https://blog.laozhang.ai/ko/posts/openai-api-free-tier)에서 Free 등급, 무료 크레딧, 데이터 공유 토큰 혜택의 차이를 확인하세요.

현재 OpenAI [Prepaid Billing 안내](https://help.openai.com/en/articles/8264778-what-is-prepaid-billing)는 새 API 계정에 선불 방식을 적용하며 최소 구매액을 5달러로 안내합니다. 구매 credits는 1년 뒤 만료됩니다. 금액, 결제 수단, 계정 상태는 바뀔 수 있으므로 결제 직전 Platform 화면을 다시 확인하세요. 자동 충전을 원하지 않으면 auto-recharge를 끄고 저장 후 재확인합니다.

### 지출 알림과 호출 차단은 별도 설정입니다

2026년 9월 21일 확인한 [공식 지출 한도 문서](https://developers.openai.com/api/docs/guides/spend-limits)는 알림과 실제 차단을 구분합니다. 지출 알림만 설정하면 호출은 계속됩니다. `Enforce a hard limit`를 켜면 조직이나 프로젝트의 한도에 도달했을 때 429 오류로 요청을 차단할 수 있습니다. 적용에 지연이 있어 소액 초과가 발생할 수 있으므로 월 금액만 입력했는지, 차단 옵션도 켰는지 확인하세요.

추가로 백엔드에서 사용자별·분당 요청 수, 요청별 최대 token, 재시도 횟수, 내부 누적 비용을 제한하고 한도 도달 시 새 작업을 거절하세요. budget alert는 관찰 도구이지 애플리케이션 안전장치를 대신하지 않습니다.

## 3. 키는 브라우저가 아니라 서버에 저장하세요

OpenAI [API key 안전 가이드](https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety)는 브라우저와 모바일 앱에 key를 배포하지 말고 환경 변수 또는 key manager를 쓰라고 안내합니다. 프런트엔드 프로젝트의 `.env`도 빌드 결과에 포함되면 공개 값입니다.

macOS/Linux 로컬 테스트에서는 secret을 명령 기록에 쓰지 않고 입력할 수 있습니다.

```bash
read -s OPENAI_API_KEY
export OPENAI_API_KEY
```

값 확인을 위해 `echo`하지 마세요. 프로그램은 변수 존재 여부만 확인하고 secret은 로그에 남기지 않아야 합니다.

## 4. Responses API로 첫 호출을 검증하세요

2026년 7월 18일 확인한 OpenAI [Developer quickstart](https://developers.openai.com/api/docs/quickstart)는 Responses API를 첫 요청 경로로 사용합니다.

```bash
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-5.6",
    "input": "API_OK라고만 답하세요"
  }'
```

예시 모델이 현재 project에 표시되지 않으면 공식 문서와 project에 실제 노출된 텍스트 모델로 바꾸세요. 모델 접근과 key 유효성은 별도 문제입니다. 응답을 받은 뒤 [Usage](https://platform.openai.com/usage)에서 올바른 project에 요청이 기록됐는지 확인합니다.

첫 호출 뒤 최종 JSON 객체와 실제 외부 작업 중 무엇이 필요한지 결정해야 한다면 [Structured Outputs와 Function Calling의 차이](https://blog.laozhang.ai/ko/posts/structured-outputs-vs-function-calling)를 확인하세요. 모델이 만든 도구 호출은 서버 실행 요청일 뿐이며, 도구 결과와 최종 응답의 검증 책임은 애플리케이션에 남습니다.

기존 앱이 Chat Completions에서 사용자 정의 함수를 실행한다면 URL만 바꿔서는 마이그레이션이 끝나지 않습니다. [Responses API 함수 호출 마이그레이션 가이드](https://blog.laozhang.ai/ko/posts/chat-completions-to-responses-api-function-calling-migration)에서 tool schema, `function_call` 판별, `call_id` 연결, 애플리케이션 실행 루프를 함께 변경하세요.

## 오류 문구로 다음 행동을 결정하세요

| 증상 | 확인할 층 | 다음 행동 |
|---|---|---|
| `401` | 환경 변수, 취소된 키, 잘못된 키 | 값을 출력하지 말고 실행 프로세스가 변수를 읽는지 확인; 필요 시 rotate |
| `429 insufficient_quota` | API 잔액/Billing | Billing과 Usage 확인; Plus와 추가 key는 해결책이 아님 |
| `429 rate limit` | 호출 빈도/token rate | 동시성을 낮추고 backoff 적용, 현재 limits 확인 |
| model not found | project 모델 가용성 | 현재 제공되는 모델로 교체 |
| permission denied | Restricted key 권한 | 필요한 endpoint만 Read/Write로 추가 |
| Git·채팅·스크린샷에 노출 | 보안 사고 | 즉시 revoke, 새 key 배포, Usage 점검 |

429가 계속되면 [quota exceeded 진단](https://blog.laozhang.ai/ko/posts/openai-api-quota-exceeded-error)을, project 귀속이 헷갈리면 [API key와 organization/project 가이드](https://blog.laozhang.ai/ko/posts/openai-api-key-organization-id)를 참고하세요.

## 별도 gateway가 맞는 요구도 있습니다

OpenAI-compatible gateway는 공식 OpenAI key를 대신 발급하는 곳이 아닙니다. 다른 사업자의 key, base URL, 결제, 데이터 정책, 지원 계약을 사용하는 별도 경로입니다.

2026년 7월 18일 브라우저로 확인한 [LaoZhang API 문서](https://docs.laozhang.ai/en)는 개발자·기업용 integration platform, Quick Start, OpenAI-compatible 호출, Responses API 지원을 안내합니다. 별도 공급자 계약이나 여러 모델 전환이 필요한 팀에는 비교 대상이 될 수 있습니다. 사용 전 현재 지역 적합성, 약관, data policy, 모델, endpoint, 과금, 장애 책임을 확인해야 합니다.

요구사항이 공식 OpenAI project와 OpenAI 쪽 audit/support ownership을 명시한다면 gateway는 선택하지 마세요. 별도 공급자를 선택한다면 그것을 “무료 OpenAI 키”라고 부르지 말고 계약 차이를 문서화해야 합니다.

secret을 잃어버리거나 공개했다면 메시지를 지우는 것으로 끝나지 않습니다. 즉시 폐기하고 새 키로 교체한 뒤, 노출 기간의 Usage를 확인하세요.
