Korbit Quotation API
The Quotation API from Korbit — 6 operation(s) for quotation.
The Quotation API from Korbit — 6 operation(s) for quotation.
openapi: 3.1.0
info:
title: Korbit Open API v2 Asset Quotation API
version: 2.0.0
description: 'REST API for the Korbit cryptocurrency exchange (Korea''s first virtual-asset exchange). Covers market data (quotation), trading, balances, crypto deposits and withdrawals, and KRW deposit/withdrawal push notifications.
All responses use the envelope `{"success": true, "data": ...}`; errors use `{"success": false, "error": {"message": "<CODE>"}}`.
Private endpoints require the `X-KAPI-KEY` header plus `timestamp` and `signature` parameters. Signatures are HMAC-SHA256 (hex) or ED25519 (Base64, URL-encoded) over the exact encoded request string. See the timestamp-window rules: `recvWindow` defaults to 5000 ms, maximum 60000 ms, and the future bound is a fixed +1000 ms.
This document was generated by the API Evangelist enrichment pipeline from Korbit''s own published agent documentation bundle (https://docs.korbit.co.kr/llms-full.txt). Korbit does not publish an OpenAPI document; this is a faithful transcription of the published reference, not an official artifact.'
contact:
name: Korbit Developers
url: https://developers.korbit.co.kr
x-generated-by: API Evangelist enrichment pipeline
x-source: https://docs.korbit.co.kr/llms-full.txt
servers:
- url: https://api.korbit.co.kr
description: Production
- url: http://127.0.0.1:9999
description: Local sandbox (korbit-sandbox.mjs) — mock, not the production server
tags:
- name: Quotation
paths:
/v2/tickers:
get:
operationId: getTickers
summary: Get Tickers
description: Get latest price and trading volume for a symbol or symbols.
tags:
- Quotation
parameters:
- name: symbol
in: query
description: Enter the symbols of the trading pairs you want to query, separated by commas (,). If omitted, information for all available trading pairs on Korbit will be returned.
schema:
type: string
examples:
- btc_krw,eth_krw
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: array
items:
type: object
properties:
symbol:
type: string
description: Trading pair symbol.
examples:
- btc_krw
open:
type: string
description: Open price (24H).
examples:
- '361922.23'
high:
type: string
description: High price (24H).
examples:
- '361922.23'
low:
type: string
description: Low price (24H).
examples:
- '361922.23'
close:
type: string
description: Last price (24H).
examples:
- '361922.23'
prevClose:
type: string
description: Previous close price (24H).
examples:
- '261922.23'
priceChange:
type: string
description: changed price. `close - prevClose`.
examples:
- '100000'
priceChangePercent:
type: string
description: changed price percent. `100 * (close - prevClose) / prevClose`.
examples:
- '38.18'
volume:
type: string
description: Trading volume (Base, 24H).
examples:
- '100'
quoteVolume:
type: string
description: Trading volume (Quote/Counter, 24H).
examples:
- '1000000000'
bestBidPrice:
type: string
description: Best bid price.
examples:
- '5000'
bestAskPrice:
type: string
description: Best ask price.
examples:
- '6000'
lastTradedAt:
type: number
description: Last traded timestamp (ms).
examples:
- 1700000000000
required:
- symbol
- open
- high
- low
- close
- prevClose
- priceChange
- priceChangePercent
- volume
- quoteVolume
- bestBidPrice
- bestAskPrice
- lastTradedAt
required:
- success
example:
success: true
data:
- symbol: btc_krw
open: '77060000'
high: '79650000'
low: '76550000'
close: '77136000'
prevClose: '77060000'
priceChange: '76000'
priceChangePercent: '0.1'
volume: '48.73739983'
quoteVolume: '3785149733.32633'
bestBidPrice: '77136000'
bestAskPrice: '77193000'
lastTradedAt: 1725525721041
- symbol: eth_krw
open: '3259000'
high: '3370000'
low: '3222000'
close: '3250000'
prevClose: '3259000'
priceChange: '-9000'
priceChangePercent: '-0.28'
volume: '161.99278306'
quoteVolume: '532827941.01581'
bestBidPrice: '3251000'
bestAskPrice: '3254000'
lastTradedAt: 1725525545630
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded. Honor `Retry-After` / the `Ratelimit` reset window.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
/v2/orderbook:
get:
operationId: getOrderbook
summary: Get Orderbook
description: Get orderbook data.
tags:
- Quotation
parameters:
- name: symbol
in: query
required: true
description: Trading pair.
schema:
type: string
examples:
- btc_krw
- name: level
in: query
description: Orderbook grouping level. Available levels can be checked via the Get Tick Size Policy API. If not provided, grouping will not be applied.
schema:
type: string
examples:
- '1000'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: object
properties:
timestamp:
type: number
description: timestamp (ms).
examples:
- 1700000000000
bids:
type: array
items:
type: object
properties:
price:
type: string
description: price.
examples:
- '250000'
qty:
type: string
description: quantity.
examples:
- '10'
amt:
type: string
description: Total amount (only set when orderbook grouping is used. When not using grouping, it can be calculated as `price * qty`).
examples:
- '2500000'
required:
- price
- qty
description: bids
asks:
type: array
items:
type: object
properties:
price:
type: string
description: price.
examples:
- '250000'
qty:
type: string
description: quantity.
examples:
- '10'
amt:
type: string
description: Total amount (only set when orderbook grouping is used. When not using grouping, it can be calculated as `price * qty`).
examples:
- '2500000'
required:
- price
- qty
description: asks
required:
- timestamp
- bids
- asks
required:
- success
example:
success: true
data:
timestamp: 1708057740895
bids:
- price: '73303000'
qty: '0.00898326'
- price: '73302000'
qty: '0.00790837'
- price: '73301000'
qty: '0.00843099'
- price: '73300000'
qty: '0.00054024'
- price: '73299000'
qty: '0.00663446'
asks:
- price: '73304000'
qty: '0.00985212'
- price: '73305000'
qty: '0.00367505'
- price: '73306000'
qty: '0.0096254'
- price: '73307000'
qty: '0.00502544'
- price: '73308000'
qty: '0.00640584'
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded. Honor `Retry-After` / the `Ratelimit` reset window.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
/v2/trades:
get:
operationId: getTrades
summary: Get Recent Trades
description: Get recent trades.
tags:
- Quotation
parameters:
- name: symbol
in: query
required: true
description: Trading pair.
schema:
type: string
examples:
- btc_krw
- name: limit
in: query
description: 'limit (range: 1 ~ 500).'
schema:
type: number
examples:
- 100
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: array
items:
type: object
properties:
timestamp:
type: number
description: timestamp (ms).
examples:
- 1700000000000
price:
type: string
description: price.
examples:
- '250000'
qty:
type: string
description: quantity.
examples:
- '10'
isBuyerTaker:
type: boolean
description: whether the taker is the buyer.
examples:
- true
tradeId:
type: number
description: trade ID (the ID of the trade execution assigned to each trading pair). Monotonically increasing per trading pair, but not guaranteed to be contiguous.
examples:
- 1234
required:
- timestamp
- price
- qty
- isBuyerTaker
- tradeId
required:
- success
example:
success: true
data:
- timestamp: 1708057271149
price: '70507000'
qty: '0.00981535'
isBuyerTaker: false
tradeId: 1004
- timestamp: 1708057271035
price: '70508000'
qty: '0.00682475'
isBuyerTaker: false
tradeId: 1003
- timestamp: 1708057270922
price: '70509000'
qty: '0.00844147'
isBuyerTaker: false
tradeId: 1002
- timestamp: 1708057270809
price: '70510000'
qty: '0.00553963'
isBuyerTaker: false
tradeId: 1001
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded. Honor `Retry-After` / the `Ratelimit` reset window.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
/v2/candles:
get:
operationId: getCandles
summary: Get Candlesticks
description: Get historical candlesticks (klines) data.
tags:
- Quotation
parameters:
- name: symbol
in: query
required: true
description: Trading pair.
schema:
type: string
examples:
- btc_krw
- name: interval
in: query
required: true
description: interval `1` — 1 min / `5` — 5 mins / `15` — 15 mins / `30` — 30 mins / `60` — 1 hour / `240` — 4 hours / `1D` — 1 day / `1W` — 1 week
schema:
type: string
enum:
- '1'
- '5'
- '15'
- '30'
- '60'
- '240'
- 1D
- 1W
- name: start
in: query
description: 'start timestamp. (default: listed time).'
schema:
type: number
examples:
- 1600000000000
- name: end
in: query
description: 'end timestamp. must be larger than `start`. (default: now).'
schema:
type: number
examples:
- 1700000000000
- name: limit
in: query
required: true
description: 'limit (range: 1 ~ 200).'
schema:
type: number
examples:
- 100
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: array
items:
type: object
properties:
timestamp:
type: number
description: candle start timestamp.
examples:
- 1619244573612
open:
type: string
description: open price.
examples:
- '361922.23'
high:
type: string
description: high price.
examples:
- '361922.23'
low:
type: string
description: low price.
examples:
- '361922.23'
close:
type: string
description: close price.
examples:
- '361922.23'
volume:
type: string
description: volume.
examples:
- '100'
required:
- timestamp
- open
- high
- low
- close
- volume
required:
- success
example:
success: true
data:
- timestamp: 1708041600000
open: '71211000'
high: '9999990000'
low: '300000'
close: '71392000'
volume: '1.932320026577213946'
- timestamp: 1708045200000
open: '73510000'
high: '74605000'
low: '300000'
close: '72315000'
volume: '2.418698679231323743'
- timestamp: 1708048800000
open: '72315000'
high: '9999990000'
low: '300000'
close: '72380000'
volume: '1.947520219976227299'
- timestamp: 1708052400000
open: '70267000'
high: '74777000'
low: '300000'
close: '74049000'
volume: '2.254855048982521506'
- timestamp: 1708056000000
open: '68304000'
high: '74834000'
low: '68241000'
close: '74825000'
volume: '0.630193755379195341'
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded. Honor `Retry-After` / the `Ratelimit` reset window.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
/v2/currencyPairs:
get:
operationId: getCurrencyPairs
summary: Get Trading Pairs
tags:
- Quotation
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: array
items:
type: object
properties:
symbol:
type: string
description: trading pair symbol.
examples:
- btc_krw
status:
type: string
enum:
- launched
- stopped
description: '`launched` — trading available / `stopped` — trading unavailable'
required:
- symbol
- status
required:
- success
example:
success: true
data:
- symbol: btc_krw
status: launched
- symbol: eth_krw
status: launched
- symbol: xrp_krw
status: stopped
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded. Honor `Retry-After` / the `Ratelimit` reset window.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
/v2/tickSizePolicy:
get:
operationId: getTickSizePolicy
summary: Get Tick Size Policy
description: Get tick size policy and orderbook grouping levels for a trading pair.
tags:
- Quotation
parameters:
- name: symbol
in: query
required: true
description: Trading pair symbol.
schema:
type: string
examples:
- xrp_krw
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: array
items:
type: object
required:
- success
example:
success: true
data:
- symbol: xrp_krw
tickSizePolicy:
- priceGte: '0'
tickSize: '0.0001'
- priceGte: '1'
tickSize: '0.001'
- priceGte: '10'
tickSize: '0.01'
- priceGte: '100'
tickSize: '0.1'
- priceGte: '1000'
tickSize: '1'
- priceGte: '5000'
tickSize: '5'
- priceGte: '10000'
tickSize: '10'
- priceGte: '50000'
tickSize: '50'
- priceGte: '100000'
tickSize: '100'
- priceGte: '500000'
tickSize: '500'
- priceGte: '1000000'
tickSize: '1000'
orderbookLevels:
- '0.1'
- '1'
- '10'
- '100'
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded. Honor `Retry-After` / the `Ratelimit` reset window.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security: []
components:
schemas:
ErrorResponse:
type: object
description: Korbit error envelope. `error.message` carries the symbolic error code.
properties:
success:
type: boolean
examples:
- false
error:
type: object
properties:
message:
type: string
description: Symbolic error code, e.g. `NO_BALANCE`.
examples:
- NO_BALANCE
required:
- success
securitySchemes:
KorbitApiKey:
type: apiKey
in: header
name: X-KAPI-KEY
description: API key issued in the Korbit Developers portal (https://developers.korbit.co.kr). Keys carry permissions (readOrders, writeOrders, readBalances, readDeposits, writeDeposits, readWithdrawals, writeWithdrawals), may be pinned to an IP allowlist, and are valid for one year. Every signed request additionally carries `timestamp` and `signature` parameters (HMAC-SHA256 hex or ED25519 base64).