GPT Image 2 사용 제한은 OpenAI API가 조직과 프로젝트 단위로 적용하는 분당 한도와 월 사용 한도를 함께 부르는 말입니다. 분당 한도는 두 가지로, TPM(분당 토큰 수)과 IPM(분당 이미지 수)입니다. 2026년 10월 1일 기준 gpt-image-2는 Tier 1에서 100,000 TPM과 5 IPM, Tier 5에서 8,000,000 TPM과 250 IPM이며 Free 등급에서는 지원되지 않습니다.
HTTP 429가 돌아왔다고 해서 모두 "너무 빨리 보냈다"는 뜻은 아닙니다. 같은 429라도 slow_down은 속도를 낮추고 기다리면 풀리고, credit_balance_exhausted나 organization_spend_limit_exceeded는 아무리 기다려도 풀리지 않습니다. 응답 본문의 error.code가 어느 쪽인지 알려 줍니다.
챗GPT 앱 안에서 이미지 생성이 막힌 경우는 사정이 다릅니다. 챗GPT와 OpenAI API는 요금도 한도도 따로 관리되므로 아래의 등급 표는 앱에 적용되지 않습니다. 앱에서 "No image generation quota is currently available." 같은 안내를 받았다면 챗GPT 이미지 생성 제한: 무료 몇 장인지, 막히면 할 일을 보면 됩니다.
429가 떴을 때 먼저 볼 것: 오류 코드별 조치표
응답 본문의 error.code를 읽으면 기다릴지, 설정을 고칠지가 정해집니다. OpenAI의 오류 코드 문서는 결제 관련 오류에서 상위 분류인 error.type이 여전히 insufficient_quota로 나올 수 있으니 error.code로 구체적인 원인을 확인하라고 안내합니다.
| HTTP 상태와 코드 (2026년 10월 1일 기준, OpenAI API) | 어떤 한도인가 | 재시도하면 풀리는가 | 고칠 곳 |
|---|---|---|---|
| 429 "Rate limit reached for requests" | 분당 한도 (요청, 토큰, 이미지 중 먼저 찬 것) | 예. Retry-After만큼 기다린 뒤 | 호출 간격을 벌리거나 등급을 올립니다 |
429 slow_down | 요청량이 너무 급하게 늘어남 | 예. 속도를 낮춘 뒤 | 요청량을 줄였다가 단계적으로 늘립니다 |
429 credit_balance_exhausted | 선불 잔액 소진 | 아니요 | 결제 화면에서 잔액을 충전합니다 |
429 organization_spend_limit_exceeded | 조직에 직접 설정한 지출 한도 | 아니요 | 조직 설정에서 지출 한도를 올립니다 |
429 project_spend_limit_exceeded | 프로젝트에 직접 설정한 지출 한도 | 아니요 | 프로젝트 설정에서 지출 한도를 올립니다 |
429 organization_usage_limit_exceeded | OpenAI가 조직에 승인한 월 사용 한도 | 아니요 | 승인 한도 상향을 요청하거나 지원팀에 문의합니다 |
503 server_is_overloaded | 내 한도와 무관한 일시적 모델 과부하 | 예. 잠시 뒤 | 고칠 설정이 없습니다 |
| 403 "Country, region, or territory not supported" | 한도가 아닌 지역 제한 | 아니요 | 지원 지역에서만 호출할 수 있습니다 |
오래된 SDK나 중계 서비스를 거친 응답에서는 위의 세분화된 코드 대신 insufficient_quota 또는 rate_limit_exceeded만 보일 수 있습니다. insufficient_quota라면 잔액, 지출 한도, 승인 한도 세 곳을 차례로 확인하고, rate_limit_exceeded라면 분당 한도로 보고 대응하면 됩니다.
gpt-image-2 등급별 한도: TPM과 IPM
gpt-image-2의 분당 한도는 사용 등급(usage tier)에 따라 정해지며, Free 등급에서는 이 모델을 호출할 수 없습니다. 아래 수치는 OpenAI gpt-image-2 모델 문서의 표이고, 스냅샷은 gpt-image-2-2026-04-21입니다.
| 사용 등급 (OpenAI API, 2026년 10월 1일 기준) | TPM (분당 토큰 수) | IPM (분당 이미지 수) |
|---|---|---|
| Free | 지원 안 함 | 지원 안 함 |
| Tier 1 | 100,000 | 5 |
| Tier 2 | 250,000 | 20 |
| Tier 3 | 800,000 | 50 |
| Tier 4 | 3,000,000 | 150 |
| Tier 5 | 8,000,000 | 250 |
두 한도 가운데 먼저 찬 쪽이 요청을 막습니다. 속도 제한 가이드는 여러 지표 중 어느 것이든 먼저 도달한 한도가 적용된다고 설명합니다. 이미지 작업에서는 IPM이 먼저 차는 일이 많습니다. Tier 1에서 이미지 100장을 만든다면 100 ÷ 5 = 최소 20분이 걸리고, Tier 2에서는 100 ÷ 20 = 5분입니다. 동시 요청 수를 늘려도 이 시간은 줄지 않습니다.
한도는 사용자 계정별로 따로 주어지지 않고 조직과 프로젝트 단위로 계산됩니다. 같은 프로젝트의 키를 쓰는 동료의 스크립트, 배포된 서버, 내 노트북이 모두 같은 분당 한도를 나눠 씁니다. 혼자 쓴 양이 적은데도 429가 난다면 같은 프로젝트의 다른 호출부터 확인하는 것이 빠릅니다.
이 표는 이미지 생성(v1/images/generations), 이미지 편집(v1/images/edits), Responses API, Batch API에서 쓰는 gpt-image-2에 해당합니다. GPT Image 2.5의 경우 gpt-image-2.5-flare 모델 문서가 위와 같은 등급 표를 싣고 있습니다(2026년 9월 30일 기준).
등급은 결제 누적액에 따라 자동으로 올라갑니다
등급을 올리는 방법은 API 결제액을 쌓는 것 하나입니다. OpenAI는 API 지출이 늘면 다음 등급으로 자동 승급시킨다고 밝히고 있습니다. 등급마다 분당 한도와 함께 OpenAI가 승인한 월 사용 한도도 정해져 있습니다.
| 사용 등급 (OpenAI API, 2026년 10월 1일 기준) | 승급 조건 | 승인된 월 사용 한도 |
|---|---|---|
| Free | 허용 지역의 계정 | 월 $100 |
| Tier 1 | 누적 $5 결제 | 월 $100 |
| Tier 2 | 누적 $50 결제 | 월 $500 |
| Tier 3 | 누적 $100 결제 | 월 $1,000 |
| Tier 4 | 누적 $250 결제 | 월 $5,000 |
| Tier 5 | 누적 $1,000 결제 | 월 $200,000 |
Free 등급의 월 $100 한도는 다른 모델에 해당하는 이야기이고, gpt-image-2는 Tier 1부터 쓸 수 있습니다. 즉 $5를 결제해야 첫 이미지를 만들 수 있고, 그때의 속도는 분당 5장입니다. 분당 20장이 필요하면 누적 $50, 분당 50장이 필요하면 누적 $100이 기준입니다.
월 사용 한도에는 이름이 비슷한 두 가지가 있어 헷갈리기 쉽습니다. 위 표의 금액은 OpenAI가 조직마다 정해 주는 승인 한도이고, 넘으면 organization_usage_limit_exceeded가 나옵니다. 조직이나 프로젝트 설정에서 직접 정하는 지출 한도는 이와 별개입니다. 지출 알림(spend alert)은 알림만 보내고 요청은 계속 처리되지만, 강제 지출 한도(hard spend limit)는 넘는 순간 해당 요청에 429를 돌려줍니다.
재시도로 풀리는 429: "Rate limit reached for requests"와 slow_down
분당 한도에 걸린 429는 Retry-After 헤더가 알려 주는 시간만큼 기다리면 풀립니다. 헤더 값은 최소 대기 시간(초)이므로 그보다 조금 더, 요청마다 다른 무작위 지연을 더해 다시 보내는 것이 공식 권장 방식입니다. 헤더가 없으면 지수 백오프, 즉 실패할 때마다 대기 시간을 두 배씩 늘리는 방식에 무작위 지연을 섞습니다.
기다리지 않고 곧바로 다시 보내면 상황이 나빠집니다. 실패한 요청도 분당 한도에 포함되기 때문에, 같은 요청을 연달아 보내면 한도가 풀릴 틈이 생기지 않습니다. 재시도 횟수와 전체 대기 시간에는 상한을 두어야 합니다.
slow_down은 분당 한도를 넘지 않았는데도 나올 수 있습니다. 이 코드가 보는 것은 요청량이 늘어난 속도입니다. 한동안 조용하던 프로젝트가 갑자기 대량 작업을 시작할 때 생기기 쉽습니다. 요청량을 낮춘 뒤 단계적으로 다시 늘리면 되고, OpenAI가 제시하는 기준은 입력 토큰이 분당 100만을 넘는 규모에서 15분마다 50% 이내로 올리라는 것입니다.
공식 SDK는 재시도 가능한 429와 503을 자동으로 다시 보냅니다. 직접 재시도 코드를 짰다면 SDK의 자동 재시도를 끄거나 횟수 계산에 넣어야 재시도가 겹겹이 쌓이지 않습니다.
재시도로 풀리지 않는 429: 잔액, 지출 한도, 승인 한도
credit_balance_exhausted, organization_spend_limit_exceeded, project_spend_limit_exceeded, organization_usage_limit_exceeded는 사람이 설정을 바꾸기 전에는 풀리지 않습니다. OpenAI 문서도 결제, 지출, 할당량 오류는 재시도해도 API 사용이 복구되지 않는다고 명시합니다.
네 코드는 고칠 곳이 서로 다릅니다.
credit_balance_exhausted가 나오면 선불 잔액이 바닥난 것이므로 결제 화면에서 충전합니다.project_spend_limit_exceeded가 나오면 해당 프로젝트에 걸어 둔 지출 한도에 닿은 것이므로 프로젝트 설정에서 한도를 올립니다.organization_spend_limit_exceeded가 나오면 조직 전체의 지출 한도를 조직 관리자가 올려야 합니다.organization_usage_limit_exceeded가 나오면 OpenAI가 승인한 월 한도에 도달한 것입니다. 승인 한도 상향을 요청하거나 지원팀에 문의하고, 결제 누적액이 다음 등급 기준에 가깝다면 승급 후 한도가 얼마가 되는지 위 표에서 확인합니다.
월 예산이 넉넉히 남았는데 429가 난다면 위 네 코드가 아닌 분당 한도 쪽일 가능성이 큽니다. 월 한도와 분당 한도는 따로 계산되므로, 한 달 예산의 1%만 썼어도 1분 안에 Tier 1의 5장을 넘기면 429가 돌아옵니다.
한도 문제가 아닌 거절: 503, 403, 접근 권한
503 server_is_overloaded는 모델이 일시적으로 과부하 상태라는 뜻이며 내 등급이나 잔액과 관계가 없습니다. 이 응답에도 Retry-After가 붙을 수 있고, 분당 한도 429와 같은 방식으로 기다렸다 다시 보내면 됩니다.
403 "Country, region, or territory not supported"는 지원하지 않는 지역에서 호출했다는 뜻으로, 기다려도 달라지지 않습니다.
모델 접근 자체가 거절되는 경우도 한도와 구분해야 합니다. OpenAI는 일부 제품, 기능, 모델을 쓰기 전에 조직 인증을 요구할 수 있다고 밝히고 있으며, 인증은 접근 자격의 한 요소입니다. 인증이나 접근 권한 때문에 거절된 요청은 속도 제한이 아니므로 대기나 백오프로 풀리지 않습니다. 조직 설정의 인증 상태와 프로젝트의 모델 접근 권한을 확인해야 합니다.
내 조직의 실제 한도를 확인하는 곳
내 조직에 실제로 적용되는 수치는 OpenAI 플랫폼의 조직 설정에 있는 Limits 화면에서 확인합니다. 모델 문서의 표는 등급별 기본값이고, 조직별 화면의 값은 이와 다를 수 있습니다. 일부 모델군은 한도를 함께 쓰며, 이 경우 Limits 화면에 "shared limit"으로 표시됩니다.
호출 중에는 응답 헤더로 남은 양을 볼 수 있습니다.
| 응답 헤더 (OpenAI API, 2026년 10월 1일 기준) | 알려 주는 것 |
|---|---|
Retry-After | 다시 보내기 전 기다릴 최소 시간(초). 있을 때만 붙습니다 |
x-ratelimit-limit-requests / x-ratelimit-limit-tokens | 분당 요청 수와 토큰 수 한도 |
x-ratelimit-remaining-requests / x-ratelimit-remaining-tokens | 남은 요청 수와 토큰 수 |
x-ratelimit-reset-requests / x-ratelimit-reset-tokens | 한도가 다시 채워질 때까지 남은 시간 |
x-ratelimit-limit-project-tokens 등 project 계열 | 프로젝트 단위 토큰 한도, 잔량, 재설정 시간 |
분당 이미지 수를 알려 주는 헤더는 공식 헤더 목록에 없습니다. IPM은 헤더로 잔량을 읽을 수 없으므로, 클라이언트에서 최근 60초 동안 보낸 이미지 수를 직접 세어 등급 한도 아래로 유지하는 편이 안전합니다.
Retry-After가 붙었다고 해서 무조건 재시도해도 된다는 뜻은 아닙니다. OpenAI는 이 헤더가 일시적인 속도 제한 429와 과부하 503에 붙을 수 있으며, 사용자의 조치가 필요한 할당량이나 결제 오류가 재시도로 풀린다는 의미는 아니라고 설명합니다. 재시도 여부는 error.code로 판단합니다.
오류 코드로 재시도 여부를 가르는 Python 예시
아래 코드는 openai SDK에서 429는 RateLimitError, 503은 InternalServerError로 올라온다는 공식 문서의 설명에 맞춰 작성한 예시입니다. 실행 결과를 확인한 코드는 아니므로 SDK 버전에 맞게 검증한 뒤 쓰기 바랍니다.
hljs pythonimport random
import time
from openai import InternalServerError, OpenAI, RateLimitError
# 기다려도 풀리지 않는 코드: 사람이 잔액이나 한도를 고쳐야 합니다
NEEDS_ACTION = {
"credit_balance_exhausted",
"organization_spend_limit_exceeded",
"project_spend_limit_exceeded",
"organization_usage_limit_exceeded",
"insufficient_quota", # 오래된 응답에서 보이는 상위 분류
}
# SDK의 자동 재시도를 꺼서 아래 재시도와 겹치지 않게 합니다
client = OpenAI(max_retries=0)
def wait_seconds(error, attempt):
retry_after = error.response.headers.get("retry-after")
if retry_after is not None:
try:
base = float(retry_after)
except ValueError:
base = 2 ** attempt
else:
base = 2 ** attempt # 헤더가 없으면 지수 백오프
return base + random.uniform(0, 1) # 무작위 지연
def generate(prompt, max_attempts=5):
for attempt in range(max_attempts):
try:
return client.images.generate(model="gpt-image-2", prompt=prompt)
except RateLimitError as error:
if error.code in NEEDS_ACTION:
raise # 재시도하지 않고 즉시 알립니다
delay = wait_seconds(error, attempt)
except InternalServerError as error:
if error.status_code != 503:
raise
delay = wait_seconds(error, attempt)
time.sleep(delay)
raise RuntimeError("재시도 횟수를 넘겼습니다")
slow_down은 NEEDS_ACTION에 없으므로 재시도 대상입니다. 다만 이 코드가 반복해서 나온다면 동시에 보내는 작업 수부터 줄여야 합니다.
Azure OpenAI의 gpt-image-2 한도는 요청 수로 계산됩니다
Azure OpenAI(Microsoft Foundry)에서 배포한 gpt-image-2는 OpenAI API의 등급 표를 따르지 않고 Microsoft가 정한 할당량을 따릅니다. 단위도 달라서, Azure는 RPM(분당 요청 수)으로 계산합니다. 아래는 Microsoft Learn의 할당량 문서에 실린 수치이며, 문서 날짜는 2026년 8월 20일입니다.
| Azure 등급 (문서 날짜 2026년 8월 20일) | gpt-image-2 Global Standard RPM | gpt-image-2 Data Zone Standard RPM | gpt-image-2.5-flare / gpt-image-2.5-sunburst Global Standard RPM |
|---|---|---|---|
| Tier 1 | 6 | 2 | 5 |
| Tier 2 | 12 | 4 | 5 |
| Tier 3 | 18 | 6 | 5 |
| Tier 4 | 24 | 8 | 5 |
| Tier 5 | 30 | 10 | 5 |
Azure의 등급도 사용량에 따라 자동으로 올라가며, 그 이상이 필요하면 할당량 요청 양식으로 신청합니다. 지역을 나눠 배포해도 한도가 늘지 않는다는 점은 알아 둘 만합니다. Microsoft는 2026년 5월 7일 이후 할당량을 구독 단위로 관리하기 시작했고, 일부 모델부터 적용해 곧 모든 모델로 넓힌다고 안내합니다. 이 방식에서는 같은 모델과 버전의 Global Standard 배포가 한 구독 안에서 모든 지역이 하나의 할당량을 함께 쓰고, Data Zone Standard는 데이터 영역마다 하나의 할당량을 함께 씁니다.
중계 서비스의 429는 그 서비스의 한도입니다
OpenAI에 직접 연결하지 않고 중계 서비스나 재판매 업체의 주소로 호출했다면, 거기서 돌아온 429는 그 업체가 운영하는 공용 계정 묶음의 한도입니다. 내 OpenAI 조직의 등급과는 관계가 없고, OpenAI 쪽 등급을 올려도 달라지지 않습니다. 이때 확인할 곳은 해당 서비스의 대시보드와 공지입니다.
분당 처리량보다 장당 비용이 중요하고 OpenAI 조직의 등급을 관리하고 싶지 않다면 장당 결제 방식도 선택지입니다. YingTu에서는 본인의 LaoZhang API 키를 붙여 넣어 GPT Image 2를 장당 $0.03에 쓸 수 있습니다(2026년 10월 1일 기준). 이것은 OpenAI 조직과 별개의 할당량 체계이므로 OpenAI 등급의 영향을 받지 않고, 여기서 쓴 금액이 OpenAI 등급을 올려 주지도 않습니다. 지원 크기와 호출 예시는 YingTu의 GPT Image 2 모델 안내에 있습니다.
챗GPT 앱의 한도에 걸렸을 때 API나 다른 계정을 한도를 피하는 수단으로 쓰는 것은 권할 수 없습니다. OpenAI 이용약관은 속도 제한이나 제한 조치를 우회하는 행위를 금지합니다. API는 자동화나 대량 작업처럼 앱으로 할 수 없는 일을 할 때 별도 요금으로 쓰는 것입니다.
자주 묻는 질문
GPT Image 2 API 한도는 매일 초기화되나요?
아닙니다. gpt-image-2 모델 문서에 실린 한도는 TPM과 IPM, 두 가지 분당 한도뿐이어서 분 단위로 다시 채워집니다(2026년 10월 1일 기준). 하루 단위로 정해진 이미지 장수는 표에 없습니다. 달 단위로 계산되는 것은 OpenAI가 승인한 월 사용 한도와 직접 설정한 지출 한도입니다.
월 한도가 남았는데 왜 429가 나오나요?
분당 한도와 월 한도가 따로 계산되기 때문입니다. error.code가 지출이나 잔액 관련 코드가 아니라면 IPM 또는 TPM을 넘었거나, 요청량이 급하게 늘어 slow_down이 나온 것입니다. 같은 프로젝트를 쓰는 다른 호출도 같은 한도를 나눠 쓴다는 점을 함께 확인합니다.
Tier 1에서 Tier 2로 올리려면 얼마를 결제해야 하나요?
2026년 10월 1일 기준 누적 $50 결제가 Tier 2의 조건입니다. 조건을 채우면 OpenAI가 자동으로 승급시키며, gpt-image-2의 분당 이미지 수는 5장에서 20장으로, 승인된 월 사용 한도는 $100에서 $500으로 올라갑니다.
Batch API로 보내면 분당 한도에 포함되나요?
포함되지 않습니다. Batch API는 동기 호출의 분당 한도를 쓰지 않고, 모델별로 대기 중인 입력 토큰 수를 기준으로 한 별도의 대기열 한도를 가집니다. 결과를 바로 받을 필요가 없는 대량 작업이라면 분당 5장이나 20장에 묶이지 않는 방법이 됩니다. Batch 요금은 GPT Image 2 가격: 이미지 한 장 비용과 실제 API 청구 계산에 정리되어 있습니다.
챗GPT Plus를 구독하면 API 한도도 올라가나요?
올라가지 않습니다. 챗GPT Plus 요금제 안내에는 API 사용이 별개이며 따로 청구된다고 적혀 있습니다. API 등급은 API 결제 누적액으로만 올라갑니다.



