Skip to main content

Slug로 오더북 조회

GET/v1/markets/slug/:slug/orderbookPublic

마켓 slug를 사용하여 특정 아웃컴의 현재 오더북(매수/매도 호가)을 조회합니다. 이 엔드포인트는 slug 기반 채널 이름(market:{slug}:orderbook)을 제공하는 WebSocket 신호와 함께 사용하도록 설계되었습니다.

#경로 파라미터

파라미터타입필수설명
slugstring마켓 URL slug (예: will-btc-hit-100k)

#쿼리 파라미터

파라미터타입필수설명
outcomeIdstring오더북을 조회할 아웃컴 ID

#응답

{
  "outcomeId": "outcome-uuid-1",
  "outcomeSide": "Yes - YES",
  "bids": [
    { "price": "0.650", "shares": "500.00" },
    { "price": "0.640", "shares": "300.00" },
    { "price": "0.620", "shares": "150.00" }
  ],
  "asks": [
    { "price": "0.680", "shares": "200.00" },
    { "price": "0.700", "shares": "400.00" },
    { "price": "0.750", "shares": "100.00" }
  ]
}

#응답 필드

필드타입설명
outcomeIdstring오더북이 나타내는 아웃컴 ID
outcomeSidestring아웃컴 이름과 방향의 조합 (예: Yes - YES, Trump - YES)
bidsarray매수 주문, 가격 내림차순 정렬
asksarray매도 주문, 가격 오름차순 정렬
bids[].pricestring매수 가격 (소수점 3자리)
bids[].sharesstring해당 가격 수준의 총 수량

#WebSocket 연동

이 엔드포인트는 market:{slug}:orderbook 채널에서 WebSocket 신호를 수신한 후 호출하도록 설계되었습니다:

// 1. WebSocket 채널 구독
socket.emit('join', { channel: 'market:will-btc-hit-100k:orderbook' });
 
// 2. 신호 수신 시 동일한 slug로 업데이트된 데이터 조회
socket.on('market:will-btc-hit-100k:orderbook', async (data) => {
  const response = await fetch('/v1/markets/slug/will-btc-hit-100k/orderbook?outcomeId=outcome-uuid-1');
  const orderbook = await response.json();
});

slug-to-UUID 매핑을 유지할 필요가 없어집니다. WebSocket 채널과 REST API가 동일한 slug 식별자를 사용하기 때문입니다.

#오류

상태 코드설명
400outcomeId 누락 또는 아웃컴이 해당 마켓에 속하지 않음
404마켓 또는 아웃컴을 찾을 수 없음

#예제

curl "https://api.conviction.bet/v1/markets/slug/will-btc-hit-100k/orderbook?outcomeId=outcome-uuid-1"
이 페이지가 도움이 되었나요?