HTTP API

HTTP(s) API providing historical market data feeds in minute by minute slices

As this is relatively low level API you may alternatively try official clients libs built on top of it, which provide more convenient way of consuming historical market data (including in normalized format). In case of any troubles or questions, please feel free to contact us.

get
/data-feeds/:exchange

https://tardis.dev/api/v1/data-feeds/:exchange
Provides historical cryptocurrency market data feed in minute by minute slices in new line delimited JSON format (NDJSON) with addition of local timestamp at the beginning of each line - in ISO 8601 format. Each response is being GZIP compressed and contains one minute of historical market data. Parallel request to this endpoint are supported and can speed up overall fetch process substantially, but please don't use more than 60 parallel requests or so as it doesn't bring any speed benefits, but on contrary it may be slower.
Request
Response
Path Parameters
exchange
required
string
requested exchange, use /exchanges API for most up to date exchanges list (use exchange.id as value for this param)
Headers
Authorization
optional
string
For authenticated requests provide Authorization header with value: 'Bearer <YOUR_API_KEY>'
Query Parameters
from
required
string
requested UTC start date of historical market data feed (e.g.: 2019-04-05 or 2019-04-05T01:02:00.000Z)
offset
optional
number
minute offset that together with from date specifies exact minute slice of historical data that will be returned (e.g.: from date: 2019-04-05 with offset: 2 will provide historical data between 2019-04-05T00:02:00.000Z and 2010-04-05T00:03:00.000Z)
filters
optional
string
URL encoded JSON string with {channel:string, symbols?: string[]} [] form with optional historical market data filters - (e.g: [{"channel":"trade"}]) , use https://tardis.dev/api/v1/exchanges/:exchange HTTP endpoint to get list of allowed channels and symbols for each exchange
200: OK
Example response snippet, each line contains local timestamp (ISO 8601) plus JSON message as provided by live exchange WebSocket stream
2019-04-01T00:00:34.8345516Z {"table":"trade","action":"insert","data":[{"timestamp":"2019-04-01T00:00:34.815Z","symbol":"ETHUSD","side":"Sell","size":7000,"price":141.2,"tickDirection":"ZeroMinusTick","trdMatchID":"baa369de-cb3b-b18f-685e-0ffdec00358c","grossValue":98840000,"homeNotional":28.654468050268125,"foreignNotional":4046.010888697859}]}
2019-04-01T00:00:34.8346465Z {"table":"orderBookL2","action":"update","data":[{"symbol":"ETHUSD","id":29699997176,"side":"Buy","size":65350}]}
2019-04-01T00:00:34.8395743Z {"table":"orderBookL2","action":"update","data":[{"symbol":"BCHM19","id":32999999571,"side":"Sell","size":333},{"symbol":"BCHM19","id":32999999572,"side":"Sell","size":576},{"symbol":"BCHM19","id":32999999573,"side":"Sell","size":353}]}
2019-04-01T00:00:34.8567501Z {"table":"trade","action":"insert","data":[{"timestamp":"2019-04-01T00:00:34.830Z","symbol":"XBTUSD","side":"Buy","size":182,"price":4089,"tickDirection":"ZeroPlusTick","trdMatchID":"fa93bd9b-e1b6-d38d-f4d4-65337a766e34","grossValue":4450992,"homeNotional":0.04450992,"foreignNotional":182}]}
2019-04-01T00:00:34.8567741Z {"table":"orderBookL2","action":"update","data":[{"symbol":"XBTUSD","id":8799591100,"side":"Sell","size":351568}]}
2019-04-01T00:00:34.8567783Z {"table":"orderBookL2","action":"update","data":[{"symbol":"ETHUSD","id":29699997176,"side":"Buy","size":55349}]}
2019-04-01T00:00:34.8567812Z {"table":"orderBookL2","action":"update","data":[{"symbol":"ETHUSD","id":29699997167,"side":"Sell","size":430305}]}
2019-04-01T00:00:34.8567847Z {"table":"orderBookL2","action":"insert","data":[{"symbol":"EOSM19","id":33199989652,"side":"Buy","size":216,"price":0.0010348}]}
2019-04-01T00:00:34.8605618Z {"table":"orderBookL2","action":"update","data":[{"symbol":"XBTUSD","id":8799591850,"side":"Buy","size":154511}]}
2019-04-01T00:00:34.8605944Z {"table":"orderBookL2","action":"update","data":[{"symbol":"TRXM19","id":33299999258,"side":"Sell","size":1493}]}
2019-04-01T00:00:34.8617223Z {"table":"orderBookL2","action":"update","data":[{"symbol":"ADAM19","id":33099998260,"side":"Buy","size":224039}]}Requests examples

See historical data details page to get detailed information about historical market data available for each exchange.

Sample requests:

Get full BitMEX data feed from 2019-04-01T00:02:00.000Z to 2019-04-01T00:03:00.000Z

Get BitMEX trades for all instruments from 2019-05-01T00:00:00.000Z to 2019-05-01T00:01:00.000Z

Get full Bitfinex data feed from 2019-06-01T00:10:00.000Z to 2019-06-01T00:11:00.000Z

get
/exchanges

https://tardis.dev/api/v1/exchanges
Gets the exchanges list of supported exchanges.
Request
Response
200: OK
Response contains JSON array of supported exchanges with basic details for each
[
{
"id": "bitmex",
"name": "BitMEX",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 5,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "binance",
"name": "Binance (high and mid caps)",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 7,
"singleSymbolPrice": 0.4,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "binance-futures",
"name": "Binance Futures",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 0.4,
"singleSymbolPrice": 0.4,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-09-14T00:00:00.000Z"
},
{
"id": "deribit",
"name": "Deribit",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 8,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "bitfinex",
"name": "Bitfinex (high caps only)",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 6,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": false,
"availableSince": "2019-05-23T00:00:00.000Z"
},
{
"id": "bitfinex-derivatives",
"name": "Bitfinex Derivatives",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 1,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": false,
"availableSince": "2019-09-14T00:00:00.000Z"
},
{
"id": "bitflyer",
"name": "bitFlyer",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 3,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-08-30T00:00:00.000Z"
},
{
"id": "bitstamp",
"name": "Bitstamp",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 5,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "coinbase",
"name": "Coinbase Pro",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 12,
"singleSymbolPrice": 1,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "cryptofacilities",
"name": "Crypto Facilities",
"enabled": false,
"priceInfo": {
"fullAccessPrice": 5,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "gemini",
"name": "Gemini",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 4,
"singleSymbolPrice": 0.4,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-08-30T00:00:00.000Z"
},
{
"id": "ftx",
"name": "FTX",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 6,
"singleSymbolPrice": 0.4,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-08-01T00:00:00.000Z"
},
{
"id": "kraken",
"name": "Kraken",
"enabled": false,
"priceInfo": {
"fullAccessPrice": 5,
"singleSymbolPrice": 0.5,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-06-04T00:00:00.000Z"
},
{
"id": "okex",
"name": "OKEx (spot high and mid caps, all swap &futures)",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 8,
"singleSymbolPrice": 0.5,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "binance-dex",
"name": "Binance DEX",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 4,
"singleSymbolPrice": 0.4,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-06-04T00:00:00.000Z"
},
{
"id": "binance-jersey",
"name": "Binance Jersey",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 2,
"singleSymbolPrice": 0.25,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-04-10T00:00:00.000Z"
},
{
"id": "binance-us",
"name": "Binance.US",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 4,
"singleSymbolPrice": 0.4,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-09-25T00:00:00.000Z"
}
]

Sample request:

Gets the exchanges list supported by tardis.dev

get
/exchanges/:exchange

https://tardis.dev/api/v1/exchanges/:exchange
Gets exchanges details: available symbols, availability dates, available channels, pricing info etc.
Request
Response
Path Parameters
exchange
required
string
requested exchange, use /exchanges API for most up to date exchanges list (use exchange.id as value for this param)
200: OK
Response contains JSON object with exchange details - available symbols, available channels, pricing info etc.
{
"id": "bitmex",
"name": "BitMEX",
"enabled": true,
"priceInfo": {
"fullAccessPrice": 5,
"singleSymbolPrice": 0.6,
"stepDurationInDays": 30,
"stepMultiplier": 0.1,
"maxMultiplier": 5
},
"filterable": true,
"availableSince": "2019-03-30T00:00:00.000Z",
"availableSymbols": [
{
"id": "XBTUSD",
"type": "perpetual",
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "XBT7D_U105",
"type": "option",
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "XBT7D_D95",
"type": "option",
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "ETHUSD",
"type": "perpetual",
"availableSince": "2019-03-30T00:00:00.000Z"
},
{
"id": "XBTM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "XBTU19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "ETHM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "LTCM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "XRPM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "BCHM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "ADAM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "EOSM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "TRXM19",
"type": "future",
"availableSince": "2019-03-30T00:00:00.000Z",
"availableTo": "2019-06-29T00:00:00.000Z"
},
{
"id": "XBTZ19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "ETHU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "LTCU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "XRPU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "BCHU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "ADAU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "EOSU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "TRXU19",
"type": "future",
"availableSince": "2019-06-14T00:00:00.000Z",
"availableTo": "2019-09-28T00:00:00.000Z"
},
{
"id": "XBTH20",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2020-03-28T00:00:00.000Z"
},
{
"id": "ETHZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "LTCZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "XRPZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "BCHZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "ADAZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "EOSZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
},
{
"id": "TRXZ19",
"type": "future",
"availableSince": "2019-09-13T00:00:00.000Z",
"availableTo": "2019-12-28T00:00:00.000Z"
}
],
"availableChannels": [
"trade",
"orderBookL2",
"liquidation",
"connected",
"announcement",
"chat",
"publicNotifications",
"instrument",
"settlement",
"funding",
"insurance",
"orderBookL2_25",
"quote",
"quoteBin1m",
"quoteBin5m",
"quoteBin1h",
"quoteBin1d",
"tradeBin1m",
"tradeBin5m",
"tradeBin1h",
"tradeBin1d"
],
"incidentReports": [
{
"from": "2019-08-03T08:39:00.000Z",
"to": "2019-08-03T08:52:00.000Z",
"status": "resolved",
"details": "Intermittent Kubernetes Node network issue caused missing for about 12 minutes. There has been more monitoring and fallbacks put in place to eliminate similar occurences."
}
]
}

Sample request:

get
/api-key-info

https://tardis.dev/api/v1/api-key-info
Given API KEY provided in request header provides information about what historical data (exchanges, date ranges, symbols) is available for given API KEY.
Request
Response
Headers
Authorization
required
string
API KEY in format 'Bearer <YOUR_API_KEY>'
200: OK