해외 거래소 API 활용 기초: 시세 조회부터 주문까지
2026. 10. 25.

여러 거래소의 시세를 매번 앱으로 열어 비교하다 보면 금세 한계를 느끼게 됩니다. 화면을 넘기는 사이 가격은 이미 바뀌어 있고, 주문 버튼을 누르는 손은 생각보다 느립니다. 그래서 차익거래나 자동매매에 관심을 갖는 분들이 자연스럽게 찾게 되는 것이 거래소 API입니다.
API라고 하면 개발자만의 영역처럼 느껴지지만, 기본 개념은 단순합니다. 정해진 주소로 요청을 보내면 거래소가 정해진 형식으로 답을 돌려주는 약속입니다. 이 글에서는 해외 거래소 API가 어떻게 구성되어 있는지, 시세 조회와 주문은 어떤 흐름으로 이루어지는지, 그리고 API 키를 다룰 때 반드시 지켜야 할 보안 수칙은 무엇인지를 코드 없이도 이해할 수 있도록 정리합니다.
거래소 API는 어떻게 생겼나
대부분의 거래소는 크게 두 종류의 API를 제공합니다. 하나는 누구나 호출할 수 있는 공개(Public) API이고, 다른 하나는 계정 인증이 필요한 비공개(Private) API입니다.
- 공개 API: 현재가, 호가창, 최근 체결 내역, 캔들(봉) 데이터, 거래 가능한 종목 목록 등 시장 정보를 제공합니다. 로그인 없이 호출할 수 있습니다.
- 비공개 API: 잔고 조회, 주문 생성과 취소, 주문 내역, 입출금 기록 등 내 계정과 관련된 기능입니다. API 키와 서명이 필요합니다.
통신 방식도 두 가지로 나뉩니다. 필요할 때마다 요청을 보내 응답을 받는 REST 방식과, 한 번 연결해 두면 가격이 바뀔 때마다 거래소가 데이터를 밀어 주는 웹소켓(WebSocket) 방식입니다. 가끔 확인하는 용도라면 REST로 충분하지만, 여러 종목의 시세를 실시간으로 추적해야 한다면 웹소켓이 훨씬 효율적입니다.
시세 조회: 공개 API로 시작하기
API를 처음 다룬다면 공개 API의 시세 조회부터 시작하는 것이 좋습니다. 계정 정보가 필요 없어 실수해도 자산에 영향이 없기 때문입니다. 시세 관련 데이터는 보통 다음과 같은 형태로 제공됩니다.
티커(Ticker)
종목별 최근 체결가, 24시간 고가·저가, 거래량, 최우선 매수·매도 호가 등을 요약한 데이터입니다. 여러 거래소의 가격을 대략 비교하는 데 가장 많이 쓰입니다.
호가창(Order Book)
가격대별로 쌓인 매수·매도 잔량입니다. 차익거래에서는 티커보다 호가창이 더 중요합니다. 실제로 내가 원하는 수량을 어느 가격에 체결할 수 있는지는 호가창을 봐야 알 수 있기 때문입니다.
체결 내역과 캔들
최근 체결된 거래 목록과 일정 시간 단위로 묶은 시가·고가·저가·종가 데이터입니다. 과거 흐름을 분석하거나 변동성을 파악할 때 사용합니다.
거래소마다 종목 표기 방식이 다르다는 점도 알아 두어야 합니다. 어떤 곳은 BTCUSDT처럼 붙여 쓰고, 어떤 곳은 BTC-USDT나 BTC_USDT처럼 구분자를 넣습니다. 여러 거래소 데이터를 합치려면 이 표기를 하나로 맞추는 작업이 먼저 필요합니다.
API 키 발급과 권한 설정
잔고를 확인하거나 주문을 넣으려면 거래소 계정 설정에서 API 키를 발급받아야 합니다. 일반적인 흐름은 다음과 같습니다. 세부 메뉴 이름과 절차는 거래소마다 다르므로 각 거래소 안내를 확인하시기 바랍니다.
- 거래소 계정의 보안 설정(2단계 인증 등)을 먼저 완료합니다.
- API 관리 메뉴에서 새 키를 생성하고, 용도를 알아볼 수 있는 이름을 붙입니다.
- 권한을 선택합니다. 조회 전용, 거래 허용, 출금 허용 등으로 나뉘는 경우가 많습니다.
- 가능하다면 접속을 허용할 IP 주소를 등록합니다.
- 발급된 API 키와 비밀 키(Secret)를 안전한 곳에 보관합니다. 비밀 키는 발급 직후 한 번만 보여 주는 거래소가 많습니다.
여기서 가장 중요한 원칙은 필요한 최소 권한만 주는 것입니다. 시세 확인과 잔고 조회만 할 거라면 조회 권한만, 자동 주문이 필요하다면 거래 권한까지만 열어 둡니다. 출금 권한은 꼭 필요한 경우가 아니라면 켜지 않는 것이 안전합니다.

주문 API의 기본 흐름
비공개 API로 주문을 넣을 때는 요청마다 서명(Signature)을 붙여야 합니다. 서명은 요청 내용과 시간 정보를 비밀 키로 암호화해 만든 값으로, 거래소는 이를 통해 요청이 정말 키 주인에게서 왔는지, 중간에 변조되지 않았는지를 확인합니다. 많은 거래소가 HMAC 방식의 서명을 사용하지만 구체적인 규칙은 거래소마다 다르므로 공식 문서를 그대로 따라야 합니다.
주문 요청에는 보통 다음 정보가 들어갑니다.
| 항목 | 의미 | 참고 |
|---|---|---|
| 종목(symbol) | 거래할 코인과 기준 통화 | 거래소별 표기 형식 확인 |
| 방향(side) | 매수 또는 매도 | buy / sell 등 |
| 주문 유형(type) | 지정가, 시장가 등 | 시장가는 슬리피지 주의 |
| 수량(quantity) | 주문할 코인 수량 | 최소 주문 단위와 소수점 자릿수 제한 있음 |
| 가격(price) | 지정가 주문 시 가격 | 호가 단위(틱) 규칙 준수 |
| 시간 정보(timestamp) | 요청 시각 | 서버 시간과 차이가 크면 거부될 수 있음 |
주문을 보낸 뒤에는 응답으로 받은 주문 번호로 체결 상태를 확인해야 합니다. 주문이 접수되었다는 것과 체결되었다는 것은 다른 이야기입니다. 특히 지정가 주문은 일부만 체결되고 나머지가 남아 있을 수 있으므로, 체결 수량을 확인하고 필요하면 남은 주문을 취소하는 처리까지 함께 설계해야 합니다.
호출 제한과 오류 처리
거래소는 서버 보호를 위해 일정 시간 동안 보낼 수 있는 요청 수를 제한합니다. 이를 레이트 리밋(Rate Limit)이라고 합니다. 제한을 넘기면 일정 시간 요청이 거부되고, 반복되면 IP가 일시 차단되기도 합니다. 정확한 한도는 거래소와 API 종류마다 다르고 수시로 바뀔 수 있으므로 공식 문서와 공지에서 확인해야 합니다.
실무에서 자주 마주치는 오류 상황은 다음과 같습니다.
- 서명 오류: 파라미터 순서나 인코딩이 문서와 다를 때 발생합니다.
- 시간 오차: 내 컴퓨터 시계가 거래소 서버 시간과 많이 어긋나면 요청이 거부됩니다.
- 수량·가격 규칙 위반: 최소 주문 금액, 수량 단위, 호가 단위를 지키지 않으면 주문이 실패합니다.
- 잔고 부족: 수수료를 고려하지 않고 잔고 전액으로 주문하면 실패하는 경우가 있습니다.
- 네트워크 지연·타임아웃: 응답을 받지 못했다고 주문이 안 들어간 것은 아닙니다. 반드시 주문 내역을 다시 조회해 확인해야 중복 주문을 막을 수 있습니다.
마지막 항목은 특히 중요합니다. 타임아웃 후 곧바로 같은 주문을 다시 보내면 두 번 체결되는 사고로 이어질 수 있습니다. 자동화 프로그램을 만들 때는 "확인 후 재시도" 원칙을 꼭 지키는 것이 좋습니다.
API 키 보안 수칙
API 키는 사실상 거래소 계정의 열쇠입니다. 유출되면 원치 않는 주문이 실행되거나, 출금 권한이 열려 있다면 자산이 빠져나갈 수도 있습니다. 다음 수칙은 기본으로 지켜야 합니다.
- 비밀 키를 코드 파일에 직접 적지 말고, 별도의 환경 변수나 설정 파일로 분리합니다.
- 코드를 공개 저장소에 올릴 때 키가 포함되지 않았는지 반드시 확인합니다.
- IP 화이트리스트 기능이 있다면 사용합니다.
- 출금 권한은 꼭 필요할 때만 켜고, 가능하면 출금 주소 화이트리스트를 함께 설정합니다.
- 용도별로 키를 나누고, 쓰지 않는 키는 바로 삭제합니다.
- 출처가 불분명한 자동매매 프로그램이나 사이트에 API 키를 입력하지 않습니다.
자주 묻는 질문
Q. 프로그래밍을 몰라도 거래소 API를 쓸 수 있나요?
시세 조회 정도는 웹 브라우저로 공개 API 주소를 열어 보는 것만으로도 확인할 수 있습니다. 다만 주문 자동화처럼 서명이 필요한 기능은 간단한 프로그래밍 지식이 있어야 안전하게 다룰 수 있습니다. 여러 거래소를 하나의 방식으로 다루게 해 주는 오픈소스 라이브러리도 있으니 참고할 만합니다.
Q. REST와 웹소켓 중 무엇을 써야 하나요?
가끔 가격을 확인하거나 주문을 넣는 정도라면 REST로 충분합니다. 많은 종목의 시세 변화를 실시간으로 받아야 한다면 웹소켓이 호출 제한 부담도 적고 지연도 짧습니다. 실제로는 시세는 웹소켓, 주문은 REST로 나눠 쓰는 경우가 많습니다.
Q. API로 주문하면 수수료가 다른가요?
일반적으로 API 주문도 앱이나 웹에서 넣는 주문과 같은 수수료 체계가 적용되지만, 거래소와 계정 등급에 따라 다를 수 있습니다. 정확한 수수료는 각 거래소 수수료 안내 페이지에서 확인하시기 바랍니다.
마무리
거래소 API는 공개 API로 시세를 조회하고, 인증이 필요한 비공개 API로 잔고 확인과 주문을 처리하는 구조입니다. 처음에는 공개 API로 데이터를 받아 보는 것부터 시작해 거래소별 종목 표기와 호가 구조에 익숙해지고, 주문 단계에서는 서명, 호출 제한, 오류 처리, 키 보안을 차근차근 챙기는 것이 안전한 순서입니다.
직접 여러 거래소 API를 연결하기 전에 가격 차이가 어떤 식으로 나타나는지 먼저 감을 잡고 싶다면 시그널온 실시간 모니터링을 참고해 보셔도 좋습니다.
이 글은 정보 제공을 위한 것이며 투자 권유가 아닙니다. 암호화폐 투자는 원금 손실 위험이 있으므로 본인의 판단과 책임 아래 결정하시기 바랍니다.
