NAV Navigation
Shell

Kaiko Stream SDK

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

At its core, Stream enables our clients to build custom market data feeds through simple and intuitive commands with a light infrastructure cost, by leveraging gRPCS Protocol and its capabilities… This first-of-its-kind data service is designed to connect institutional investors with consolidated cryptocurrency market data feeds that match the infrastructural robustness of traditional financial data products.

Code Examples

Code examples in C#, Java, Node, Python, Go and Scala, as well as the API references for each language can be found here

Authentication

Instrument Selection

Kaiko’s instruments can be selected and filtered using globbing patterns, constructed from a set of parameters with optional wildcards. A single string can be used to select an arbitrary set of instruments.

Glob Patterns Examples

Assumption: Available Instruments for the subsequent examples:

[
{
"exchange": "krkn", "instrument_class": "spot", "instrument": "btc-usd"
},
{
"exchange": "krkn", "instrument_class": "spot", "instrument": "eth-usd"
},
{
"exchange": "cbse", "instrument_class": "spot", "instrument": "eth-btc"
},
{
"exchange": "okex", "instrument_class": "future", "instrument": "btc_usd__this_week"
}
]

btc-usd spot market for krkn exchange: krkn:spot:btc-usd

[
{
"exchange": "krkn", "instrument_class": "spot", "instrument": "btc-usd"
}
]

The general format for passing a glob pattern is as follows:

pattern = <exchange>:<instrument_class>:<instrument>

Parameter Description
exchange List1 of Exchange code. See Exchanges Reference Data Endpoint.
instrument_class List1 of Instrument class. See Instruments Reference Data Endpoint.
instrument List1 of Instrument code. See Instruments Reference Data Endpoint.

1: Lists are comma separated

Wildcard

All spot markets for krkn exchange: krkn:spot:*

[
{
"exchange": "krkn", "instrument_class": "spot", "instrument": "*"
}
]

All instruments for krkn that have btc as part of the instrument code: krkn:*:*btc*

[
{
"exchange": "krkn", "instrument_class": "*", "instrument": "*btc*"
}
]

Kaiko Instrument Globbing allows the use of the wildcard *.

It can replace any parameter of the pattern:

It can also be used inside a parameter:

Cartesian Product of Patterns

All krkn and okex instruments that have usd as part of the instrument code: krkn,okex:*:*usd*

[
{
"exchange": "krkn", "instrument_class": "spot", "instrument": "btc-usd"
},
{
"exchange": "krkn", "instrument_class": "spot", "instrument": "eth-usd"
},
{
"exchange": "okex", "instrument_class": "future", "instrument": "btc_usd__this_week"
}
]

If the params lists contain more than one element, the resulting pattern will be constructed as a cartesian product of each element of the lists, i.e:

pattern = exchange1,exchange2:instrument_class:instrument1,instrument2

will be equivalent to the union of 4 patterns:

Market Update (Trades, Order Books, Best Bids and Asks)

Code samples

# You can also use wget
curl -X POST /api/stream/trades_v1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/swagger-ui+json' \
-H 'X-Api-Key: API_KEY'

Retrieve an ongoing stream of tick-by-tick trades, tick-level order book updates and top of book data.

POST /api/stream/market_update_v1

Body parameter

{
"instrumentCriteria": {
"exchange": "string",
"instrumentClass": "string",
"code": "string"
},
"commodities": [
"SMUC_UNKNOWN"
]
}

Parameters

Name In Type Required Description
body body kaikosdkStreamMarketUpdateRequestV1 true none

Example responses

200 Response

{
"result": {
"commodity": "SMUC_UNKNOWN", ##The type of data. There are three options: SMUC_Full_Order_Book, SMUC_Top_of_Book, and SMUC_Trade
"amount": 0, ##The quantity of the base asset
"class": "string", ##The internal Kaiko classification denoting whether an instrument is a spot, future, perpetual future, or option
"code": "string", ##The currency pair, for example btc-usd
"exchange": "string", ##The exchange code, for example "cbse" (Coinbase)
"sequenceId": "string", ##The unique sequence ID created by Kaiko used to order all events. This can be used to re-build an internally maintained order book
"id": "string", ##The ID for the event provided by the exchange. Mostly used for Trade events
"price": 0, The price level at which the bid or ask is to be placed, or trade executed.
"tsExchange": {
"value": "2021-09-27T17:47:31.758Z" ##Exchange-provided timestamp of the event.
},
"tsCollection": {
"value": "2021-09-27T17:47:31.758Z" ##Timestamp at which the event entered Kaiko's infrastructure. Millisecond precision.
},
"tsEvent": "2021-09-27T17:47:31.758Z", ##The emission timestamp created by Kaiko. Millisecond precision.
"updateType": "UNKNOWN" ##The type of event. There are 6 options: TRADE_SELL, TRADE_BUY, UPDATED_BID, UPDATED_ASK, BEST_BID, BEST_ASK
},
"error": {
"code": 0,
"message": "string",
"details": [
{
"typeUrl": "string",
"value": "string"
}
]
}
}

Responses

Status Meaning Description Schema
200 OK A successful response.(streaming responses) Inline
403 Forbidden Returned when the user does not have permission to access the resource. Inline
404 Not Found Returned when the resource does not exist. string
default Default An unexpected error response. rpcStatus

Enumerated Values

Property Value
updateType UNKNOWN
updateType TRADE_BUY
updateType TRADE_SELL
updateType UPDATED_BID
updateType UPDATED_ASK
updateType BEST_BID
updateType BEST_ASK

Trades

Code samples

# You can also use wget
curl -X POST /api/stream/trades_v1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/swagger-ui+json' \
-H 'X-Api-Key: API_KEY'

Retrieve an ongoing stream of tick-by-tick trades for any selection of instruments or exchanges.

POST /api/stream/trades_v1

Body parameter

{
"instrumentCriteria": {
"exchange": "string",
"instrumentClass": "string",
"code": "string"
}
}

Parameters

Name In Type Required Description
body body kaikosdkStreamTradesRequestV1 true none

Example responses

200 Response

{
"result": {
"additionalProperties": {
"property1": "string",
"property2": "string"
},
"amount": 0, ##Quantity of asset bought or sold, displayed in base currency.
"class": "string", ##Instrument class
"code": "string", ##Instrument code
"exchange": "string", ##Exchange code
"sequenceId": "string", ##Message ID. Can be used to sort the messages lexicographically
"id": "string", ##Unique trade ID (unique to the exchange). In case the exchange does not provide an ID, we generate it ourselves
"price": 0, ##Price displayed in quote currency
"side": "UNKNOWN", ##Side of the trade
"tsExchange": {
"value": "2019-08-24T14:15:22Z" ##Timestamp of trade provided by the exchange
},
"tsCollection": {
"value": "2019-08-24T14:15:22Z" ##Timestamp of collection by Kaiko
},
"tsEvent": "2019-08-24T14:15:22Z" ##Timestamp of the emission of the trade message
},
"error": {
"code": 0,
"message": "string",
"details": [
{
"typeUrl": "string",
"value": "string"
}
]
}
}

Responses

Status Meaning Description Schema
200 OK A successful response.(streaming responses) Inline
403 Forbidden Returned when the user does not have permission to access the resource. Inline
404 Not Found Returned when the resource does not exist. string
default Default An unexpected error response. rpcStatus

Enumerated Values

Property Value
side UNKNOWN
side BUY
side SELL

OHLCV (Candles)

Code samples

# You can also use wget
curl -X POST /api/stream/aggregates_ohlcv_v1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/swagger-ui+json' \
-H 'X-Api-Key: API_KEY'

Retrieve ongoing Open-High-Low-Close-Volume candle updates. Supported intervals are 1s, 1m and 1h.

POST /api/stream/aggregates_ohlcv_v1

Body parameter

{
"instrumentCriteria": {
"exchange": "string", ##Exchange code
"instrumentClass": "string", #Instrument class
"code": "string" #Instrument code
},
"aggregate": "string" ##Interval
}

Parameters

Name In Type Required Description
body body kaikosdkStreamAggregatesOHLCVRequestV1 true none

Example responses

200 Response

{
"result": {
"aggregate": "string", ##Interval period
"class": "string", ##Class of the instruments
"close": "string", ##Closing price
"exchange": "string", ##Exchange code
"high": "string", ##High price
"low": "string", ##Low price
"open": "string", ##Open price
"sequenceId": "string", ##Message ID. Can be used to sort the messages lexicographically
"code": "string", ##Instrument code
"timestamp": "2019-08-24T14:15:22Z", ##Timestamp of the event that triggered an update
"uid": "2019-08-24T14:15:22Z", ##Timestamp truncated to the interval of the candle
"volume": "string" ##Volume during the interval
},
"error": {
"code": 0,
"message": "string",
"details": [
{
"typeUrl": "string",
"value": "string"
}
]
}
}

Responses

Status Meaning Description Schema
200 OK A successful response.(streaming responses) Inline
403 Forbidden Returned when the user does not have permission to access the resource. Inline
404 Not Found Returned when the resource does not exist. string
default Default An unexpected error response. rpcStatus

VWAP

Code samples

# You can also use wget
curl -X POST /api/stream/aggregates_vwap_v1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/swagger-ui+json' \
-H 'X-Api-Key: API_KEY'

Retrieve ongoing Volume Weighted Average Price updates. Supported intervals are 1s, 1m and 1h.

POST /api/stream/aggregates_vwap_v1

Body parameter

{
"instrumentCriteria": {
"exchange": "string", ##Exchange code
"instrumentClass": "string", #Instrument class
"code": "string" #Instrument code
},
"aggregate": "string" ##Interval
}

Parameters

Name In Type Required Description
body body kaikosdkStreamAggregatesVWAPRequestV1 true none

Example responses

200 Response

{
"result": {
"aggregate": "string", ##Interval
"class": "string", ##Instrument class
"code": "string", ##Instrument code
"exchange": "string", ##Exchange code
"sequenceId": "string", ##Message ID. Can be used to sort the messages lexicographically.
"price": 0, ##Price displayed in quote currency.
"tsEvent": "2019-08-24T14:15:22Z", ##Timestamp of the event that triggered an update
"uid": "2019-08-24T14:15:22Z" ##Timestamp truncated to the interval of the vwap
},
"error": {
"code": 0,
"message": "string",
"details": [
{
"typeUrl": "string",
"value": "string"
}
]
}
}

Responses

Status Meaning Description Schema
200 OK A successful response.(streaming responses) Inline
403 Forbidden Returned when the user does not have permission to access the resource. Inline
404 Not Found Returned when the resource does not exist. string
default Default An unexpected error response. rpcStatus

Exchange Cross Rate

Code samples

# You can also use wget
curl -X POST /api/stream/aggregates_spot_exchange_rate_v1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/swagger-ui+json' \
-H 'X-Api-Key: API_KEY'

This endpoint returns the price of any asset quoted in a Fiat currency within Open Exchange Rates. The USD price is calculated based on the path of the highest liquidity, with an additional step using forex rates to get the final fiat price. This means that, even though an asset might trade directly against all Open Exchange Rates currencies, the price might still be established by using cross-rates1. In cases where the most liquid path changed over time, this will be taken into account in the calculation of the price for each interval.

POST /api/stream/aggregates_spot_exchange_rate_v1

Body parameter

{
"code": "string", ##Instrument code
"aggregate": "string", ##Interval
"sources": true ##Returns all prices which were used to calculate aggregated price.
}

Parameters

Name In Type Required Description
body body kaikosdkStreamAggregatesSpotExchangeRateRequestV1 true none

Example responses

200 Response

{
"result": {
"aggregate": "string", ##Interval period
"code": "string", ##Instrument code
"price": "string", ##Exchange rate
"sequenceId": "string", ##Message ID. Can be used to sort the messages lexicographically.
"sources": {
"property1": { ##Instrument code of first source
"data": [
{
"exchangeCode": "string", ##Exchange code
"count": "string", Total amount of trades reported during interval
"price": "string", ##Price in quote asset
"volume": "string" ##Total volume traded in interval
}
],
"price": "string" ##Volume weighted price of all above instruments
},
"property2": { ##Instrument code of first source
"data": [
{
"exchangeCode": "string", ##Exchange code
"count": "string", Total amount of trades reported during interval
"price": "string", ##Price in quote asset
"volume": "string" ##Total volume traded in interval
}
],
"price": "string" ##Volume weighted price of all above instruments
}
},
"timestamp": "2019-08-24T14:15:22Z", ##Timestamp of the event that triggered an update
"uid": "2019-08-24T14:15:22Z" ##Timestamp truncated to the interval of the exchange rate
},
"error": {
"code": 0,
"message": "string",
"details": [
{
"typeUrl": "string",
"value": "string"
}
]
}
}

Responses

Status Meaning Description Schema
200 OK A successful response.(streaming responses) Inline
403 Forbidden Returned when the user does not have permission to access the resource. Inline
404 Not Found Returned when the resource does not exist. string
default Default An unexpected error response. rpcStatus

Schemas

StreamTradesResponseV1TradeSide

"UNKNOWN"

Side

Properties

Name Type Required Restrictions Description
Side string false none - UNKNOWN: Unknown side
- BUY: Buy side
- SELL: Sell side

Enumerated Values

Property Value
Side UNKNOWN
Side BUY
Side SELL

UnaryReferenceDataRequestV1ReferenceType

"UNKNOWN"

Reference Data types enum

Properties

Name Type Required Restrictions Description
Reference Data types enum string false none - UNKNOWN: UNKNOWN
- ASSETS: Assets reference
- EXCHANGES: Exchanges reference
- INSTRUMENTS: Instruments reference

Enumerated Values

Property Value
Reference Data types enum UNKNOWN
Reference Data types enum ASSETS
Reference Data types enum EXCHANGES
Reference Data types enum INSTRUMENTS

kaikosdkDataInterval

{
"startTime": "2019-08-24T14:15:22Z",
"endTime": "2019-08-24T14:15:22Z"
}

DataInterval

Properties

Name Type Required Restrictions Description
startTime string(date-time) false none Starting time (inclusive, ISO 8601 for REST).
endTime string(date-time) false none Ending time (exclusive, ISO 8601 for REST).

kaikosdkEnvelope

{
"access": {},
"message": "string",
"query": {},
"status": "UNKNOWN",
"time": "2019-08-24T14:15:22Z",
"timestamp": "string"
}

Enveloppe in each API response

Properties

Name Type Required Restrictions Description
access object false none none
message string false none Error message, if query was not successful.
query object false none All handled query parameters echoed back.
status kaikosdkEnvelopeStatus false none - UNKNOWN: UNKNOWN
- ERROR: Error result
- SUCCESS: Successful result
time string(date-time) false none The current time at our endpoint.
timestamp string false none The current time at our endpoint.

kaikosdkEnvelopeStatus

"UNKNOWN"

EnvelopeStatus Status code of an API call

Properties

Name Type Required Restrictions Description
EnvelopeStatus
Status code of an API call string false none - UNKNOWN: UNKNOWN
- ERROR: Error result
- SUCCESS: Successful result

Enumerated Values

Property Value
EnvelopeStatus
Status code of an API call UNKNOWN
EnvelopeStatus
Status code of an API call ERROR
EnvelopeStatus
Status code of an API call SUCCESS

kaikosdkInstrumentCriteria

{
"exchange": "string",
"instrumentClass": "string",
"code": "string"
}

InstrumentCriteria

Properties

Name Type Required Restrictions Description
exchange string false none none
instrumentClass string false none Instrument class. See https://docs.kaiko.com/?python#instruments.
code string false none Instrument code. See https://docs.kaiko.com/?python#instruments.

kaikosdkReferenceDataResponseAsset

{
"assetClass": "string",
"assetClasses": [
"string"
],
"code": "string",
"name": "string"
}

ReferenceDataResponseAsset

Properties

Name Type Required Restrictions Description
assetClass string false none none
assetClasses [string] false none none
code string false none none
name string false none none

kaikosdkReferenceDataResponseExchange

{
"code": "string",
"kaikoLegacySlug": "string",
"name": "string"
}

ReferenceDataResponseExchange

Properties

Name Type Required Restrictions Description
code string false none none
kaikoLegacySlug string false none none
name string false none none

kaikosdkReferenceDataResponseInstrument

{
"kaikoLegacyExchangeSlug": "string",
"tradeStartTime": {},
"tradeEndTime": {},
"code": "string",
"exchangeCode": "string",
"exchangePairCode": "string",
"baseAsset": "string",
"quoteAsset": "string",
"kaikoLegacySymbol": "string",
"class": "string",
"tradeStartTimestamp": {},
"tradeEndTimestamp": {},
"tradeCount": "string",
"tradeCompressedSize": "string"
}

ReferenceDataResponseInstrument google.protobuf.Value are used for nullable types that potentially return unwanted default values

Properties

Name Type Required Restrictions Description
kaikoLegacyExchangeSlug string false none none
tradeStartTime object false none none
tradeEndTime object false none none
code string false none none
exchangeCode string false none none
exchangePairCode string false none none
baseAsset string false none none
quoteAsset string false none none
kaikoLegacySymbol string false none none
class string false none none
tradeStartTimestamp object false none none
tradeEndTimestamp object false none none
tradeCount string(uint64) false none none
tradeCompressedSize string(uint64) false none none

kaikosdkReferenceDataResponseListAsset

{
"values": [
{
"assetClass": "string",
"assetClasses": [
"string"
],
"code": "string",
"name": "string"
}
]
}

ReferenceDataResponseListAsset is a list of ReferenceDataResponseAsset

Properties

Name Type Required Restrictions Description
values [kaikosdkReferenceDataResponseAsset] false none none

kaikosdkReferenceDataResponseListExchange

{
"values": [
{
"code": "string",
"kaikoLegacySlug": "string",
"name": "string"
}
]
}

ReferenceDataResponseListExchange is a list of ReferenceDataResponseExchange

Properties

Name Type Required Restrictions Description
values [kaikosdkReferenceDataResponseExchange] false none none

kaikosdkReferenceDataResponseListInstrument

{
"values": [
{
"kaikoLegacyExchangeSlug": "string",
"tradeStartTime": {},
"tradeEndTime": {},
"code": "string",
"exchangeCode": "string",
"exchangePairCode": "string",
"baseAsset": "string",
"quoteAsset": "string",
"kaikoLegacySymbol": "string",
"class": "string",
"tradeStartTimestamp": {},
"tradeEndTimestamp": {},
"tradeCount": "string",
"tradeCompressedSize": "string"
}
]
}

ReferenceDataResponseListInstrument is a list of ReferenceDataResponseInstrument

Properties

Name Type Required Restrictions Description
values [kaikosdkReferenceDataResponseInstrument] false none none

kaikosdkSortCriteria

"SORT_UNKNOWN"

SortCriteria

Properties

Name Type Required Restrictions Description
SortCriteria string false none - SORT_UNKNOWN: SORT_UNKNOWN
- ASC: ASC
- DESC: DESC

Enumerated Values

Property Value
SortCriteria SORT_UNKNOWN
SortCriteria ASC
SortCriteria DESC

kaikosdkSource

{
"data": [
{
"exchangeCode": "string",
"count": "string",
"price": "string",
"volume": "string"
}
],
"price": "string"
}

Source

Properties

Name Type Required Restrictions Description
data [kaikosdkSourceData] false none Prices for instrument code in each exchange.
price string false none VWAP value for related instrument code accross exchanges.

kaikosdkSourceData

{
"exchangeCode": "string",
"count": "string",
"price": "string",
"volume": "string"
}

SourceData

Properties

Name Type Required Restrictions Description
exchangeCode string false none none
count string(int64) false none none
price string false none none
volume string false none none

kaikosdkStreamAggregatesOHLCVRequestV1

{
"instrumentCriteria": {
"exchange": "string",
"instrumentClass": "string",
"code": "string"
},
"aggregate": "string"
}

StreamAggregatesOHLCVRequestV1

Properties

Name Type Required Restrictions Description
instrumentCriteria kaikosdkInstrumentCriteria false none none
aggregate string false none none

kaikosdkStreamAggregatesOHLCVResponseV1

{
"aggregate": "string",
"class": "string",
"close": "string",
"exchange": "string",
"high": "string",
"low": "string",
"open": "string",
"sequenceId": "string",
"code": "string",
"timestamp": "2019-08-24T14:15:22Z",
"uid": "string",
"volume": "string"
}

StreamAggregatesOHLCVResponseV1

Properties

Name Type Required Restrictions Description
aggregate string false none none
class string false none none
close string false none none
exchange string false none none
high string false none none
low string false none none
open string false none none
sequenceId string false none none
code string false none none
timestamp string(date-time) false none none
uid string false none none
volume string false none none

kaikosdkStreamAggregatesSpotExchangeRateRequestV1

{
"code": "string",
"aggregate": "string",
"sources": true
}

StreamAggregatesSpotExchangeRateRequestV1

Properties

Name Type Required Restrictions Description
code string false none none
aggregate string false none none
sources boolean false none none

kaikosdkStreamAggregatesSpotExchangeRateResponseV1

{
"aggregate": "string",
"code": "string",
"price": "string",
"sequenceId": "string",
"sources": {
"property1": {
"data": [
{
"exchangeCode": "string",
"count": "string",
"price": "string",
"volume": "string"
}
],
"price": "string"
},
"property2": {
"data": [
{
"exchangeCode": "string",
"count": "string",
"price": "string",
"volume": "string"
}
],
"price": "string"
}
},
"timestamp": "2019-08-24T14:15:22Z",
"uid": "string"
}

StreamAggregatesSpotExchangeRateResponseV1

Properties

Name Type Required Restrictions Description
aggregate string false none none
code string false none none
price string false none Aggregated price for the instrument code accross exchanges.
sequenceId string false none none
sources object false none Sources of calculus (if requested), each key is an instrument segment for the root instrument code.
» additionalProperties kaikosdkSource false none none
timestamp string(date-time) false none none
uid string false none none

kaikosdkStreamAggregatesVWAPRequestV1

{
"instrumentCriteria": {
"exchange": "string",
"instrumentClass": "string",
"code": "string"
},
"aggregate": "string"
}

StreamAggregatesVWAPRequestV1

Properties

Name Type Required Restrictions Description
instrumentCriteria kaikosdkInstrumentCriteria false none none
aggregate string false none none

kaikosdkStreamAggregatesVWAPResponseV1

{
"aggregate": "string",
"class": "string",
"code": "string",
"exchange": "string",
"sequenceId": "string",
"price": 0,
"tsEvent": "2019-08-24T14:15:22Z",
"uid": "string"
}

StreamAggregatesVWAPResponseV1

Properties

Name Type Required Restrictions Description
aggregate string false none none
class string false none none
code string false none none
exchange string false none none
sequenceId string false none none
price number(double) false none none
tsEvent string(date-time) false none none
uid string false none none

kaikosdkStreamTradesRequestV1

{
"instrumentCriteria": {
"exchange": "string",
"instrumentClass": "string",
"code": "string"
}
}

StreamTradesRequestV1

Properties

Name Type Required Restrictions Description
instrumentCriteria kaikosdkInstrumentCriteria false none none

kaikosdkStreamTradesResponseV1

{
"additionalProperties": {
"property1": "string",
"property2": "string"
},
"amount": 0,
"class": "string",
"code": "string",
"exchange": "string",
"sequenceId": "string",
"id": "string",
"price": 0,
"side": "UNKNOWN",
"tsExchange": {
"value": "2019-08-24T14:15:22Z"
},
"tsCollection": {
"value": "2019-08-24T14:15:22Z"
},
"tsEvent": "2019-08-24T14:15:22Z"
}

StreamTradesResponseV1

Properties

Name Type Required Restrictions Description
additionalProperties object false none none
» additionalProperties string false none none
amount number(double) false none none
class string false none none
code string false none none
exchange string false none none
sequenceId string false none none
id string false none none
price number(double) false none none
side StreamTradesResponseV1TradeSide false none - UNKNOWN: Unknown side
- BUY: Buy side
- SELL: Sell side
tsExchange kaikosdkTimestampValue false none none
tsCollection kaikosdkTimestampValue false none none
tsEvent string(date-time) false none none

kaikosdkTimestampValue

{
"value": "2019-08-24T14:15:22Z"
}

TimestampValue wraps optional timestamp

Properties

Name Type Required Restrictions Description
value string(date-time) false none The timestamp value.

kaikosdkUnaryReferenceDataResponseV1

{
"envelope": {
"access": {},
"message": "string",
"query": {},
"status": "UNKNOWN",
"time": "2019-08-24T14:15:22Z",
"timestamp": "string"
},
"assets": {
"values": [
{
"assetClass": "string",
"assetClasses": [
"string"
],
"code": "string",
"name": "string"
}
]
},
"exchanges": {
"values": [
{
"code": "string",
"kaikoLegacySlug": "string",
"name": "string"
}
]
},
"instruments": {
"values": [
{
"kaikoLegacyExchangeSlug": "string",
"tradeStartTime": {},
"tradeEndTime": {},
"code": "string",
"exchangeCode": "string",
"exchangePairCode": "string",
"baseAsset": "string",
"quoteAsset": "string",
"kaikoLegacySymbol": "string",
"class": "string",
"tradeStartTimestamp": {},
"tradeEndTimestamp": {},
"tradeCount": "string",
"tradeCompressedSize": "string"
}
]
}
}

UnaryReferenceDataResponseV1

Properties

Name Type Required Restrictions Description
envelope kaikosdkEnvelope false none none
assets kaikosdkReferenceDataResponseListAsset false none none
exchanges kaikosdkReferenceDataResponseListExchange false none none
instruments kaikosdkReferenceDataResponseListInstrument false none none

kaikosdkUnaryTradesHistoricalResponseItemV1

{
"timestamp": "2019-08-24T14:15:22Z",
"tradeId": "string",
"price": 0,
"amount": 0,
"takerSideSell": {}
}

UnaryTradesHistoricalResponseItemV1

Properties

Name Type Required Restrictions Description
timestamp string(date-time) false none none
tradeId string false none none
price number(double) false none none
amount number(double) false none none
takerSideSell object false none none

kaikosdkUnaryTradesHistoricalResponseV1

{
"envelope": {
"access": {},
"message": "string",
"query": {},
"status": "UNKNOWN",
"time": "2019-08-24T14:15:22Z",
"timestamp": "string"
},
"values": [
{
"timestamp": "2019-08-24T14:15:22Z",
"tradeId": "string",
"price": 0,
"amount": 0,
"takerSideSell": {}
}
]
}

UnaryTradesHistoricalResponseV1

Properties

Name Type Required Restrictions Description
envelope kaikosdkEnvelope false none none
values [kaikosdkUnaryTradesHistoricalResponseItemV1] false none none

protobufAny

{
"typeUrl": "string",
"value": "string"
}

Properties

Name Type Required Restrictions Description
typeUrl string false none none
value string(byte) false none none

protobufNullValue

"NULL_VALUE"

NullValue is a singleton enumeration to represent the null value for the Value type union.

The JSON representation for NullValue is JSON null.

Properties

Name Type Required Restrictions Description
anonymous string false none NullValue is a singleton enumeration to represent the null value for the
Value type union.

The JSON representation for NullValue is JSON null.

- NULL_VALUE: Null value.

Enumerated Values

Property Value
anonymous NULL_VALUE

rpcStatus

{
"code": 0,
"message": "string",
"details": [
{
"typeUrl": "string",
"value": "string"
}
]
}

Properties

Name Type Required Restrictions Description
code integer(int32) false none none
message string false none none
details [protobufAny] false none none