Developer

문서 검색

엔드포인트, 개념, 에러 코드 검색

API 레퍼런스
운영/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");
}