1. Go to this page and download the library: Download kucoin/kucoin-php-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
kucoin / kucoin-php-sdk example snippets
// Switch to the sandbox environment
KuCoinApi::setBaseUri('https://api.kucoin.com');
// Debug mode will record the logs of API and WebSocket to files in the directory "KuCoinApi::getLogPath()" according to the minimum log level "KuCoinApi::getLogLevel()".
KuCoinApi::setDebugMode(true);
// Logging in your code
// KuCoinApi::setLogPath('/tmp');
// KuCoinApi::setLogLevel(Monolog\Logger::DEBUG);
KuCoinApi::getLogger()->debug("I'm a debug message");
use KuCoin\SDK\PublicApi\Time;
$api = new Time();
$timestamp = $api->timestamp();
var_dump($timestamp);
use KuCoin\SDK\PrivateApi\Account;
use KuCoin\SDK\Exceptions\HttpException;
use KuCoin\SDK\Exceptions\BusinessException;
use KuCoin\SDK\Auth;
// Auth version v2 (recommend)
$auth = new Auth('key', 'secret', 'passphrase', Auth::API_KEY_VERSION_V2);
// Auth version v1
// $auth = new Auth('key', 'secret', 'passphrase');
$api = new Account($auth);
try {
$result = $api->getList(['type' => 'main']);
var_dump($result);
} catch (HttpException $e) {
var_dump($e->getMessage());
} catch (BusinessException $e) {
var_dump($e->getMessage());
}
use KuCoin\SDK\Auth;
use KuCoin\SDK\PrivateApi\WebSocketFeed;
use Ratchet\Client\WebSocket;
use React\EventLoop\Loop;
use React\EventLoop\LoopInterface;
$auth = null;
// Need to pass the Auth parameter when subscribing to a private channel($api->subscribePrivateChannel()).
// $auth = new Auth('key', 'secret', 'passphrase');
$api = new WebSocketFeed($auth);
// Use a custom event loop instance if you like
//$loop = Loop::get();
//$loop->addPeriodicTimer(1, function () {
// var_dump(date('Y-m-d H:i:s'));
//});
//$api->setLoop($loop);
$query = ['connectId' => uniqid('', true)];
$channels = [
['topic' => '/market/ticker:KCS-BTC'], // Subscribe multiple channels
['topic' => '/market/ticker:ETH-BTC'],
];
$api->subscribePublicChannels($query, $channels, function (array $message, WebSocket $ws, LoopInterface $loop) use ($api) {
var_dump($message);
// Subscribe another channel
// $ws->send(json_encode($api->createSubscribeMessage('/market/ticker:LTC-BTC')));
// Unsubscribe the channel
// $ws->send(json_encode($api->createUnsubscribeMessage('/market/ticker:ETH-BTC')));
// Stop loop
// $loop->stop();
}, function ($code, $reason) {
echo "OnClose: {$code} {$reason}\n";
});
use KuCoin\SDK\PublicApi\Time;
$api = new Time(null, new GuzzleHttp([
'curl' => [ // custom cURL options: https://www.php.net/manual/en/function.curl-setopt
CURLOPT_TCP_NODELAY => true, // Disable TCP's Nagle algorithm, which tries to minimize the number of small packets on the network.
// ...
],
]));
$timestamp = $api->timestamp();
var_dump($timestamp);
use KuCoin\SDK\Auth;
use KuCoin\SDK\Http\GuzzleHttp;
use KuCoin\SDK\KuCoinApi;
use KuCoin\SDK\PrivateApi\WebSocketFeed;
use Ratchet\Client\WebSocket;
use React\EventLoop\Factory;
use React\EventLoop\LoopInterface;
$api = new WebSocketFeed(
null,
new GuzzleHttp([
'curl' => [ // Custom cURL options: https://www.php.net/manual/en/function.curl-setopt
CURLOPT_TCP_NODELAY => true, // Disable TCP's Nagle algorithm, which tries to minimize the number of small packets on the network.
// ...
],
])
);
$query = ['connectId' => uniqid('', true)];
$channels = [
['topic' => '/market/ticker:KCS-BTC'],
['topic' => '/market/ticker:ETH-BTC'],
];
$options = ['tcp' => ['tcp_nodelay' => true]]; // Custom socket context options: https://www.php.net/manual/zh/context.socket
$api->subscribePublicChannels($query, $channels, function (array $message, WebSocket $ws, LoopInterface $loop) use ($api) {
var_dump($message);
}, function ($code, $reason) {
echo "OnClose: {$code} {$reason}\n";
}, $options);
use KuCoin\SDK\Auth;
use KuCoin\SDK\Http\SwooleHttp;
use KuCoin\SDK\KuCoinApi;
use KuCoin\SDK\PrivateApi\Order;
use KuCoin\SDK\PublicApi\Time;
// Require PHP 7.1+ and Swoole 2.1.2+
// Require running in cli mode
go(function () {
$api = new Time(null, new SwooleHttp);
$timestamp = $api->timestamp();
var_dump($timestamp);
});
go(function () {
// Auth version v2 (recommend)
$auth = new Auth('key', 'secret', 'passphrase', Auth::API_KEY_VERSION_V2);
// Auth version v1
// $auth = new Auth('key', 'secret', 'passphrase');
$api = new Order($auth, new SwooleHttp);
// Create 50 orders CONCURRENTLY in 1 second
for ($i = 0; $i < 50; $i++) {
go(function () use ($api, $i) {
$order = [
'clientOid' => uniqid(),
'price' => '1',
'size' => '1',
'symbol' => 'BTC-USDT',
'type' => 'limit',
'side' => 'buy',
'remark' => 'ORDER#' . $i,
];
try {
$result = $api->create($order);
var_dump($result);
} catch (\Throwable $e) {
var_dump($e->getMessage());
}
});
}
});
shell
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.