OpenRouter 무료 티어 한도와 429 오류 해결법

Updated 2026-07-15

OpenRouter 무료 모델 변형은 분당 약 20건으로 제한되며, 계정이 누적 크레딧 10달러 미만을 구매했다면 일당 50건, 그 기준을 넘으면 일당 1,000건입니다. 429는 이 한도 중 하나에 걸렸거나, 그 순간 공유 무료 풀이 포화 상태라는 뜻입니다.

빠른 답변: 정확한 무료 티어 한도

OpenRouter는 무료 사용량을 두 축으로 제한합니다. 분당 상한과 일일 요청 예산입니다. 무료 모델 변형(ID가 :free로 끝나는 모델)의 분당 한도는 20건입니다. 일일 예산은 계정이 누적 크레딧 10달러 이상을 구매한 적이 있는지에 따라 달라집니다. 이 누적 기준선 미만이면 하루 무료 모델 요청은 50건이고, 그 이상이면 하루 1,000건입니다. 이는 2026년 초 기준으로 OpenRouter가 문서화한 수치입니다. 예전에도 바뀐 적이 있으므로(일일 한도가 예전에는 더 높았습니다) 표는 영구적인 보장이 아니라 현재 기준선으로 보고, 다음 섹션의 확인 방법으로 자신의 키에 대해 직접 검증하세요. 429 응답은 이 한도 중 하나를 초과했거나, 개인 쿼터는 멀쩡한데 그 무료 모델을 제공하는 업스트림 프로바이더의 용량이 소진되었다는 뜻입니다. 이 가이드의 나머지 부분에서는 둘 중 무엇에 걸렸는지 구분하는 방법과 대처법을 다룹니다.

2026년 초 기준 OpenRouter 무료 티어 한도입니다. 변경될 수 있습니다.
한도적용 조건
분당 요청 수20 rpm모든 :free 모델 변형, 계정당
일일 요청 수50누적 크레딧 구매 10달러 미만
일일 요청 수1,000누적 크레딧 구매 10달러 이상
유료 모델별도의 훨씬 높은 한도토큰당 과금되는 모든 비무료 모델

무료 티어는 실제로 어떻게 동작하는가

OpenRouter의 무료 모델은 :free 접미사가 붙은 별도의 카탈로그 항목입니다. 용량을 기부하거나 보조하는 프로바이더가 제공하며, 그래서 같은 웨이트의 유료 변형보다 가용성이 훨씬 크게 요동칩니다. 세 가지 세부 사항에서 사람들이 자주 걸려 넘어집니다. 첫째, 일일 한도는 계정 전체 기준입니다. 모델당 50건이 아니라, 어떤 무료 모델을 섞어 쓰든 합쳐서 50건입니다. 둘째, 10달러 기준선은 현재 잔액이 아니라 누적 크레딧 구매액을 계산합니다. 한 번 10달러를 구매하면 그 크레딧을 다 써도 일당 1,000건 구간에 계속 남아 있습니다. 셋째, 한도는 계정별로 적용되므로 같은 계정 아래 API 키를 추가로 만들어도 아무것도 늘어나지 않습니다. 자신의 키가 정확히 어느 위치에 있는지 확인할 수 있습니다. 응답에는 is_free_tier, 지금까지의 사용량, 현재 키에 적용된 rate limit 객체가 포함됩니다.

curl https://openrouter.ai/api/v1/auth/key \
  -H "Authorization: Bearer $OPENROUTER_API_KEY"

# 확인해 볼 만한 응답 필드:
# "is_free_tier": true    -> 누적 10달러 기준선 미만
# "usage": 1.42           -> 소진된 크레딧
# "rate_limit": {...}     -> 이 키의 구간별 한도

피크 시간대에 429가 급증하는 이유

개인 한도는 이야기의 절반일 뿐입니다. 무료 용량은 공유 풀이며, OpenRouter는 그 순간 여유 보조 용량이 있는 프로바이더로만 무료 요청을 라우팅할 수 있습니다. 인기 있는 무료 모델이 포화 상태가 되면, 그날 요청을 몇 건밖에 안 했어도 429나 업스트림 오류를 받게 됩니다. 커뮤니티 보고에 따르면 미국 시간대 저녁과 주말이 가장 나쁜 구간이며, 한산한 시간대에는 같은 요청이 바로 성공합니다. 이는 공식 발표된 수치가 아니라 대략적인 관측이지만, 계획을 세울 만큼 자주 반복됩니다. 채팅 프론트엔드는 이 문제를 증폭시킵니다. SillyTavern이나 JanitorAI 스타일의 인터페이스는 스와이프, 재생성, 그룹 채팅 턴마다 새 완료 요청을 보내며, 일부 프록시 설정은 실패를 자동으로 재시도합니다. 메시지를 15개 보냈다고 느끼는 사용자가 실제로는 40~50건의 요청을 만들었을 수 있는데, 이는 10달러 기준선 미만 계정의 하루 전체 예산입니다. 공격적인 자동 재시도는 모두에게 피크 시간 혼잡을 더 심화시키므로, 절제된 백오프가 중요합니다. 실질적인 진단법은 이렇습니다. 일일 초기화까지 기다렸을 때 429가 멈춘다면 쿼터에 걸린 것입니다. 요청 수가 적은데도 같은 시간 안에 429가 왔다 갔다 한다면 풀 혼잡을 보고 있는 것입니다.

해결책, 노력 순서대로

계속 무료 티어에서 트래픽을 유지한다면, 최소한의 클라이언트는 실패하거나 무작정 재시도하는 대신 429를 명시적으로 처리해야 합니다.

  • 먼저 오류 본문을 읽으세요. OpenRouter의 429는 분당 한도, 소진된 일일 쿼터, 업스트림 혼잡을 구분해서 알려줍니다. 실제로 걸린 것을 고치세요.
  • Retry-After를 존중하고 지터를 섞은 지수적 백오프를 적용하세요. 엔드포인트를 두드려대면 요청 제한이 더 길어지고 혼잡이 심해집니다.
  • 누적 크레딧 10달러 기준선을 한 번 넘기세요. 일일 한도가 50건에서 1,000건으로 올라가며, 일일 쿼터로 인한 429에는 이것이 단연 가장 효과적인 해결책입니다.
  • 중요한 트래픽은 같은 모델의 유료 변형으로 옮기세요. DeepSeek급 모델은 백만 토큰당 1달러에 한참 못 미치므로, 저녁 내내 헤비하게 채팅해도 보통 몇 센트면 됩니다.
  • 클라이언트 단에서 요청량을 줄이세요. 자동 재생성을 끄고, 불필요한 스와이프를 피하고, 컨텍스트를 다듬어 재시도가 발생하더라도 비용이 덜 들게 하세요.
import random
import time

import requests

def chat(payload: dict, key: str, retries: int = 5) -> dict:
    for attempt in range(retries):
        r = requests.post(
            "https://openrouter.ai/api/v1/chat/completions",
            headers={"Authorization": f"Bearer {key}"},
            json=payload,
            timeout=120,
        )
        if r.status_code != 429:
            r.raise_for_status()
            return r.json()
        wait = float(r.headers.get("Retry-After", 2 ** attempt + random.random()))
        time.sleep(wait)
    raise RuntimeError("Still rate limited after all retries")

하루 50건으로 부족할 때의 대안

사용 패턴이 꾸준히 무료 예산을 넘어선다면 현실적인 경로가 네 가지 있습니다. 어느 것이 맞는지는 병목이 일일 쿼터인지, 피크 시간 혼잡인지, 아니면 둘 다인지에 달려 있습니다. 유료 옵션들은 요청 형태가 아니라 주로 오버헤드에서 차이가 난다는 점에 주목하세요. 모두 동일한 OpenAI 호환 chat completions 형식을 사용하므로, 전환은 코드 재작성이 아니라 base URL과 키 변경으로 끝납니다.

옵션비용 모델요청 제한 방식트레이드오프
OpenRouter :free 변형$0분당 20건, 일당 50건 또는 1,000건공유 풀, 피크 시간 혼잡
OpenRouter 유료 모델토큰당, 선불 크레딧훨씬 높음, 계정에 따라 확장크레딧 구매 시 플랫폼 수수료
프로바이더 다이렉트 API공식 정가 기준 토큰당프로바이더별 티어프로바이더마다 별도의 키와 결제
다이렉트 사용량 기반 게이트웨이토큰당, 구독 없음유료 용량, 무료 풀 경쟁 없음첫 요청부터 비용 지불
자체 호스팅 오픈 웨이트하드웨어와 전력GPU에 의해서만 제한설정 노력, 모델 크기 상한

다이렉트 게이트웨이에서 채팅 프론트엔드 운영하기

다이렉트 게이트웨이는 OpenAI 호환 요청 형태는 그대로 유지하면서 무료 풀 대기열은 제거합니다. 모든 요청이 유료 용량이기 때문입니다. APIsRouter가 그 예시 중 하나입니다. 구독 없이 사용한 만큼 지불하고, /topup에서 가입 없이 먼저 결제하면 API 키가 이메일로 도착합니다. 글로벌 모델은 공식 정가 대비 20% 저렴하고, 중국산 모델은 공식가 아래로 책정되어 있으며, 첫 충전은 시작 잔액을 두 배로 만들어 줍니다. 프론트엔드 설정은 이미 OpenRouter에서 하던 것과 동일합니다. SillyTavern에서는 /v1로 끝나는 base URL(https://api.apisrouter.com/v1)을 붙여넣으면 키를 등록한 뒤 /v1/models에서 모델 목록이 자동으로 채워집니다. JanitorAI 프록시 설정에는 대신 전체 엔드포인트인 https://api.apisrouter.com/v1/chat/completions와 모델명, API 키가 필요합니다. 캐릭터 채팅과 롤플레이 트래픽에서는 DeepSeek V4 계열이 가성비로 커뮤니티에서 가장 사랑받으며, MiMo, GLM-5, Kimi K2.6도 추가 가성비 후보입니다. Claude Sonnet 4.6은 Anthropic의 콘텐츠 정책 아래 세이프포워크 창작 글쓰기에서 가장 강력한 문장을 씁니다.

모델모델 ID입력 / 출력 (100만 토큰당)
DeepSeek V4 Flashdeepseek-v4-flash$0.126 / $0.252
DeepSeek V4 Prodeepseek-v4-pro$0.3915 / $0.783
GLM-5glm-5$0.514 / $2.314
Gemini 3.5 Flashgemini-3.5-flash$1.20 / $7.20
Claude Sonnet 4.6claude-sonnet-4-6$2.40 / $12.00
curl https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

자주 묻는 질문

OpenRouter는 무료로 사용할 수 있나요?

부분적으로요. OpenRouter는 일부 모델의 무료 변형(ID가 :free로 끝남)을 제공하는데, 비용은 없지만 분당 약 20건, 그리고 10달러 크레딧 구매 이력에 따라 일당 50건 또는 1,000건으로 제한됩니다. 그 외 모든 모델 목록은 토큰당 유료입니다.

OpenRouter에서 429 오류가 계속 발생하는 이유는 무엇인가요?

429는 분당 한도를 초과했거나, 하루 무료 요청 예산을 소진했거나, 그 무료 모델의 공유 업스트림 용량이 포화되었다는 뜻입니다. 어느 쪽인지는 오류 본문에 나와 있습니다. 쿼터로 인한 429는 일일 초기화까지 계속되고, 혼잡으로 인한 429는 보통 한산한 시간대에 풀립니다.

OpenRouter 요청 제한은 어떻게 늘리나요?

한 번 크레딧 10달러를 구매하세요. 이 누적 기준선을 넘으면 무료 모델의 일일 한도가 50건에서 1,000건으로 올라갑니다. 그 이상으로는 트래픽을 유료 모델 변형으로 옮기거나, 백오프로 요청을 분산시키거나, 넘치는 트래픽을 다른 프로바이더나 게이트웨이로 라우팅하는 방법이 있습니다.

OpenRouter 무료 모델에는 일일 한도가 있나요?

네. 일일 예산은 계정 내 모든 무료 모델에 공유됩니다. 누적 크레딧 구매 10달러 미만이면 하루 50건, 그 이상이면 하루 1,000건입니다. 계정 단위로 적용되므로 같은 계정에 API 키를 추가해도 쿼터는 늘어나지 않습니다.

무료 티어가 JanitorAI나 SillyTavern에 충분한가요?

가벼운 테스트라면 충분합니다. 실제로는 스와이프, 재생성, 그룹 턴 하나하나가 별도의 요청이므로, 활발한 세션은 50건을 금방 소진할 수 있고 피크 시간 혼잡이 실패를 더 얹습니다. 헤비 유저는 보통 저렴한 유료 모델로 옮겨갑니다. 무엇을 쓰든 프론트엔드 플랫폼의 이용약관(연령 요건 포함)과 모델 프로바이더의 콘텐츠 정책을 따르세요.