Upbit Exchange - Orders API

Order management endpoints — JWT required

Operations 11

GET /orders/chance Get available order information #
POST /orders Create order #
POST /orders/test Create test order #
POST /orders/cancel_and_new Cancel and replace order #
GET /order Get single order #
DELETE /order Cancel single order #
GET /orders/uuids List orders by IDs #
DELETE /orders/uuids Cancel orders by IDs #
GET /orders/open List open orders #
DELETE /orders/open Batch cancel open orders #
GET /orders/closed List closed orders #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/upbit-exchange-orders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

upbit-exchange-orders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Upbit REST Exchange - Orders 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.
  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: Exchange Orders
  description: Order management endpoints — JWT required
paths:
  /orders/chance:
    get:
      operationId: getAvailableOrderInformation
      summary: Get available order information
      description: Returns fee rates and account-level order constraints for the specified market.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: market
        in: query
        required: true
        schema:
          type: string
        description: Market identifier (e.g., KRW-BTC)
      responses:
        '200':
          description: Available order information
          content:
            application/json:
              schema:
                type: object
                properties:
                  bid_fee:
                    type: string
                    description: Bid (buy) fee rate (decimal string)
                  ask_fee:
                    type: string
                    description: Ask (sell) fee rate (decimal string)
                  maker_bid_fee:
                    type: string
                    description: Maker bid fee rate (decimal string)
                  maker_ask_fee:
                    type: string
                    description: Maker ask fee rate (decimal string)
                  market:
                    type: object
                    description: Market details
                  bid_account:
                    type: object
                    description: Bid currency account details
                  ask_account:
                    type: object
                    description: Ask currency account details
        '401':
          description: Unauthorized
  /orders:
    post:
      operationId: createOrder
      summary: Create order
      description: Places a new buy or sell order on the specified market. Order type determines which price and volume fields are required.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - market
              - side
              - ord_type
              properties:
                market:
                  type: string
                  description: Market identifier (e.g., KRW-BTC)
                side:
                  type: string
                  enum:
                  - bid
                  - ask
                  description: Order side (bid=buy, ask=sell)
                volume:
                  type: string
                  description: Order volume (decimal string; required for limit and market ask)
                price:
                  type: string
                  description: Order price (decimal string; required for limit and price bid)
                ord_type:
                  type: string
                  enum:
                  - limit
                  - price
                  - market
                  - best
                  description: 'Order type: limit (limit order), price (market buy by total KRW), market (market sell by volume), best (best price)'
                identifier:
                  type: string
                  description: Client-assigned order identifier (optional, must be unique)
                time_in_force:
                  type: string
                  enum:
                  - ioc
                  - fok
                  description: Time-in-force policy (ioc or fok; only for best or limit orders)
                smp_type:
                  type: string
                  enum:
                  - cancel_newest
                  - cancel_oldest
                  - cancel_both
                  description: Self-Match Prevention type
      responses:
        '201':
          description: Order created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '429':
          description: Rate limit exceeded
  /orders/test:
    post:
      operationId: createTestOrder
      summary: Create test order
      description: Validates an order request without actually placing it on the exchange. Same contract as createOrder but does not execute.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - market
              - side
              - ord_type
              properties:
                market:
                  type: string
                side:
                  type: string
                  enum:
                  - bid
                  - ask
                volume:
                  type: string
                price:
                  type: string
                ord_type:
                  type: string
                  enum:
                  - limit
                  - price
                  - market
                  - best
                identifier:
                  type: string
                time_in_force:
                  type: string
                  enum:
                  - ioc
                  - fok
                smp_type:
                  type: string
                  enum:
                  - cancel_newest
                  - cancel_oldest
                  - cancel_both
      responses:
        '201':
          description: Test order validation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /orders/cancel_and_new:
    post:
      operationId: cancelAndReplaceOrder
      summary: Cancel and replace order
      description: Atomically cancels an existing order and places a new order. Either prev_order_uuid or prev_order_identifier must be provided (not both).
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - new_ord_type
              properties:
                prev_order_uuid:
                  type: string
                  description: UUID of the order to cancel (mutually exclusive with prev_order_identifier)
                prev_order_identifier:
                  type: string
                  description: Client identifier of the order to cancel (mutually exclusive with prev_order_uuid)
                new_ord_type:
                  type: string
                  enum:
                  - limit
                  - price
                  - market
                  - best
                  description: New order type
                new_volume:
                  type: string
                  description: New order volume (decimal string)
                new_price:
                  type: string
                  description: New order price (decimal string)
                new_identifier:
                  type: string
                  description: New client order identifier
                new_time_in_force:
                  type: string
                  enum:
                  - ioc
                  - fok
                new_smp_type:
                  type: string
                  enum:
                  - cancel_newest
                  - cancel_oldest
                  - cancel_both
      responses:
        '201':
          description: Order cancelled and new order created
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/OrderResponse'
                - type: object
                  properties:
                    new_order_uuid:
                      type: string
                      description: UUID of the newly created replacement order
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /order:
    get:
      operationId: getOrder
      summary: Get single order
      description: Returns the details of a single order by UUID or client identifier. Either uuid or identifier must be provided.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: uuid
        in: query
        required: false
        schema:
          type: string
        description: Order UUID (mutually exclusive with identifier)
      - name: identifier
        in: query
        required: false
        schema:
          type: string
        description: Client order identifier (mutually exclusive with uuid)
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/OrderResponse'
                - type: object
                  properties:
                    trades:
                      type: array
                      description: List of individual trade fills
                      items:
                        type: object
                        properties:
                          market:
                            type: string
                          uuid:
                            type: string
                          price:
                            type: string
                          volume:
                            type: string
                          funds:
                            type: string
                          created_at:
                            type: string
                            format: date-time
        '401':
          description: Unauthorized
        '404':
          description: Order not found
    delete:
      operationId: cancelOrder
      summary: Cancel single order
      description: Cancels an order by UUID or client identifier. Either uuid or identifier must be provided.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: uuid
        in: query
        required: false
        schema:
          type: string
        description: Order UUID (mutually exclusive with identifier)
      - name: identifier
        in: query
        required: false
        schema:
          type: string
        description: Client order identifier (mutually exclusive with uuid)
      responses:
        '200':
          description: Cancelled order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderResponse'
        '401':
          description: Unauthorized
        '404':
          description: Order not found
  /orders/uuids:
    get:
      operationId: listOrdersByIds
      summary: List orders by IDs
      description: Returns details for multiple orders identified by UUID or client identifier arrays. Either uuids[] or identifiers[] must be provided.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: market
        in: query
        required: false
        schema:
          type: string
        description: Filter by market identifier
      - name: uuids[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Array of order UUIDs (mutually exclusive with identifiers[])
      - name: identifiers[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Array of client identifiers (mutually exclusive with uuids[])
      - name: order_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Sort order
      responses:
        '200':
          description: List of orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderResponse'
        '401':
          description: Unauthorized
    delete:
      operationId: cancelOrdersByIds
      summary: Cancel orders by IDs
      description: Cancels multiple orders identified by UUID or client identifier arrays. Either uuids[] or identifiers[] must be provided.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: uuids[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Array of order UUIDs (mutually exclusive with identifiers[])
      - name: identifiers[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Array of client identifiers (mutually exclusive with uuids[])
      responses:
        '200':
          description: Cancellation results
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      type: string
                    description: UUIDs of successfully cancelled orders
                  failed:
                    type: array
                    items:
                      type: string
                    description: UUIDs of orders that could not be cancelled
        '401':
          description: Unauthorized
  /orders/open:
    get:
      operationId: listOpenOrders
      summary: List open orders
      description: Returns all open (unfilled or partially filled) orders for the authenticated account.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: market
        in: query
        required: false
        schema:
          type: string
        description: Filter by market identifier
      - name: state
        in: query
        required: false
        schema:
          type: string
          enum:
          - wait
          - watch
        description: Filter by order state
      - name: states[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - wait
            - watch
        description: Filter by multiple order states
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
        description: Page number for pagination
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
        description: Number of results per page
      - name: order_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Sort order
      responses:
        '200':
          description: List of open orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderResponse'
        '401':
          description: Unauthorized
    delete:
      operationId: batchCancelOrders
      summary: Batch cancel open orders
      description: Cancels multiple open orders matching the specified criteria. Up to 300 orders can be cancelled per request.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: quote_currencies
        in: query
        required: false
        schema:
          type: string
        description: Filter by quote currencies
      - name: cancel_side
        in: query
        required: false
        schema:
          type: string
          enum:
          - bid
          - ask
        description: Only cancel orders on this side
      - name: count
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 300
        description: Maximum number of orders to cancel
      - name: order_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Ordering for selecting orders to cancel
      - name: pairs
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated list of market pairs to include
      - name: exclude_pairs
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated list of market pairs to exclude
      responses:
        '200':
          description: Batch cancellation results
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      type: string
                  failed:
                    type: array
                    items:
                      type: string
        '401':
          description: Unauthorized
        '429':
          description: Rate limit exceeded (1 request per 2 seconds)
  /orders/closed:
    get:
      operationId: listClosedOrders
      summary: List closed orders
      description: Returns completed (done or cancelled) orders for the authenticated account.
      tags:
      - Exchange Orders
      security:
      - bearerAuth: []
      parameters:
      - name: market
        in: query
        required: false
        schema:
          type: string
        description: Filter by market identifier
      - name: state
        in: query
        required: false
        schema:
          type: string
          enum:
          - done
          - cancel
        description: Filter by order state
      - name: states[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - done
            - cancel
        description: Filter by multiple order states
      - name: start_time
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Start of time range
      - name: end_time
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End of time range
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 1000
        description: Number of results to return
      - name: order_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Sort order
      responses:
        '200':
          description: List of closed orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderResponse'
        '401':
          description: Unauthorized
components:
  schemas:
    OrderResponse:
      type: object
      properties:
        market:
          type: string
          description: Market identifier
        uuid:
          type: string
          description: Order UUID
        side:
          type: string
          enum:
          - bid
          - ask
          description: Order side (bid=buy, ask=sell)
        ord_type:
          type: string
          enum:
          - limit
          - price
          - market
          - best
          description: Order type
        state:
          type: string
          enum:
          - wait
          - watch
          - done
          - cancel
          description: Order state
        created_at:
          type: string
          format: date-time
          description: Order creation time
        remaining_volume:
          type: string
          description: Remaining volume (decimal string)
        executed_volume:
          type: string
          description: Executed volume (decimal string)
        reserved_fee:
          type: string
          description: Reserved fee (decimal string)
        remaining_fee:
          type: string
          description: Remaining fee (decimal string)
        paid_fee:
          type: string
          description: Paid fee (decimal string)
        locked:
          type: string
          description: Locked amount (decimal string)
        trades_count:
          type: integer
          description: Number of trades
        prevented_volume:
          type: string
          description: Volume prevented by SMP (decimal string)
        prevented_locked:
          type: string
          description: Amount locked by SMP prevention (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