API 레퍼런스

속도 제한 및 재시도

#제한 방식

키별 RPM 및 RPD 상한이 있습니다. 429가 발생하면 게이트웨이가 Retry-After를 보내며, 업스트림 제한은 서킷 브레이커로 보호되므로 문제 있는 채널 하나가 전체에 부하를 주지 않습니다.

제한은 키 단위이므로 프로젝트별로 키를 나누면 속도 제한도 분리됩니다. 키별 상한은 콘솔 → API 키에서 수정합니다.

#올바르게 재시도하기

Retry-After가 있으면 따르고, 없으면 지터를 포함한 지수 백오프를 적용하세요. 총 시도 횟수는 제한하세요 — 완전히 다운된 모델은 끝없이 재시도하기보다 호출자에게 알리는 편이 낫습니다.

backoff.py
import time, requests

def call_with_backoff(url, headers, body, tries=5):
    for i in range(tries):
        r = requests.post(url, headers=headers, json=body)
        if r.status_code != 429:
            return r
        # Respect Retry-After (seconds); fall back to 2**i backoff.
        wait = int(r.headers.get("Retry-After", 2 ** i))
        time.sleep(wait)
    r.raise_for_status()

아직 해결되지 않았나요?

요청 ID나 오류 메시지를 보내 주시면 확인해 드리겠습니다.