They do have an API, but no official docs yet. Here's some unofficial documentation that they sent me last week. Note that this isn't final and also doesn't cover any of the trading functions. Should give you some idea of how it will work though (similar to Gox and other exchanges out there now)
API:
Public methods can use either GET or POST
Private methods must use POST and be set up as follows:
HTTP header:
API-Key = API key
API-Sign = Message signature using HMAC-SHA512 of the URI path and POST data and base64 decoded secret API key
POST data:
nonce = always increasing unsigned 64 bit integer
Note: There is no way to reset the nonce to a lower value so be sure to use a nonce generation method that won't generate
numbers less than the previous nonce. A persistent counter or the current time in hundredths of a second precision or higher is suggested.
Public market data
Get server time
URL:
https://api.beta.kraken.com/0/public/TimeResult: Server's time
unixtime = as unix timestamp
rfc1123 = as RFC 1123 time format
Note: This is to aid in approximating the skew time between the server and client.
Get tradeable asset pairs
URL:
https://api.beta.kraken.com/0/public/AssetPairsResult: array of pair names and their info
<pair-name> = pair name (ISO-4217-A3-X names)
altname = alternate pair name (ISO-4217-A3 names)
aclass-base = asset class of base component
base = asset id of base component
aclass-quote = asset class of quote component
quote = asset id of quote component
lot = lot size
leverage = array of leverage amounts available
Get ticker information
URL:
https://api.beta.kraken.com/0/public/TickerInput:
pair = comma delimited list of asset pairs to get info on
Result: array of pair names and their ticker info
<pair-name> = pair name (ISO-4217-A3-X names)
ask = ask array(<price>, <lot volume>),
bid = bid array(<price>, <lot volume>),
last = last array(<price>, <lot volume>),
volume = volume array(<today>, <last 24 hours>),
vwap = volume weighted average price array(<today>, <last 24 hours>),
trades = number of trades array(<today>, <last 24 hours>),
low = low array(<today>, <last 24 hours>),
high = high array(<today>, <last 24 hours>),
open = today's opening price
Get order book
URL:
https://api.beta.kraken.com/0/public/DepthInput:
pair = asset pair to get market depth for
Result: array of pair name and market depth
<pair-name> = pair name (ISO-4217-A3-X names)
asks = ask side array of array entries(<price>, <volume>, <timestamp>)
bids = bid side array of array entries(<price>, <volume>, <timestamp>)
Get recent trades
URL:
https://api.beta.kraken.com/0/public/TradesInput:
pair = asset pair to get trade data for
since = return trade data since given id (exclusive)
Result: array of pair name and recent trade data
<pair-name> = pair name (ISO-4217-A3-X names)
array of array entries(<price>, <volume>, <time>, <buy/sell>, <market/limit>, <miscellaneous>)
last = id to be used as since when polling for new trade data
Get recent spread data
URL:
https://api.beta.kraken.com/0/public/SpreadInput:
pair = asset pair to get spread data for
since = return spread data since given id (inclusive)
Result: array of pair name and recent spread data
<pair-name> = pair name (ISO-4217-A3-X names)
array of array entries(<time>, <ask>, <bid>)
last = id to be used as since when polling for new spread data
Note: "since" is inclusive so any returned data with the same time as the previous set should overwrite all of the previous set's entries at that time