API KEYS
API 키
불리자 API 와 MCP 서버 모두 같은 키 하나로 접근해요. 평문은 발급 즉시 한 번만 표시되고, 서버에는 SHA-256 해시만 저장돼요.
API 키 발급하기
불리자에 로그인한 뒤 마이 → API 키 페이지로 들어가요. 용도 라벨(예: prod backend) 을 입력하고 발급 버튼을 누르면 평문 키가 카드로 나와요. 키 발급은 무료이고, 사용자당 최대 10개까지 보관할 수 있어요.
API 키 이해하기
키는 rfk_live_ 로 시작하는 48자리 16진수 문자열이에요. 앞 12자(rfk_live_xxx)는 prefix 라고 부르고 대시보드에서도 노출돼요. 뒤 부분(시크릿)은 발급 시점에만 사용자에게 1회 노출되고, 서버에는 SHA-256 해시로 저장돼서 다시 조회할 수 없어요.
평문 키는 다시 못 봐요
분실하면 키를 폐기하고 새로 발급해야 해요. 환경변수에 저장하는 걸 권장해요.
키 사용하기
모든 요청에 Authorization 헤더가 필요해요.
bash
curl -H "Authorization: Bearer rfk_live_52ba373....." \
https://bulliza.com/api/public/v2/health코드에서는 보통 환경변수로 관리해요.
javascript
// Node / Bun / Deno
const r = await fetch("https://bulliza.com/api/public/v2/stocks/005930/score", {
headers: { Authorization: `Bearer ${process.env.RICHGO_API_KEY}` },
});python
# Python
import os, requests
r = requests.get(
"https://bulliza.com/api/public/v2/stocks/005930/score",
headers={"Authorization": f"Bearer {os.environ['RICHGO_API_KEY']}"},
)REST API 키와 MCP 키는 같아요
REST(/api/public/v2/*) 와 MCP(/api/mcp) 는 같은 키를 공유해요. 한 키로 둘 다 호출할 수 있고, 사용량도 합산되어 대시보드에 표시돼요. 별도 키 발급이 필요 없어요.
키 폐기하기
키가 노출됐거나 더 이상 쓰지 않는다면 즉시 폐기해야 해요. /my/api-keys 에서 키 행 우측 폐기 버튼을 누르면 끝이에요. 폐기된 키로의 호출은 다음 요청부터 401 INVALID_KEY 를 반환해요.
키가 노출됐다면
깃허브·로그·실수로 공유된 키는 즉시 폐기 후 새 키를 발급받으세요.
rfk_live_ prefix 는 GitHub secret scanning 에서 자동 검출 대상이에요.사용량 확인하기
모든 응답 헤더에 사용량 정보가 포함돼요. 클라이언트에서 quota gauge 를 만들 수 있어요.
| 헤더 | 의미 |
|---|---|
RateLimit-Limit | 일일 한도 (free 1000, paid 1000000000) |
RateLimit-Remaining | 남은 호출 수 |
RateLimit-Policy | "<limit>;w=86400" 형식 (RFC draft) |
X-RichGo-Plan | free | paid | admin |
Retry-After | 429 응답 시 재시도까지 대기 초 |
키 관련 에러
| 상태 | 에러 코드 | 의미 | 해결 방법 |
|---|---|---|---|
| 401 | NO_KEY | Authorization 헤더 없음 | 헤더에 Bearer 토큰을 추가하세요 |
| 401 | INVALID_KEY | 키가 폐기됐거나 형식 오류 | 키 형식 확인 후 새로 발급 |
| 429 | RPM_EXCEEDED | 분당 한도 초과 | Retry-After 헤더만큼 대기 후 재시도 |
| 429 | DAILY_QUOTA_EXCEEDED | 일일 한도 초과 | KST 자정에 리셋 또는 한+미 구독으로 무제한 |