운영/Rate Limit · 에러
Rate Limit & 에러 코드
모든 API 호출은 Access Key 기준으로 초당 30회로 제한됩니다. 초과 시 429 too_many_requests가 반환됩니다.
에러 코드
empty_token400
Authorization 헤더에 JWT를 포함해 요청하세요.
unauthorized401
Access Key와 Secret Key가 유효한지 확인하세요.
invalid_jwt_payload401
access_key, nonce, query_hash, query_hash_alg 필드를 모두 포함해 페이로드를 구성하세요.
invalid_jwt_nonce401
nonce는 요청마다 유일해야 합니다. 재사용된 nonce는 거부됩니다.
not_found_access_token401
존재하지 않거나 폐기된 Access Key입니다. 콘솔에서 키를 다시 확인하세요.
expired_token401
JWT가 만료되었습니다. 새 토큰을 발급해 재요청하세요.
too_many_requests429
초당 30회 제한을 초과했습니다. 지수 백오프로 재시도하세요.
주의
401 에러는 원인에 따라 여러 name으로 세분화되어 반환됩니다. 응답 본문의 error.name을 확인해 정확한 원인으로 분기하세요.
백오프 재시도
export async function withRetry(fn, tries = 4) {
for (let i = 0; i < tries; i++) {
const res = await fn();
if (res.status !== 429) return res;
const retryAfter = +(res.headers.get("Retry-After") ?? 1) * 1000;
const jitter = Math.random() * 200;
await new Promise(r => setTimeout(r, retryAfter * 2 ** i + jitter));
}
throw new Error("rate limited");
}