Upbit Quotation API

Public market data endpoints — no authentication required

OpenAPI Specification

upbit-quotation-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Upbit REST Exchange - Account Quotation API
  description: Upbit is a leading South Korean cryptocurrency exchange operated by Dunamu Inc., offering REST and WebSocket APIs for market data retrieval, order management, account balances, and transaction history. Developers must register an Upbit account with security level 2 or higher to issue API keys. Authenticated requests use JWT bearer tokens (HS512) generated from an Access Key and Secret Key pair, while public quotation endpoints (market data, tickers, orderbooks, candles) require no authentication. Upbit supports KRW, BTC, and USDT trading markets and complies with travel-rule regulations for digital asset transfers.
  version: 1.3.2
  termsOfService: https://upbit.com/service_center/terms
  contact:
    url: https://global-docs.upbit.com/docs/support
  license:
    name: Upbit Open API Usage Agreement
    url: https://upbit.com/service_center/terms
servers:
- url: https://api.upbit.com/v1
  description: Global API endpoint
security: []
tags:
- name: Quotation
  description: Public market data endpoints — no authentication required
paths:
  /market/all:
    get:
      operationId: listTradingPairs
      summary: List trading pairs
      description: Returns a list of all trading pair identifiers available on Upbit. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: is_details
        in: query
        required: false
        schema:
          type: boolean
        description: If true, returns additional market detail fields
      responses:
        '200':
          description: List of trading pairs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    market:
                      type: string
                      description: Market identifier (e.g., KRW-BTC)
                    korean_name:
                      type: string
                      description: Korean name of the asset
                    english_name:
                      type: string
                      description: English name of the asset
        '429':
          description: Rate limit exceeded
  /candles/seconds:
    get:
      operationId: listCandlesSeconds
      summary: List second candles
      description: Returns OHLCV second candles for the specified market. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End time for candles (ISO 8601 format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
        description: Number of candles to return (max 200)
      responses:
        '200':
          description: List of second candles
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CandleResponse'
        '429':
          description: Rate limit exceeded
  /candles/minutes/{unit}:
    get:
      operationId: listCandlesMinutes
      summary: List minute candles
      description: Returns OHLCV minute candles for the specified market and unit interval. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: unit
        in: path
        required: true
        schema:
          type: integer
          enum:
          - 1
          - 3
          - 5
          - 10
          - 15
          - 30
          - 60
          - 240
        description: Minute interval (1, 3, 5, 10, 15, 30, 60, or 240)
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End time for candles (ISO 8601 format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
        description: Number of candles to return (max 200)
      responses:
        '200':
          description: List of minute candles
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                  - $ref: '#/components/schemas/CandleResponse'
                  - type: object
                    properties:
                      unit:
                        type: integer
                        description: Minute unit of the candle
        '429':
          description: Rate limit exceeded
  /candles/days:
    get:
      operationId: listCandlesDays
      summary: List day candles
      description: Returns OHLCV daily candles for the specified market. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End time for candles (ISO 8601 format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
        description: Number of candles to return (max 200)
      - name: converting_price_unit
        in: query
        required: false
        schema:
          type: string
        description: Quote currency for price conversion (e.g., KRW)
      responses:
        '200':
          description: List of daily candles
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                  - $ref: '#/components/schemas/CandleResponse'
                  - type: object
                    properties:
                      prev_closing_price:
                        type: string
                        description: Previous day closing price (decimal string)
                      change_price:
                        type: string
                        description: Price change from previous close (decimal string)
                      change_rate:
                        type: string
                        description: Change rate from previous close (decimal string)
        '429':
          description: Rate limit exceeded
  /candles/weeks:
    get:
      operationId: listCandlesWeeks
      summary: List week candles
      description: Returns OHLCV weekly candles for the specified market. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End time for candles (ISO 8601 format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
        description: Number of candles to return (max 200)
      responses:
        '200':
          description: List of weekly candles
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                  - $ref: '#/components/schemas/CandleResponse'
                  - type: object
                    properties:
                      first_day_of_period:
                        type: string
                        format: date
                        description: First day of the week period (YYYY-MM-DD)
        '429':
          description: Rate limit exceeded
  /candles/months:
    get:
      operationId: listCandlesMonths
      summary: List month candles
      description: Returns OHLCV monthly candles for the specified market. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End time for candles (ISO 8601 format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
        description: Number of candles to return (max 200)
      responses:
        '200':
          description: List of monthly candles
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                  - $ref: '#/components/schemas/CandleResponse'
                  - type: object
                    properties:
                      first_day_of_period:
                        type: string
                        format: date
                        description: First day of the month period (YYYY-MM-DD)
        '429':
          description: Rate limit exceeded
  /candles/years:
    get:
      operationId: listCandlesYears
      summary: List year candles
      description: Returns OHLCV yearly candles for the specified market. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End time for candles (ISO 8601 format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
        description: Number of candles to return (max 200)
      responses:
        '200':
          description: List of yearly candles
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                  - $ref: '#/components/schemas/CandleResponse'
                  - type: object
                    properties:
                      first_day_of_period:
                        type: string
                        format: date
                        description: First day of the year period (YYYY-MM-DD)
        '429':
          description: Rate limit exceeded
  /trades/ticks:
    get:
      operationId: listPairTrades
      summary: List pair trades
      description: Returns recent trade ticks for the specified trading pair. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      - name: to
        in: query
        required: false
        schema:
          type: string
        description: End trade time (HHmmss or HHmmssSSS format)
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 500
        description: Number of trade ticks to return
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        description: Pagination cursor (sequential_id from prior response)
      - name: days_ago
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          maximum: 7
        description: Number of days ago to fetch trades (0–7)
      responses:
        '200':
          description: List of trade ticks
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    market:
                      type: string
                    trade_date_utc:
                      type: string
                      description: Trade date (UTC)
                    trade_time_utc:
                      type: string
                      description: Trade time (UTC)
                    timestamp:
                      type: integer
                      format: int64
                    trade_price:
                      type: string
                      description: Trade price (decimal string)
                    trade_volume:
                      type: string
                      description: Trade volume (decimal string)
                    prev_closing_price:
                      type: string
                      description: Previous closing price (decimal string)
                    change_price:
                      type: string
                      description: Price change (decimal string)
                    ask_bid:
                      type: string
                      enum:
                      - ASK
                      - BID
                      description: Whether the trade was an ask or bid
                    sequential_id:
                      type: integer
                      format: int64
                      description: Sequential trade identifier
        '429':
          description: Rate limit exceeded
  /ticker:
    get:
      operationId: listTickers
      summary: List pair tickers
      description: Returns current ticker information for specified trading pairs. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: markets
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of market identifiers (e.g., KRW-BTC,KRW-ETH)
      responses:
        '200':
          description: List of tickers
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TickerResponse'
        '429':
          description: Rate limit exceeded
  /ticker/all:
    get:
      operationId: listQuoteTickers
      summary: List quote-currency tickers
      description: Returns ticker information for all trading pairs in the specified quote currencies. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: quote_currencies
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated quote currencies (e.g., KRW,BTC,USDT)
      responses:
        '200':
          description: List of tickers for all pairs in given quote currencies
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TickerResponse'
        '429':
          description: Rate limit exceeded
  /orderbook:
    get:
      operationId: listOrderbooks
      summary: List orderbooks
      description: Returns orderbook snapshots for specified trading pairs. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: markets
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of market identifiers
      - name: level
        in: query
        required: false
        schema:
          type: number
        description: Aggregation level for orderbook
      - name: count
        in: query
        required: false
        schema:
          type: integer
        description: Number of orderbook levels to return
      responses:
        '200':
          description: List of orderbook snapshots
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    market:
                      type: string
                      description: Market identifier
                    timestamp:
                      type: integer
                      format: int64
                      description: Orderbook timestamp (milliseconds)
                    total_ask_size:
                      type: string
                      description: Total ask size (decimal string)
                    total_bid_size:
                      type: string
                      description: Total bid size (decimal string)
                    orderbook_units:
                      type: array
                      items:
                        type: object
                        properties:
                          ask_price:
                            type: string
                          bid_price:
                            type: string
                          ask_size:
                            type: string
                          bid_size:
                            type: string
                    level:
                      type: number
                      description: Aggregation level applied
        '429':
          description: Rate limit exceeded
  /orderbook/instruments:
    get:
      operationId: listOrderbookInstruments
      summary: List orderbook instruments
      description: Returns orderbook instrument metadata including tick size and supported aggregation levels. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: markets
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of market identifiers
      responses:
        '200':
          description: List of orderbook instruments
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    market:
                      type: string
                    quote_currency:
                      type: string
                    tick_size:
                      type: string
                      description: Minimum price increment (decimal string)
                    supported_levels:
                      type: array
                      items:
                        type: number
        '429':
          description: Rate limit exceeded
  /orderbook/supported_levels:
    get:
      operationId: listOrderbookLevels
      summary: List supported orderbook levels
      description: Returns the supported aggregation levels for orderbooks of specified markets. No authentication required.
      tags:
      - Quotation
      parameters:
      - name: markets
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of market identifiers
      responses:
        '200':
          description: Supported orderbook levels per market
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    market:
                      type: string
                    supported_levels:
                      type: array
                      items:
                        type: number
        '429':
          description: Rate limit exceeded
components:
  schemas:
    TickerResponse:
      type: object
      properties:
        market:
          type: string
          description: Market identifier (e.g., KRW-BTC)
        trade_date:
          type: string
          description: Trade date (UTC, YYYYMMDD)
        trade_time:
          type: string
          description: Trade time (UTC, HHmmss)
        trade_date_kst:
          type: string
          description: Trade date (KST, YYYYMMDD)
        trade_time_kst:
          type: string
          description: Trade time (KST, HHmmss)
        trade_timestamp:
          type: integer
          format: int64
          description: Trade timestamp (milliseconds)
        opening_price:
          type: string
          description: Opening price (decimal string)
        high_price:
          type: string
          description: High price (decimal string)
        low_price:
          type: string
          description: Low price (decimal string)
        trade_price:
          type: string
          description: Latest trade price (decimal string)
        prev_closing_price:
          type: string
          description: Previous closing price (decimal string)
        change:
          type: string
          enum:
          - RISE
          - EVEN
          - FALL
          description: Price change direction
        change_price:
          type: string
          description: Absolute price change (decimal string)
        change_rate:
          type: string
          description: Relative price change rate (decimal string)
        signed_change_price:
          type: string
          description: Signed price change (decimal string)
        signed_change_rate:
          type: string
          description: Signed change rate (decimal string)
        trade_volume:
          type: string
          description: Trade volume (decimal string)
        acc_trade_price:
          type: string
          description: Accumulated trade price today (decimal string)
        acc_trade_price_24h:
          type: string
          description: Accumulated trade price (24h, decimal string)
        acc_trade_volume:
          type: string
          description: Accumulated trade volume today (decimal string)
        acc_trade_volume_24h:
          type: string
          description: Accumulated trade volume (24h, decimal string)
        highest_52_week_price:
          type: string
          description: 52-week high price (decimal string)
        highest_52_week_date:
          type: string
          description: Date of 52-week high (YYYY-MM-DD)
        lowest_52_week_price:
          type: string
          description: 52-week low price (decimal string)
        lowest_52_week_date:
          type: string
          description: Date of 52-week low (YYYY-MM-DD)
        timestamp:
          type: integer
          format: int64
          description: Ticker timestamp (milliseconds)
    CandleResponse:
      type: object
      properties:
        market:
          type: string
          description: Market identifier
        candle_date_time_utc:
          type: string
          format: date-time
          description: Candle start time (UTC)
        candle_date_time_kst:
          type: string
          format: date-time
          description: Candle start time (KST)
        opening_price:
          type: string
          description: Opening price (decimal string)
        high_price:
          type: string
          description: High price (decimal string)
        low_price:
          type: string
          description: Low price (decimal string)
        trade_price:
          type: string
          description: Closing price (decimal string)
        timestamp:
          type: integer
          format: int64
          description: Candle timestamp (milliseconds)
        candle_acc_trade_price:
          type: string
          description: Accumulated trade price in candle period (decimal string)
        candle_acc_trade_volume:
          type: string
          description: Accumulated trade volume in candle period (decimal string)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT HS512 token generated from Access Key and Secret Key. Include query_hash and query_hash_alg=SHA512 in the payload when query parameters or JSON body exist.
externalDocs:
  description: Upbit Developer Center
  url: https://global-docs.upbit.com/reference