MtGox/API: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Molecular (talk | contribs)
No edit summary
Molecular (talk | contribs)
No edit summary
Line 20: Line 20:
See: http://forum.bitcoin.org/index.php?topic=5855.0 (will be ported here soon)
See: http://forum.bitcoin.org/index.php?topic=5855.0 (will be ported here soon)


==Connecting==
===Connecting===


You can connect via: ws://websocket.mtgox.com/mtgox
You can connect via: ws://websocket.mtgox.com/mtgox


==Channels==
===Channels===


The websocket will subscribe you to some channels automatically:
The websocket will subscribe you to some channels automatically:
Line 42: Line 42:
Each message is a JSON-encoded object, with at least "op" element. The "op" element contains the operation to be done (for outgoing messages), or the type of message (for incoming messages).
Each message is a JSON-encoded object, with at least "op" element. The "op" element contains the operation to be done (for outgoing messages), or the type of message (for incoming messages).


==Possible outgoing commands==
===Possible outgoing commands===


'''unsubscribe''' Stop receiving messages from a channel (parameter "channel")
'''unsubscribe''' Stop receiving messages from a channel (parameter "channel")


==Incoming Data==
===Incoming Data===


===Ticker===
====Ticker====
:{"channel":"d5f06780-30a8-4a48-a2f8-7ed181b4a13f","op":"private","origin":"broadcast","private":"ticker","ticker":"buy":0.9515,"high":1,"low":0.91,"sell":0.9697,"vol":34349}}
:{"channel":"d5f06780-30a8-4a48-a2f8-7ed181b4a13f","op":"private","origin":"broadcast","private":"ticker","ticker":"buy":0.9515,"high":1,"low":0.91,"sell":0.9697,"vol":34349}}


===Trade===
:The '''ticker''' field contains the following:
 
:{| class="wikitable"
|-
! Name !! Value
|-
| buy || lowest bid as float
|-
| sell || highest ask as float
|-
| high || maximum rate since last close as float
|-
| low || minimum rate since last close as float
|-
| vol || traded volume since last close
|}
 
====Trade====
:{"channel":"dbf1dee9-4f2e-4a08-8cb7-748919a71b21","op":"private","origin":"broadcast","private":"trade","trade":"amount":2.71,"amount_int":"271000000","date":1310279340,"item":"BTC","price":14.43,"price_currency":"USD","price_int":"1443000","tid":"1310279340877902","trade_type":"bid","type":"trade"}}
:{"channel":"dbf1dee9-4f2e-4a08-8cb7-748919a71b21","op":"private","origin":"broadcast","private":"trade","trade":"amount":2.71,"amount_int":"271000000","date":1310279340,"item":"BTC","price":14.43,"price_currency":"USD","price_int":"1443000","tid":"1310279340877902","trade_type":"bid","type":"trade"}}


Line 78: Line 95:
|}
|}


===Depth===
====Depth====


Changes to the market depth data are broadcast so an up-to-date market depth can be kept by clients.
Changes to the market depth data are broadcast so an up-to-date market depth can be kept by clients.
Line 86: Line 103:
:{| class="wikitable"
:{| class="wikitable"
|-
|-
! Header text !! Header text
! Name !! Value
|-
|-
| currency || the currency affected
| currency || the currency affected
Line 110: Line 127:
|}
|}


=MOLECULAR EDITING...=
====Order update (private)====
 
:{"channel":"(partial key)","op":"private","order_upd":{"amount":1000,"darkStatus":0,"date":1302836027,"oid":"(oid)","price":0.9899,"status":1},"origin":"broadcast","private":"order_upd"}
 
:order_upd cointains the following:
 
:{| class="wikitable"
|-
! Name !! Value
|-
| amount || change in volume of the order
|-
| darkStatus ||
|-
| oid || ID of the affected order
|-
| price ||
|-
| status ||
|}

Revision as of 09:43, 10 July 2011

The MtGox API provides various methods to access different informations from the market, place orders, and more.

Two APIs are available at this point: the HTTP api (available by posting to mtgox.com/code/*) and the websocket API.

Legacy API

This API is available in https://mtgox.com/code/*, and provides various informations. It also supports making an order, a withdraw, a deposit, etc.

Authentication

Authentication is performed by posting a username and a password in variables "name" and "pass". Some methods do not require authentication.

Methods

data/getTrades.php

This allows retrieving all trades which happened in the last 24 hours. The returned data is cached and may not reflect latest activity.

Parameters:

  • since: Passing a tid in "since" allows retrieving all trades since that trade. The passed id is may not exist. Ie. to get all trades from the very beginning one would just call https://mtgox.com/code/data/getTrades.php?since=0 . since returns only 100 trades, and you can call the method again by passing the latest trade you have imported in since.

Websocket API

See: http://forum.bitcoin.org/index.php?topic=5855.0 (will be ported here soon)

Connecting

You can connect via: ws://websocket.mtgox.com/mtgox

Channels

The websocket will subscribe you to some channels automatically:

Channel ID Description
dbf1dee9-4f2e-4a08-8cb7-748919a71b21 trades (each time a trade happens, you get something here)
d5f06780-30a8-4a48-a2f8-7ed181b4a13f the mtgox ticker (lots of updates, with often the same data)
24e67e0d-1cad-4cc0-9e7a-f8523ef460fe depth information in realtime (price + amount + type... type=1=Ask, type=2=Bid)

Additionally each user has a "own" channel which streams informations about orders (new order, deleted order, etc) and trades only the user's trades).

Each message is a JSON-encoded object, with at least "op" element. The "op" element contains the operation to be done (for outgoing messages), or the type of message (for incoming messages).

Possible outgoing commands

unsubscribe Stop receiving messages from a channel (parameter "channel")

Incoming Data

Ticker

{"channel":"d5f06780-30a8-4a48-a2f8-7ed181b4a13f","op":"private","origin":"broadcast","private":"ticker","ticker":"buy":0.9515,"high":1,"low":0.91,"sell":0.9697,"vol":34349}}
The ticker field contains the following:
Name Value
buy lowest bid as float
sell highest ask as float
high maximum rate since last close as float
low minimum rate since last close as float
vol traded volume since last close

Trade

{"channel":"dbf1dee9-4f2e-4a08-8cb7-748919a71b21","op":"private","origin":"broadcast","private":"trade","trade":"amount":2.71,"amount_int":"271000000","date":1310279340,"item":"BTC","price":14.43,"price_currency":"USD","price_int":"1443000","tid":"1310279340877902","trade_type":"bid","type":"trade"}}
Name Value
amount the traded amount in item (BTC), float, deprecated
amount_int the traded amount * 10000
date unix timestamp of trade
item What was this trade about
price price per unit, float, deprecated
price_int price in smallest unit as integer (5 decimals of USD, 3 in case of JPY)
price_currency currency in which trade was completed
tid Trade id (big integer, which is in fact trade timestamp in microseconds)
trade_type Did this trade result from the execution of a bid or a ask?

Depth

Changes to the market depth data are broadcast so an up-to-date market depth can be kept by clients.

{"channel":"24e67e0d-1cad-4cc0-9e7a-f8523ef460fe","depth":{"currency":"USD","item":"BTC","price":"14.43","price_int":"1443000","type":1,"type_str":"ask","volume":"-2.71","volume_int":"-271000000"},"op":"private","origin":"broadcast","private":"depth"}
Name Value
currency the currency affected
item the item (BTC)
price price as a float, deprecated
price_int the price at which volume change happened * 10000
type 1=ask, 2=bid. deprecated, use type_str
type_str type of order at this depth, either "ask" or "bid"
volume the volume change as float, deprecated
volume_int volume change * 10000

Order update (private)

{"channel":"(partial key)","op":"private","order_upd":{"amount":1000,"darkStatus":0,"date":1302836027,"oid":"(oid)","price":0.9899,"status":1},"origin":"broadcast","private":"order_upd"}
order_upd cointains the following:
Name Value
amount change in volume of the order
darkStatus
oid ID of the affected order
price
status