Korbit Deposit (Crypto) API
The Deposit (Crypto) API from Korbit — 3 operation(s) for deposit (crypto).
The Deposit (Crypto) API from Korbit — 3 operation(s) for deposit (crypto).
openapi: 3.1.0
info:
title: Korbit Open API v2 Asset Deposit (Crypto) 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: Deposit (Crypto)
paths:
/v2/coin/depositAddresses:
get:
operationId: getCoinDepositAddresses
summary: Get All Address
description: Retrieve the list of cryptocurrency deposit addresses.
tags:
- Deposit (Crypto)
parameters:
- name: accountSeq
in: query
description: Account sequence number. Deposit/withdrawal APIs only operate on the main account, so only `1` is accepted. Defaults to 1.
schema:
type: number
examples:
- 1
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: array
items:
type: object
properties:
currency:
type: string
description: symbol of the asset.
examples:
- btc
network:
type: string
description: symbol of the blockchain network.
examples:
- ETH
address:
type: string
description: deposit address.
examples:
- 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
secondaryAddress:
type: string
description: secondary address (destination tag, memo, etc. if none, then null.)
required:
- currency
- network
- address
required:
- success
example:
success: true
data:
- currency: btc
network: BTC
address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
- currency: xrp
network: XRP
address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
secondaryAddress: '1234'
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing or invalid API key / signature.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: API key lacks the required permission or the IP is not allowlisted.
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:
- KorbitApiKey: []
x-korbit-permission: readDeposits
/v2/coin/depositAddress:
get:
operationId: getCoinDepositAddress
summary: Get Single Address
description: Get the deposit address for a single cryptocurrency.
tags:
- Deposit (Crypto)
parameters:
- name: accountSeq
in: query
description: Account sequence number. Deposit/withdrawal APIs only operate on the main account, so only `1` is accepted. Defaults to 1.
schema:
type: number
examples:
- 1
- name: currency
in: query
required: true
description: symbol of the asset.
schema:
type: string
examples:
- btc
- name: network
in: query
description: symbol of the blockchain network. List of networks can be queried using the `/v2/currencies` API. Uses the default network if omitted. Please always specify the network to prevent possible errors, as the default network can be changed.
schema:
type: string
examples:
- BTC
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: object
properties:
currency:
type: string
description: symbol of the asset.
examples:
- btc
network:
type: string
description: symbol of the blockchain network.
examples:
- ETH
address:
type: string
description: deposit address.
examples:
- 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
secondaryAddress:
type: string
description: secondary address (destination tag, memo, etc. if none, then null.)
required:
- currency
- network
- address
required:
- success
example:
success: true
data:
currency: btc
network: BTC
address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing or invalid API key / signature.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: API key lacks the required permission or the IP is not allowlisted.
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:
- KorbitApiKey: []
x-korbit-permission: readDeposits
post:
operationId: createCoinDepositAddress
summary: Generate Address
description: Generate a cryptocurrency deposit address. If a deposit address already exists, the existing address will be returned.
tags:
- Deposit (Crypto)
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
accountSeq:
type: number
description: Account sequence number. Deposit/withdrawal APIs only operate on the main account, so only `1` is accepted. Defaults to 1.
examples:
- 1
currency:
type: string
description: symbol of the asset.
examples:
- btc
network:
type: string
description: symbol of the blockchain network. List of networks can be queried using the `/v2/currencies` API. Uses the default network if omitted. Please always specify the network to prevent possible errors, as the default network can be changed.
examples:
- BTC
required:
- currency
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: object
properties:
currency:
type: string
description: symbol of the asset.
examples:
- btc
network:
type: string
description: symbol of the blockchain network.
examples:
- ETH
address:
type: string
description: deposit address.
examples:
- 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
secondaryAddress:
type: string
description: secondary address (destination tag, memo, etc. if none, then null.)
required:
- currency
- network
- address
required:
- success
example:
success: true
data:
currency: btc
network: BTC
address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing or invalid API key / signature.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: API key lacks the required permission or the IP is not allowlisted.
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:
- KorbitApiKey: []
x-korbit-permission: writeDeposits
/v2/coin/deposit:
get:
operationId: getCoinDeposit
summary: Get Deposit Status
description: Check the status of cryptocurrency deposits.
tags:
- Deposit (Crypto)
parameters:
- name: accountSeq
in: query
description: Account sequence number. Deposit/withdrawal APIs only operate on the main account, so only `1` is accepted. Defaults to 1.
schema:
type: number
examples:
- 1
- name: currency
in: query
required: true
description: symbol of the asset.
schema:
type: string
examples:
- btc
- name: coinDepositId
in: query
required: true
description: deposit ID.
schema:
type: number
examples:
- 1234
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
examples:
- true
data:
type: object
properties:
id:
type: number
description: deposit ID.
examples:
- 1234
network:
type: string
description: symbol of the blockchain network.
examples:
- ETH
address:
type: string
description: deposit address.
examples:
- 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
secondaryAddress:
type: string
description: secondary address (destination tag, memo, etc. if none, then null.)
status:
type: string
enum:
- pending
- actionRequired
- reviewing
- done
- refunded
- failed
description: deposit status `pending` — Deposit transaction is detected on the network. / `actionRequired` — Pending deposit documentation submission. To process the deposit, please submit the required documents for approval on the Korbit website. / `reviewing` — Deposit documentation reviewing. / `done` — Deposit done. / `refunded` — Deposit amount returned after review rejection. / `failed` — Deposit failed (e.g., due to issues with the transaction).
transactionHash:
type: string
description: transaction hash.
examples:
- '0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f'
currency:
type: string
description: symbol of the asset.
examples:
- btc
quantity:
type: string
description: deposit quantity.
examples:
- '1.234'
createdAt:
type: number
description: deposit timestamp (ms).
examples:
- 1700000000000
required:
- id
- network
- address
- status
- transactionHash
- currency
- quantity
- createdAt
required:
- success
example:
success: true
data:
id: 1234
network: BTC
address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
secondaryAddress: null
status: done
transactionHash: '0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f'
currency: btc
quantity: '1.234'
createdAt: 1700000000000
'400':
description: Bad request — see the error envelope and error codes.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing or invalid API key / signature.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: API key lacks the required permission or the IP is not allowlisted.
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:
- KorbitApiKey: []
x-korbit-permission: readDeposits
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).