TechTailor / Laravel-Binance-Api

A Laravel Wrapper for the Binance API. Now easily connect and consume the Binance Public & Private API in your Laravel apps without any hassle.
MIT License
14 stars 14 forks source link
binance binance-api binance-api-laravel binance-api-wrapper binanceapi laravel-binance

GitHub release GitHub issues Software License Total Downloads

This package provides a Laravel Wrapper for the Binance API and allows you to easily communicate with it.


Important Note

This package is in early development stage. It is not advisable to use it in a production app until v1.0 is released. Feel free to open a PR to contribute to this project and help me reach a production ready build.


Installation

You can install the package via composer:

composer require techtailor/laravel-binance-api

You can publish the config file with:

php artisan vendor:publish --tag="binance-api-config"

Open your .env file and add the following (replace YOUR_API_KEY and YOUR_SECRET with the API Key & Secret you received from Binance) -

BINANCE_KEY=YOUR_API_KEY
BINANCE_SECRET=YOUR_SECRET

Or

Open the published config file available at config/binance-api.php and add your API and Secret Keys:

return [
    'auth' => [
        'key'        => env('BINANCE_KEY', 'YOUR_API_KEY'),
        'secret'     => env('BINANCE_SECRET', 'YOUR_SECRET')
    ],
];

Usage

Using this package is very simple. Just initialize the Api and call one of the available methods:

use TechTailor\BinanceApi\BinanceAPI;

$binance = new BinanceAPI();

$time = $binance->getTime();

You can also set an API & Secret for a user by passing it after initalization (useful when you need to isolate api keys for individual users):

$binance = new BinanceApi();

$binance->setApi($apiKey, $secretKey);

$accountInfo = $binance->getAccountInfo();

Available Methods

Available Public Methods (Security Type : NONE) [API Keys Not Required]

- getSystemStatus()         // returns system status, expect msg to be "normal".
- getTime()                 // returns server timestamp.
- getExchangeInfo($symbol)  // returns current exchange trading rules and symbol information.
- getOrderBook($symbol)     // returns the order book for the symbol.
- getAvgPrice($symbol)      // returns the average price for a symbol.
- getTicker($symbol)        // returns the 24hr ticker for a symbol (if no symbol provided, returns an array of all symbols).

Available Private Methods (Security Type : USER_DATA) [API Keys Required]

- getAccountInfo()          // returns current account information.
- getAllOrders()            // return all current account orders (active, canceled or filled).
- getOpenOrders($symbol)    // returns all current account open orders (Careful when accessing without symbol).
- getTrades($symbol)        // returns all trades for a symbol.
- getOrderStatus($symbol, $orderId) // returns status of a given order.
- getUserCoinsInfo()        // returns information of all coins available to the user.
- getDepositHistory()       // returns the user's deposit history.
- getWithdrawHistory()      // returns the user's withdraw history.

TODO

List of features or additional functionality we are working on (in no particular order) -

- Improve exception handling.
- Add rate limiting to API Calls.
- Add response for API ban/blacklisting response.
- Improve ReadMe.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.