Get Stop Order By ClientOid (Implementation)
Source:R/impl_spottrading_orders_stop.R
get_stop_order_by_client_oid_impl.RdRetrieves detailed information for a single stop order using its client order ID (clientOid) from the KuCoin Spot trading system asynchronously.
This function constructs a GET request to the KuCoin API and returns a promise that resolves to a data.table
with comprehensive stop order details, including additional UTC datetime columns derived from timestamps.
Usage
get_stop_order_by_client_oid_impl(
keys = get_api_keys(),
base_url = get_base_url(),
clientOid,
symbol = NULL,
.__coro_env_parent__ = <environment>
)Arguments
- keys
List; API configuration parameters from
get_api_keys(). Defaults toget_api_keys().- base_url
Character string; base URL for the KuCoin API. Defaults to
get_base_url().- clientOid
Character string; the unique client order ID to retrieve (e.g., "2b700942b5db41cebe578cff48960e09"). Required.
- symbol
Character string; the trading pair symbol (e.g., "KCS-USDT"). Optional.
Value
Promise resolving to a data.table with typically one row containing stop order details, with the following columns:
id(character): Unique order ID assigned by KuCoin.symbol(character): Trading pair (e.g., "KCS-USDT").userId(character): User ID associated with the order.status(character): Order status (e.g., "NEW", "TRIGGERED").type(character): Order type (e.g., "limit", "market").side(character): Order side ("buy" or "sell").price(character): Order price.size(character): Order size.funds(character or NA): Order funds (NULL for untriggered orders).stp(character or NA): Self Trade Prevention strategy (e.g., "DC", "CO", "CN", "CB").timeInForce(character): Time in force (e.g., "GTC", "GTT", "IOC", "FOK").cancelAfter(integer): Seconds until cancellation for GTT (-1 if not applicable).postOnly(logical): Whether the order is post-only.hidden(logical): Whether the order is hidden.iceberg(logical): Whether the order is an iceberg order.visibleSize(character or NA): Visible size for iceberg orders.channel(character): Order source (e.g., "API").clientOid(character): Client-assigned order ID.remark(character or NA): Order remarks.tags(character or NA): Order tags.orderTime(numeric): Order creation time in nanoseconds.domainId(character): Domain ID (e.g., "kucoin").tradeSource(character): Trade source (e.g., "USER").tradeType(character): Trade type (e.g., "TRADE").feeCurrency(character): Currency used for fees.takerFeeRate(character): Taker fee rate.makerFeeRate(character): Maker fee rate.createdAt(integer): Creation timestamp in milliseconds.stop(character): Stop order type (e.g., "loss", "entry").stopTriggerTime(integer or NA): Trigger time in milliseconds (NULL if untriggered).stopPrice(character): Stop price.createdAtDatetime(POSIXct): Creation time in UTC (derived fromcreatedAt).orderTimeDatetime(POSIXct): Order placement time in UTC (derived fromorderTime).
Details
Description
This endpoint fetches data for a specific stop order identified by its clientOid, a unique identifier assigned
by the user when placing the order. The stop order can be in various states, such as "NEW" (untriggered) or
"TRIGGERED" (activated).
Workflow
Parameter Validation: Ensures
clientOidis a non-empty string andsymbol(if provided) is a valid trading pair.Request Construction: Builds the endpoint URL with query parameters
clientOidand optionallysymbol.Authentication: Generates private API headers using
build_headers()with the GET method and endpoint.API Request: Sends a GET request to the KuCoin API with a 3-second timeout.
Response Processing: Parses the response, converts the
dataarray to adata.table, and addscreatedAtDatetimeandorderTimeDatetimecolumns.
API Details
Endpoint:
GET https://api.kucoin.com/api/v1/stop-order/queryOrderByClientOidDomain: Spot
API Channel: Private
API Permission: General
Rate Limit Pool: Spot
Rate Limit Weight: 3
SDK Service: Spot
SDK Sub-Service: Order
SDK Method Name: getStopOrderByClientOid
Official Documentation: KuCoin Get Stop Order By ClientOid
Request
Response
Data Schema
code: String (required) - Response code ("200000" indicates success).data: Array of objects (required) - List of stop order details (typically one item), each with fields such as:id: String - Order ID.symbol: String - Trading pair.userId: String - User ID.status: String - Order status.type: String - Order type.side: String - Order side.price: String - Order price.size: String - Order size.funds: String - Order funds.stp: String - Self Trade Prevention.timeInForce: String - Time in force.cancelAfter: Integer - Cancel after n seconds.postOnly: Boolean - Post-only flag.hidden: Boolean - Hidden order flag.iceberg: Boolean - Iceberg order flag.visibleSize: String - Visible size for iceberg orders.channel: String - Order channel.clientOid: String - Client order ID.remark: String - Order remarks.tags: String - Order tags.orderTime: Integer - Order time in nanoseconds.domainId: String - Domain ID.tradeSource: String - Trade source.tradeType: String - Trade type.feeCurrency: String - Fee currency.takerFeeRate: String - Taker fee rate.makerFeeRate: String - Maker fee rate.createdAt: Integer - Creation timestamp in milliseconds.stop: String - Stop order type.stopTriggerTime: Integer - Stop trigger time.stopPrice: String - Stop price.
JSON Response Example
{
"code": "200000",
"data": [
{
"id": "vs8hoo8os561f5np0032vngj",
"symbol": "KCS-USDT",
"userId": "60fe4956c43cbc0006562c2c",
"status": "NEW",
"type": "limit",
"side": "buy",
"price": "0.01000000000000000000",
"size": "0.01000000000000000000",
"funds": null,
"stp": null,
"timeInForce": "GTC",
"cancelAfter": -1,
"postOnly": false,
"hidden": false,
"iceberg": false,
"visibleSize": null,
"channel": "API",
"clientOid": "2b700942b5db41cebe578cff48960e09",
"remark": null,
"tags": null,
"orderTime": 1629020492834532600,
"domainId": "kucoin",
"tradeSource": "USER",
"tradeType": "TRADE",
"feeCurrency": "USDT",
"takerFeeRate": "0.00200000000000000000",
"makerFeeRate": "0.00200000000000000000",
"createdAt": 1629020492837,
"stop": "loss",
"stopTriggerTime": null,
"stopPrice": "1.00000000000000000000"
}
]
}Examples
if (FALSE) { # \dontrun{
library(coro)
library(data.table)
main_async <- coro::async(function() {
# Retrieve stop order details by clientOid
stop_order_details <- await(get_stop_order_by_client_oid_impl(
clientOid = "2b700942b5db41cebe578cff48960e09",
symbol = "KCS-USDT"
))
print(stop_order_details)
})
# Run the async function
main_async()
while (!later::loop_empty()) later::run_now()
} # }