본문 바로가기

에러와 호출 제한

REST 오류는 HTTP 상태 코드와 error.code를 함께 확인합니다. WS 명령 오류는 event: "error"의 error.code와 명령 id를 확인합니다. 오류 응답 형식을 참고하세요.

오류 코드

HTTP 코드 다음 행동
400 INVALID_REQUEST, WALLET_REQUIRED, UNSUPPORTED_OPERATION 파라미터·walletId·명령 확인
401 MISSING_AUTH, INVALID_API_KEY 인증 헤더와 키 상태 확인
401 INVALID_SIGNATURE 실제 경로·정렬 쿼리·본문 바이트로 다시 서명
401 TIMESTAMP_OUT_OF_RANGE 시간 동기화와 수신 시간 범위 확인
403 NO_PERMISSION, ORDER_BLOCKED 키·계정·거래 제한 확인
404 ENDPOINT_NOT_FOUND, WALLET_NOT_FOUND, MARKET_NOT_FOUND, ORDER_NOT_FOUND 경로·ID·접근 범위 확인
405 METHOD_NOT_ALLOWED 응답 Allow 헤더와 요청 메서드 확인
409 INVALID_NONCE 레거시 nonce 형식 확인. 새 구현은 생략
409 DUPLICATE_COMMAND_ID 같은 연결에서 처리 중인 명령 ID 확인
413 PAYLOAD_TOO_LARGE 본문 크기 축소
422 MARKET_NOT_TRADING, ORDER_ALREADY_CLOSED, INSUFFICIENT_BALANCE, UNSUPPORTED_ORDER_OPTION 마켓·주문 상태, 잔고, 주문 옵션 확인
422 ENGINE_REJECTED_{status} 엔진 거절 결과 확인. 같은 요청 무조건 재시도 금지
429 RATE_LIMITED 읽기는 Retry-After와 백오프 적용
500 INTERNAL_ERROR requestId 기록. 읽기만 제한적으로 재시도
501 AMEND_NOT_SUPPORTED 원자적 주문 정정 미지원. 원래 주문은 유지
503 ENGINE_UNAVAILABLE, SERVICE_UNAVAILABLE 의존성 복구 확인. 쓰기는 주문 상태도 대조
504 ENGINE_TIMEOUT 처리 결과 불명. 주문·체결 조회 후 결정

HTTP 코드와 함께 반환되는 세부 오류는 엔드포인트와 실행 시점에 따라 달라집니다. 검증·권한 오류는 요청을 수정하지 않은 채 반복하지 마세요.

호출 제한

현재 환경 설정의 요청 예산은 IP당 10초에 1000회입니다. 메모리에서 게이트웨이 인스턴스별로 관리하며 전역 계정 할당량이 아닙니다. 운영 설정이 변경되면 실제 응답의 429와 Retry-After를 우선합니다.

HTTP 업그레이드와 수신한 WS 명령도 IP 요청 예산을 소비합니다. 서버가 보내는 WS 이벤트는 소비하지 않습니다. 재접속이나 헤더 변경으로 IP 예산을 초기화할 수 없습니다.

일반 429는 IP ban을 의미하지 않으며 위반 점수도 추가하지 않습니다. 외부 API의 JSON·스키마 위반은 IP별로 REST·WS에 공유해 집계하며, 2분 집계 구간에 5회가 되면 10분 동안 차단합니다. 잘못된 WS 프레임·인코딩은 즉시 차단합니다.

API 키의 허용 IP 목록에 없는 주소는 HTTP 403 IP_NOT_ALLOWED를 받습니다. 키를 발급한 IP 정책을 확인하세요. 이 거절은 위반 점수에 포함하지 않습니다.

크기와 시간 제한

항목 제한
REST 요청 본문 1 MiB
receive window 기본 5초, 최대 60초
거래 목록 limit 최대 1000
Feed 목록 limit 기본 20, 최대 100
주문 엔진 응답 대기 10초
일괄 취소 동시 최대 16개, 배치 전체 10초
공개·개인 WS 명령 크기 각각 8 KiB / 16 KiB

WS의 ping/pong·구독·대기열 제한은 연결 규칙에 있습니다.

재시도 정책

읽기의 429는 Retry-After 이후, 일시적인 5xx는 제한된 지수 백오프와 jitter로 재시도합니다. 주문 생성·취소의 연결 종료·타임아웃은 주문 결과 확인을 먼저 수행합니다. timestamp 검증은 멱등성을 보장하지 않습니다.