Skip to main content

Buttercoin API Python Client

Project description

Official Python Client of the Buttercoin API. Buttercoin is a trading platform that makes buying and selling bitcoin easy.

Installation

Install via pip

$ pip install buttercoin

Install from source

$ git clone git@github.com:buttercoin/buttercoin-python.git
$ cd buttercoin-python
$ python setup.py install

Usage

HMAC-SHA256 Authentication

You need an API key and secret to use HMAC.

Setting

Property Name

Description

API Key

api_key

Your Buttercoin API Key

API Secret

api_secret

Your Buttercoin API Secret

Mode

mode

Your development environment (default: 'production', set to 'sandbox' to test with testnet bitcoins)

from buttercoin.client import ButtercoinClient

client = ButtercoinClient(
    api_key='<BUTTERCOIN_API_KEY>',
    api_secret='<BUTTERCOIN_API_SECRET>',
    mode='<BUTTERCOIN_MODE>' # production or sandbox
)

Tips

A note on the timestamp param sent to all client methods: This param must always be increasing, and within 5 minutes of Buttercoin server times (GMT). This is to prevent replay attacks on your data.

Because of this, if you need your API calls to run in a certain order, you must chain together callbacks to ensure synchronous responses to your requests.

Additionally, for convenience, if you don’t include the timestamp parameter, it will default to the current timestamp.

timestamp = unicode(int(round(time.time() * 1000)))
client.get_key(timestamp=timestamp)

# or default to current timestamp

client.get_key()

Get Data

Key Permissions

Returns array of permissions associated with this key.

client.get_key()

Balances

Returns dict of balances for this account.

client.get_balances()

Deposit Address

Returns bitcoin address string to deposit your funds into the Buttercoin platform.

client.get_deposit_address()

Get Orders

Returns array of dict objects containing information about buy and sell orders.

Name

Param

Description

Status

status

enum: ['opened', 'partial-filled', 'filled', 'canceled']

Side

side

enum: ['buy', 'sell']

Order Type

orderType

enum: ['market', 'limit']

Date Min

dateMin

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

Date Max

dateMax

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

# query for multiple orders
body = {'status':'canceled'}
client.get_orders(body=body)

# single order by id
client.get_order_by_id('<order_id>');

# single order by url
client.get_order_by_url('http://api.buttercoin.com/v1/orders/b9fa58e6-a441-48ca-afbb-14827fca2f7a')

Get Transactions

Returns array of dict objects containing information about deposit and withdraw action.

Name

Param

Description

Status

status

enum: ['pending', 'processing', 'funded', 'canceled', 'failed']

Transaction Type

transactionType

enum: ['deposit', 'withdrawal']

Date Min

dateMin

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

Date Max

dateMax

format: ISO-8601, e.g. '2014-05-06T13:15:30Z'

# query for multiple transactions
body = {'status':'pending'}
client.get_transactions(body=body)

# single transaction by id
client.get_transaction_by_id('<transaction_id>');

# single transaction by url
client.get_transaction_by_url('http://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561')
});

Unauthenticated Requests

Get Order Book

Return a dict object of current orders in the Buttercoin order book.

client.get_order_book()

Get Ticker

Return the current bid, ask, and last sell prices on the Buttercoin platform.

client.get_ticker()

Get Trade History

Return the last 100 trades.

client.get_trade_history()

Create New Actions

Create Order

Valid order params include:

Name

Param

Description

Instrument

instrument

enum: ['BTC_USD, USD_BTC']

Side

side

enum: ['buy', 'sell'], required true

Order Type

orderType

enum: ['limit', 'market'], required true

Price

price

string, required false

Quantity

quantity

string, required false

# create a JSON object with the following params
order = {"instrument":"BTC_USD","side": "buy","orderType":"limit","price":"600","quantity":"0.2346"}

client.create_order(body=order) # http://api.buttercoin.com/v1/orders/b9fa58e6-a441-48ca-afbb-14827fca2f7a

Create Transaction

Please contact Buttercoin support before creating a USD deposit using the API.

Deposit transaction params include:

Name

Param

Description

Method

method

enum: ['wire'], required true

Currency

currency

enum: ['USD'], required true

Amount

amount

string, required true

# create deposit
txn = { "method": "wire", "currency": "USD", "amount": "500" }
client.create_deposit(body=txn) # https://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561

Withdrawal transaction params include:

Name

Param

Description

Method

method

enum: ['check'], required true

Currency

currency

enum: ['USD'], required true

Amount

amount

string, required true

If you have the security setting requiring confirmation of dollar withdrawals, you will see a 201 status.

# create withdrawal
txn = { "currency": "USD", "amount": "3020.30", "method": "check" }
json = client.create_withdrawal(body=txn) # https://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561

Send bitcoin transaction params include:

Name

Param

Description

Currency

currency

['USD'], required true

Amount

amount

string, required true

Destination

destination

address to which to send currency string, required true

If you have the security setting requiring confirmation of bitcoin withdrawals, you will see a 201 status

# send bitcoins to an address
txn = { "currency": "BTC", "amount": "0.30", "destination": "msj42CCGruhRsFrGATiUuh25dtxYtnpbTx" }
json = client.send_bitcoin(body=txn) # https://api.buttercoin.com/v1/transactions/53db06ee7400007700f4c561

Cancel Actions

All successful cancel calls to the API return a response status of 204 with a human readable success message

Cancel Order

Cancel a pending buy or sell order

client.cancel_order('<order_id>')

Cancel Transaction

Cancel a pending deposit or withdraw action

client.cancel_transaction('<transaction_id>')

Further Reading

License

Licensed under the MIT license.

Copyright 2015 Buttercoin Inc. All Rights Reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buttercoin-1.0.2.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

buttercoin-1.0.2-py2.py3-none-any.whl (15.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file buttercoin-1.0.2.tar.gz.

File metadata

  • Download URL: buttercoin-1.0.2.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for buttercoin-1.0.2.tar.gz
Algorithm Hash digest
SHA256 0b3ae4f1eb9aaee32f0e3ef718b28054920a2879fd13e484aea308ad84e72fad
MD5 2c8000c9d2fd857355a5ac1cbd544164
BLAKE2b-256 e9f9e6b0c174488cc09d0464d1f449dfa68622a16a48b12d4c33c2a61154a6fc

See more details on using hashes here.

File details

Details for the file buttercoin-1.0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for buttercoin-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0050bd77ad6031dd67cfa816eafb4acbd595bf2c53b80ea778df7fcf7eebd434
MD5 99ba00466a2c0c247e8d92de551c4667
BLAKE2b-256 22ccfeb428725e17eaa8bd7a6640df1d608de64f7365ab1a2ee02873ccadfa7c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page