Runbase는 공정한 사용과 플랫폼 안정성을 보장하기 위해 API 키별로 속도 제한을 적용합니다.
기본 제한
| 범위 | 제한 |
|---|---|
| API 키 (runs 엔드포인트) | 10초당 20 요청 |
| 인증 엔드포인트 | 60초당 5 요청 |
| 세션 확인 | 60초당 60 요청 |
runs 엔드포인트의 속도 제한은 API 키별로 POST /api/v1/runs와 GET /api/v1/runs/:id를 합산한 전체에 적용됩니다.
속도 제한 응답
제한을 초과하면 API는 HTTP 429를 반환합니다:
{
"error": {
"message": "Rate limit exceeded",
"code": "RATE_LIMITED"
}
}속도 제한 처리
429 응답을 받으면 지수 백오프를 구현하세요:
import time
import requests
def create_run(api_key, model, input_data, max_retries=3):
url = "https://runbase.net/api/v1/runs"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
body = {"model": model, "input": input_data}
for attempt in range(max_retries):
response = requests.post(url, json=body, headers=headers)
if response.status_code == 429:
wait = 2 ** attempt
time.sleep(wait)
continue
return response.json()
raise Exception("Rate limit exceeded after retries")팁
- 서로 다른 서비스나 워커에는 별도의 키를 사용하여 속도 제한을 공유하지 않도록 하세요
- run 상태를 확인할 때는 적절한 간격으로 폴링하세요 — 대부분의 모델에서는 1~2초마다면 충분합니다
- 한 번에 많은 요청을 보내기보다 작업을 배치하세요
- 429에서 즉시 재시도하지 마세요 — 재시도하기 전에 항상 기다리세요
더 높은 제한이 필요하신가요?
사용 사례상 더 높은 속도 제한이 필요하다면 support@runbase.net로 문의하세요.

