Author

Topic: CEX.IO API Client Library for C# (Read 953 times)

newbie
Activity: 8
Merit: 0
January 15, 2014, 12:33:42 AM
#1
I just open sourced a C# client API library for Cex.io available at https://github.com/jordansjones/Cex.io-Api-Client.
You need to have an account and API Access Key/Secret generated. Ideally you will want to enable all permissions when you generate your Key/Secret.

Code: (C#)
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

using Nextmethod.Cex;

namespace SimpleExample
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().RunExample().Wait();
        }

        const string CexUsername = ""; // Your username on Cex.io
        const string CexApiKey = ""; // Your API key
        const string CexApiSecret = ""; // Your API secret

        private CexApi CexClient { get; set; }

        private GhashApi GhashClient { get; set; }

        private async Task RunExample()
        {

            // Using the ApiCredentials Class
            // Client = new Api(new ApiCredentials(CexUsername, CexApiKey, CexApiSecret));
            // Or not
            // CexClient = new CexApi(CexUsername, CexApiKey, CexApiSecret);
            // ApiCredentials/(Username, ApiKey, ApiSecret) not needed for public functions
            CexClient = new CexApi();

            // Get Ticker Data
            Ticker tickerData = await CexClient.Ticker(SymbolPair.GHS_BTC);

            // Get Order Book
            OrderBook orderBook = await CexClient.OrderBook(SymbolPair.GHS_BTC);

            // Get Trade history
            IEnumerable tradeHistory = await CexClient.TradeHistory(SymbolPair.NMC_BTC);

            // ApiCredentials required for user specific calls or "Private Functions"
            CexClient = new CexApi(CexUsername, CexApiKey, CexApiSecret);

            // Get Account Balance
            Balance accountBalance = await CexClient.AccountBalance();

            // Get Open Orders
            IEnumerable openOrders = await CexClient.OpenOrders(SymbolPair.LTC_BTC);

            // Place an order
            OpenOrder openOrder = await CexClient.PlaceOrder(
                SymbolPair.GHS_BTC,
                new Order
                {
                    Amount = 1.00m,
                    Price = 0.04644000m,
                    Type = OrderType.Buy
                });

            // Cancel an order
            bool didSucceed = await CexClient.CancelOrder(openOrder.Id);

            // GHash.IO Example
            GhashClient = new GhashApi(new ApiCredentials(CexUsername, CexApiKey, CexApiSecret));

            // Get Hash Rate
            Hashrate hashrate = await GhashClient.Hashrate();

            // Get Workers Hash Rate
            IEnumerable> workerHashRate = await GhashClient.WorkersHashRate();
        }
    }
}

Update 2014-01-22 I have also added support for GHash.IO API Endpoints. Previous sample has been updated.
Jump to: