Skip to main content

PyPI version License: MIT

zaif-client is a python client (sync/async) library for zaif api

Installation

$ pip install zaif-client

Usage

Public

#
# sync
#
from zaif_client.public import Public

client = Public(public_key='your key', private_key='your secret key')
response = client.ticker()
print(response.status_code, response.json())

#
# async
#
import grequests
from zaif_client.publicasync import PublicAsync

client = PublicAsync(public_key='your key', private_key='your secret key')
reqs = [client.ticker(), client.depth(), ...]
response = grequests.map(reqs)
for r in response:
    print(r.status_code, r.json())

#
# /currencies/{currency}
#
client.currencies(currency='all')
# [{"name": "btc","is_token": false},{"name": "XCP","is_token": true},...]

#
# /currency_pairs/{currency_pair}
#
client.currency_pairs(currency_pair='all')
# [{"name": "BTC/JPY","title": "BTC/JPY","currency_pair": "btc_jpy","description": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3\u30fb\u65e5\u672c\u5186\u306e\u53d6\u5f15\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059","is_token": false,"event_number": 0,"item_unit_min": 0.0001,"item_unit_step": 0.0001,"aux_unit_min": 5.0,"aux_unit_step": 5.0,"seq": 0,"aux_japanese": "\u65e5\u672c\u5186","item_japanese": "\u30d3\u30c3\u30c8\u30b3\u30a4\u30f3","aux_unit_point": 0,},{"name": "KINOKOUSAKA/JPY","title": "KINOKOUSAKA/JPY \u53d6\u5f15\u6240 - ZAIF Exchange","currency_pair": "kinokousaka_jpy","description": "KINOKOUSAKA/JPY \u53d6\u5f15\u6240\u3002KINOKOUSAKA\u3068\u65e5\u672c\u5186\u306e\u53d6\u5f15\u304c\u884c\u3048\u307e\u3059\u3002","is_token": true,"event_number": 1,"item_unit_min": 0.01,"item_unit_step": 0.01,"aux_unit_min": 0.01,"aux_unit_step": 0.01,"seq": 134,"aux_japanese": "\u65e5\u672c\u5186","item_japanese": "KINOKOUSAKA","aux_unit_point": 2,}...]

#
# /last_price/{currency_pair}
#
client.last_price(currency_pair='btc_jpy')
# {"last_price": 134820.0}

#
# /ticker/{currency_pair}
#
client.ticker(currency_pair='btc_jpy')
# {"last": 135875.0,"high": 136000.0,"low": 131570.0,"vwap": 133301.7489,"volume": 6889.215,"bid": 135875.0,"ask": 135920.0}

#
# /trades/{currency_pair}
#
client.trades(currency_pair='btc_jpy')
# [{"date": 1491756592,"price": 135340.0,"amount": 0.02,"tid": 43054307,"currency_pair": "btc_jpy","trade_type": "ask"},{"date": 1491756591,"price": 135345.0,"amount": 0.01,"tid": 43054306,"currency_pair": "btc_jpy","trade_type": "bid"},...]

#
# /depth/{currency_pair}
#
client.depth(currency_pair='btc_jpy')
# {"asks": [[134875.0,0.0063],[134885.0,0.1639],...],"bids": [[134870.0,0.01],[134865.0,0.3066],...]}

Trade

#
# sync
#
from zaif_client.trade import Trade

client = Trade(public_key='your key', private_key='your secret key')
response = client.get_info()
print(response.status_code, response.json())

#
# async
#
import grequests
from zaif_client.tradeasync import TradeAsync

client = TradeAsync(public_key='your key', private_key='your secret key')
reqs = [client.get_info(), client.get_info2(), ...]
response = grequests.map(reqs)
for r in response:
    print(r.status_code, r.json())

#
# get_info
#
client.get_info()
# {"success":1,"return":{"funds":{"jpy":15320,"btc":1.389,"xem":100.2,"mona":2600,"pepecash":0.1},"deposit":{"jpy":20440,"btc":1.479,"xem":100.2,"mona":3200,"pepecash":0.1},"rights":{"info":1,"trade":1,"withdraw":0,"personal_info":0,"id_info":0,},"trade_count":18,"open_orders":3,"server_time":1401950833}}

#
# get_info2
#
client.get_info2()
# {"success": 1,"return": {"funds": {"jpy": 15320,"btc": 1.389,"xem": 100.2,"mona": 2600,"pepecash": 0.1},"deposit": {"jpy": 20440,"btc": 1.479,"xem": 100.2,"mona": 3200,"pepecash": 0.1},"rights": {"info": 1,"trade": 1,"withdraw": 0,"personal_info": 0},"open_orders": 3,"server_time": 1401950833}

#
# get_personal_info
#
client.get_personal_info()
# {"success": 1,"return": {"ranking_nickname": "ニックネーム","icon_path": "https://abs.twimg.com/sticky/default_profile_images/default_profile_0_normal.png"}}

#
# get_id_info
#
client.get_id_info()
# {'success': 1, 'return': {'user': {'certified': True, 'kana': 'カナ', 'id': 123123, 'name': '氏名', 'email': 'メール'}}}

#
# trade_history
#
client.trade_history()
# {"success": 1,"return": {"182": {"currency_pair": "btc_jpy","action": "bid","amount": 0.03,"price": 56000,"fee": 0,"your_action": "ask","bonus": 1.6,"timestamp": 1402018713,"comment" : "demo"}}}

#
# active_orders
#
client.active_orders()
# {"success": 1,"return": {"184": {"currency_pair": "btc_jpy","action": "ask","amount": 0.03,"price": 56000,"timestamp": 1402021125,"comment" : "demo"}}}is_token_bothがtrueの時は下記{"success": 1,"return": {"active_orders": {"184": {"currency_pair": "btc_jpy","action": "ask","amount": 0.03,"price": 56000,"timestamp": 1402021125,"comment" : "demo"},"token_active_orders": {"235": {"currency_pair": "kaori_jpy","action": "ask","amount": 0.3,"price": 10,"timestamp": 1402064525,"comment" : "demo"}}}}}

#
# trade
#
client.trade(currency_pair='btc_jpy', action='bid', price=1, amount=1)
# {"success": 1,"return": {"received": 0.1,"remains": 0,"order_id": 0,"funds": {"jpy": 325,"btc": 1.392,"mona": 2600}}}

#
# cancel_order
#
client.cancel_order(currency_pair='btc_jpy', order_id=184)
# {"success": 1,"return": {"order_id": 184,"funds": {"jpy": 15320,"btc": 1.392,"mona": 2600,"kaori": 0.1}}}

#
# withdraw
#
client.withdraw(currency='btc', address='xxxxxxx', amount=1)
# {"success": 1,"return": {"id": 23634,"fee": 0.001,"txid":,"funds": {"jpy": 15320,"btc": 1.392,"xem": 100.2,"mona": 2600}}

#
# deposit_history
#
client.deposit_history(currency='jpy')
# {"success":1,"return":{"3816":{"timestamp":1435745065,"address":"12qwQ3sPJJAosodSUhSpMds4WfUPBeFEM2","amount":0.001,"txid":"64dcf59523379ba282ae8cd61d2e9382c7849afe3a3802c0abb08a60067a159f",},"3814":{"timestamp":1435548083,"address":"12qwQ3sPJJAosodSUhSpMds4WfUPBeFEM2","amount":0.001,"txid":"7d012cfff6e67a8938f93215367eef4177604459631ea62c85550980dca71819"},}}

#
# withdraw_history
#
client.withdraw_history(currency='jpy')
# {"success":1,"return":{"3816":{"timestamp":1435745065,"address":"12qwQ3sPJJAosodSUhSpMds4WfUPBeFEM2","amount":0.001,"txid":"64dcf59523379ba282ae8cd61d2e9382c7849afe3a3802c0abb08a60067a159f",},"3814":{"timestamp":1435548083,"address":"12qwQ3sPJJAosodSUhSpMds4WfUPBeFEM2","amount":0.001,"txid":"7d012cfff6e67a8938f93215367eef4177604459631ea62c85550980dca71819"},}}

Futures

#
# sync
#
from zaif_client.futures import Futures

client = Futures(public_key='your key', private_key='your secret key')
response = client.ticker()
print(response.status_code, response.json())

#
# async
#
import grequests
from zaif_client.futuresasync import FuturesAsync

client = FuturesAsync(public_key='your key', private_key='your secret key')
reqs = [client.ticker(), client.depth(), ...]
response = grequests.map(reqs)
for r in response:
    print(r.status_code, r.json())

#
# /groups/{group_id}
#
client.groups(group_id='all')
# [{"id": 1,"currency_pair": "btc_jpy","start_timestamp": 1480518000,"end_timestamp": 4102412399,"use_swap": false},{"id": 2,"currency_pair": "btc_jpy","start_timestamp": 1488294000,"end_timestamp": 1498834800,"use_swap": false}]

#
# /last_price/{group_id}/{currency_pair}
#
client.last_price(group_id='all', currency_pair='btc_jpy')
# [{"last_price": 112155.0, "group_id": 1},{"last_price": 106100.0, "group_id": 2},...]

#
# /ticker/{group_id}/{currency_pair}
#
client.ticker(group_id=1, currency_pair='btc_jpy')
# {"last": 112155.0,"high": 117000.0,"low": 112155.0,"vwap": 115847.1429,"volume": 150.0007,"bid": 116995.0,"ask": 117000.0}

#
# /trades/{group_id}/{currency_pair}
#
client.trades(group_id=1, currency_pair='btc_jpy')
# [{"date": 1491756592,"price": 135340.0,"amount": 0.02,"tid": 102659,"currency_pair": "btc_jpy","trade_type": "ask"},{"date": 1491756591,"price": 135345.0,"amount": 0.01,"tid": 102658,"currency_pair": "btc_jpy","trade_type": "bid"},...]

#
# /depth/{group_id}/{currency_pair}
#
client.depth(group_id=1, currency_pair='btc_jpy')
# {"asks": [[134875.0,0.0063],[134885.0,0.1639],...],"bids": [[134870.0,0.01],[134865.0,0.3066],...]}

Leverage

#
# sync
#
from zaif_client.leverage import Leverage

client = Leverage(public_key='your key', private_key='your secret key')
response = client.ticker()
print(response.status_code, response.json())

#
# async
#
import grequests
from zaif_client.leverageasync import LeverageAsync

client = LeverageAsync(public_key='your key', private_key='your secret key')
reqs = [client.ticker(), client.depth(), ...]
response = grequests.map(reqs)
for r in response:
    print(r.status_code, r.json())

#
# get_positions
#
client.get_positions(group_id=1, type='margin')
# {"success": 1,"return": {"182": {"group_id": 1,"currency_pair": "btc_jpy","action": "bid","leverage": 2.5,"price": 110005,"limit": 130000,"stop": 90000,"amount": 0.03,"fee_spent": 0,"timestamp": 1402018713,"term_end": 1404610713,"timestamp_closed": 1402019000,"deposit": 35.76 ,"deposit_jpy": 35.76,"refunded": 35.76 ,"refunded_jpy": 35.76,"swap": 0,}}}

#
# position_history
#
client.position_history(group_id=1, type='margin', leverage_id=1)
# {"success": 1,"return": {"182": {"group_id": 1,"currency_pair": "btc_jpy","action": "bid","amount": 0.0001,"price": 499000"timestamp": 1504251232"your_action": "bid","bid_leverage_id": 182,},"183": {"group_id": 1,"currency_pair": "btc_jpy","action": "ask","amount": 0.0001,"price": 450000"timestamp": 1504251267"your_action": "ask","ask_leverage_id": 182,},}}

#
# active_positions
#
client.active_positions(group_id=1, type='margin')
# {"success": 1,"return": {"184": {"group_id": "1","currency_pair": "btc_jpy","action": "ask","amount": 0.0001,"price": 450000,"timestamp": 1402021125,"term_end": 1404613125,"leverage": 1,"fee_spent": 0.0015,"price_avg": 450000,"amount_done": 0.0001,"deposit_jpy": 48.72}}}

#
# create_position
#
client.create_position(group_id=1, type='margin', currency_pair='btc_jpy', action='bid', price=1, amount=1, leverage=1)
# {"success": 1,"return": {"leverage_id": 22258,"timestamp": 1504253833,"term_end": 1506845833,"price_avg": 118000,"amount_done": 0.0001,"deposit_jpy": 11.92,"funds": {"jpy": 325,"btc": 1.392,"mona": 2600}}}

#
# change_position
#
client.change_position(group_id=1, type='margin', leverage_id=1, price=1)
# {"success": 1,"return": {"leverage_id": 22258,"price_avg": 118000,"amount_done": 0.0001,}}

#
# cancel_position
#
client.cancel_position(group_id=1, type='margin', leverage_id=1)
# {'success': 1,'return': {'leverage_id': 2072,'refunded_jpy': 645.96,'funds': {'btc': 0.496,'jpy': 1564.96,'xem': 0.0,'mona': 10.0},'fee_spent': 0.0,'timestamp_closed': '1508384951','swap': 0.0}}

Contributing

  1. Fork it

  2. Create your feature branch (git checkout -b my-new-feature)

  3. Commit your changes (git commit -am 'Add some feature')

  4. Push to the branch (git push origin my-new-feature)

  5. Create new Pull Request

Metadata

Release files for zaif-client 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zaif-client 0.1.1
File Size Uploaded
zaif-client-0.1.1.tar.gz 8.8 kB Details

Release files / zaif-client-0.1.1.tar.gz

Download URL zaif-client-0.1.1.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
22c1a23e80a9890ffc6472d29c8cffa02b2a26c4bb6adf998cbd8a7acb4142b8
BLAKE2b-256 checksum
How to use checksums
de5436424c085284fb2d327aa39149f22aa6aa8d9a8c8c5db4cdab9ba5b4a762
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page