본문 바로가기

응답과 공통 규칙

주소와 경로

REST는 https://api.btxpro.co.kr, WS는 wss://api-ws.btxpro.co.kr입니다. 대부분의 REST 경로는 /v1으로 시작하며 /health, /ready만 예외입니다. WS 연결 경로는 /v1/market/stream, /v1/user/stream입니다.

REST 응답

일반적인 성공 응답:

{
  "data": {},
  "requestId": "req_1783420800123456789",
  "serverTime": 1783420800123
}

오류 응답:

{
  "error": { "code": "INVALID_REQUEST", "message": "Request is invalid." },
  "requestId": "req_1783420800123456789",
  "serverTime": 1783420800123
}

GET /health는 본문 없는 HTTP 200, WS 업그레이드는 HTTP 101이므로 이 JSON envelope를 사용하지 않습니다. JSON 응답에는 Cache-Control: no-store가 설정됩니다.

요청 추적

X-Request-Id가 응답 헤더와 JSON의 requestId에 포함됩니다. 클라이언트가 이 헤더를 지정할 경우 80자 이내의 영문·숫자·-_.:로 구성합니다. 장애 문의나 로그 연계에 사용하며, 주문의 중복 처리를 방지하는 값은 아닙니다.

숫자와 시각

  • 가격·수량·금액·수수료·잔고는 십진수 문자열입니다. 부동소수점 변환 대신 decimal 연산을 사용합니다.
  • orderId와 같은 문자열 ID는 숫자로 변환하지 않고 보존합니다.
  • serverTime, 주문 조회의 startTime·endTime은 Unix 밀리초입니다.
  • Feed의 publishedMicrotime·creationMicrotime·updateMicrotime 및 WS 체결의 microtime은 Unix 마이크로초입니다. 개별 모델의 필드명을 확인하세요.
  • 마켓 식별자는 BTC-USDT와 같은 symbol입니다. 현재 지원 여부와 통화 ID는 마켓 목록에서 확인합니다.

쿼리와 목록

쿼리 키는 한 번만 보내고 빈 값을 보내지 마세요. 정확한 기본값·범위는 전체 엔드포인트에 표시됩니다.

거래 목록의 limit 최대값은 1000입니다. 주문·체결 이력은 기본적으로 요청 시점까지 최근 30일을 조회하며 startTime, endTime으로 범위를 지정할 수 있습니다. hasMore가 있는 응답은 추가 데이터가 있을 수 있음을 표시합니다. 거래 이력 API는 Feed의 cursor 페이지네이션을 제공하지 않습니다.

Feed 일반 목록은 기본 20개, 최대 100개이며 hasMore와 nextCursor를 제공합니다. 다음 페이지에는 이전 응답의 nextCursor를 cursor로 전달합니다. cursor는 정렬 방식에 연결되므로 정렬을 바꾸면 초기화합니다. q 검색은 sort·cursor와 함께 사용할 수 없으며 결과 개수는 limit으로 제한됩니다.

권한

작업 권한
공개 REST·공개 WS 없음
GET /v1/account 유효한 서명된 키
지갑·잔고·주문·체결 조회 read
주문 생성·취소 trade
개인 WS 연결 read
개인 WS 주문 명령 read로 연결한 뒤 trade 추가 확인

현재 키의 접근 범위는 계정에서 볼 수 있는 전체 지갑입니다. 외부 API에는 지갑별 키 범위 설정이 없습니다.