krakenex documentation

Interface classes

General-use interface provided by krakenex.

Internally, classes are in separate modules, but they are also exported to the top-level namespace, so the following uses are possible:

# recommended, unlikely to result in namespace collisions
import krakenex
k = krakenex.API()
c = krakenex.Connection()

# OK for simple scripts
from krakenex import *
k = API()
c = Connection()

# can be explicit in both cases
k = krakenex.api.API()
c = krakenex.connection.Connection()
class krakenex.API(key='', secret='', conn=None)[source]

Bases: object

Maps a key/secret pair to a connection.

Specifying either is optional.

Note

If a connection is not set, a new one will be opened on first query. If a connection is set, during creation or as a result of a previous query, it will be reused for subsequent queries. However, its state is not checked.

Note

No timeout handling or query rate limiting is performed.

Note

If a private query is performed without setting a key/secret pair, the effects are undefined.

__init__(key='', secret='', conn=None)[source]

Create an object with authentication information.

Parameters:
  • key (str) – key required to make queries to the API
  • secret (str) – private key used to sign API messages
  • conn (krakenex.Connection) – existing connection object to use
Returns:

None

__module__ = 'krakenex.api'
_query(urlpath, req={}, conn=None, headers={})[source]

Low-level query handling.

Preferrably use query_private() or query_public() instead.

Parameters:
  • urlpath (str) – API URL path sans host
  • req (dict) – additional API request parameters
  • conn (krakenex.Connection) – existing connection object to use
  • headers (dict) – HTTPS headers
Returns:

json.loads()-deserialised Python object

load_key(path)[source]

Load key and secret from file.

Expected file format is key and secret on separate lines.

Parameters:path (str) – path to keyfile
Returns:None
query_private(method, req={}, conn=None)[source]

API queries that require a valid key/secret pair.

Parameters:
  • method (str) – API method name
  • req (dict) – additional API request parameters
  • conn (krakenex.Connection) – existing connection object to use
Returns:

json.loads()-deserialised Python object

query_public(method, req={}, conn=None)[source]

API queries that do not require a valid key/secret pair.

Parameters:
  • method (str) – API method name
  • req (dict) – additional API request parameters
  • conn (krakenex.Connection) – existing connection object to use
Returns:

json.loads()-deserialised Python object

set_connection(conn)[source]

Set an existing connection to be used as a default in queries.

Note

May become deprecated in future versions.

Parameters:conn (krakenex.Connection) – existing connection object to use
Returns:None
class krakenex.Connection(uri='api.kraken.com', timeout=30)[source]

Bases: object

Object representing a single connection.

Opens a reusable HTTPS connection. Allows specifying HTTPS timeout, or server URI (for testing purposes).

__init__(uri='api.kraken.com', timeout=30)[source]

Create an object for reusable connections.

Parameters:
  • uri (str) – URI to connect to
  • timeout (int) – blocking operations’ timeout (in seconds)
Returns:

None

__module__ = 'krakenex.connection'
_request(url, req={}, headers={})[source]

Send POST request to API server using this connection.

Parameters:
  • url (str) – fully-qualified URL with all necessary urlencoded information
  • req (dict) – additional API request parameters
  • headers (dict) – additional HTTPS headers, such as API-Key and API-Sign
Returns:

http.client-decoded response

close()[source]

Close this connection.

Returns:None