github.com/vmpartner/bitmex@v1.1.0/swagger/trade_api.go (about) 1 /* 2 * BitMEX API 3 * 4 * ## REST API for the BitMEX Trading Platform [View Changelog](/app/apiChangelog) #### Getting Started ##### Fetching Data All REST endpoints are documented below. You can try out any query right from this interface. Most table queries accept `count`, `start`, and `reverse` params. Set `reverse=true` to get rows newest-first. Additional documentation regarding filters, timestamps, and authentication is available in [the main API documentation](https://www.bitmex.com/app/restAPI). *All* table data is available via the [Websocket](/app/wsAPI). We highly recommend using the socket if you want to have the quickest possible data without being subject to ratelimits. ##### Return Types By default, all data is returned as JSON. Send `?_format=csv` to get CSV data or `?_format=xml` to get XML data. ##### Trade Data Queries *This is only a small subset of what is available, to get you started.* Fill in the parameters and click the `Try it out!` button to try any of these queries. * [Pricing Data](#!/Quote/Quote_get) * [Trade Data](#!/Trade/Trade_get) * [OrderBook Data](#!/OrderBook/OrderBook_getL2) * [Settlement Data](#!/Settlement/Settlement_get) * [Exchange Statistics](#!/Stats/Stats_history) Every function of the BitMEX.com platform is exposed here and documented. Many more functions are available. ##### Swagger Specification [⇩ Download Swagger JSON](swagger.json) ## All API Endpoints Click to expand a section. 5 * 6 * OpenAPI spec version: 1.2.0 7 * Contact: support@bitmex.com 8 * Generated by: https://github.com/swagger-api/swagger-codegen.git 9 */ 10 11 package swagger 12 13 import ( 14 "net/url" 15 "net/http" 16 "strings" 17 "golang.org/x/net/context" 18 "time" 19 "encoding/json" 20 ) 21 22 // Linger please 23 var ( 24 _ context.Context 25 ) 26 27 type TradeApiService service 28 29 /* TradeApiService Get Trades. 30 Please note that indices (symbols starting with `.`) post trades at intervals to the trade feed. These have a `size` of 0 and are used only to indicate a changing price. See [the FIX Spec](http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_AE_6569.html) for explanations of these fields. 31 32 @param optional (nil or map[string]interface{}) with one or more of: 33 @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series. You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`. 34 @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details. 35 @param "columns" (string) Array of column names to fetch. If omitted, will return all columns. Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect. 36 @param "count" (float32) Number of results to fetch. 37 @param "start" (float32) Starting point for results. 38 @param "reverse" (bool) If true, will sort results newest first. 39 @param "startTime" (time.Time) Starting date filter for results. 40 @param "endTime" (time.Time) Ending date filter for results. 41 @return []Trade*/ 42 func (a *TradeApiService) TradeGet(localVarOptionals map[string]interface{}) ([]Trade, *http.Response, error) { 43 var ( 44 localVarHttpMethod = strings.ToUpper("Get") 45 localVarPostBody interface{} 46 localVarFileName string 47 localVarFileBytes []byte 48 successPayload []Trade 49 ) 50 51 // create path and map variables 52 localVarPath := a.client.cfg.BasePath + "/trade" 53 54 localVarHeaderParams := make(map[string]string) 55 localVarQueryParams := url.Values{} 56 localVarFormParams := url.Values{} 57 58 if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil { 59 return successPayload, nil, err 60 } 61 if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil { 62 return successPayload, nil, err 63 } 64 if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil { 65 return successPayload, nil, err 66 } 67 if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil { 68 return successPayload, nil, err 69 } 70 if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil { 71 return successPayload, nil, err 72 } 73 if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil { 74 return successPayload, nil, err 75 } 76 if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil { 77 return successPayload, nil, err 78 } 79 if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil { 80 return successPayload, nil, err 81 } 82 83 if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk { 84 localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, "")) 85 } 86 if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk { 87 localVarQueryParams.Add("filter", parameterToString(localVarTempParam, "")) 88 } 89 if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk { 90 localVarQueryParams.Add("columns", parameterToString(localVarTempParam, "")) 91 } 92 if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk { 93 localVarQueryParams.Add("count", parameterToString(localVarTempParam, "")) 94 } 95 if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk { 96 localVarQueryParams.Add("start", parameterToString(localVarTempParam, "")) 97 } 98 if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk { 99 localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, "")) 100 } 101 if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk { 102 localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, "")) 103 } 104 if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk { 105 localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, "")) 106 } 107 // to determine the Content-Type header 108 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 109 110 // set Content-Type header 111 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 112 if localVarHttpContentType != "" { 113 localVarHeaderParams["Content-Type"] = localVarHttpContentType 114 } 115 116 // to determine the Accept header 117 localVarHttpHeaderAccepts := []string{ 118 "application/json", 119 "application/xml", 120 "text/xml", 121 "application/javascript", 122 "text/javascript", 123 } 124 125 // set Accept header 126 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 127 if localVarHttpHeaderAccept != "" { 128 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 129 } 130 r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 131 if err != nil { 132 return successPayload, nil, err 133 } 134 135 localVarHttpResponse, err := a.client.callAPI(r) 136 if err != nil || localVarHttpResponse == nil { 137 return successPayload, localVarHttpResponse, err 138 } 139 defer localVarHttpResponse.Body.Close() 140 if localVarHttpResponse.StatusCode >= 300 { 141 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 142 } 143 144 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 145 return successPayload, localVarHttpResponse, err 146 } 147 148 return successPayload, localVarHttpResponse, err 149 } 150 151 /* TradeApiService Get previous trades in time buckets. 152 153 @param optional (nil or map[string]interface{}) with one or more of: 154 @param "binSize" (string) Time interval to bucket by. Available options: [1m,5m,1h,1d]. 155 @param "partial" (bool) If true, will send in-progress (incomplete) bins for the current time period. 156 @param "symbol" (string) Instrument symbol. Send a bare series (e.g. XBU) to get data for the nearest expiring contract in that series. You can also send a timeframe, e.g. `XBU:monthly`. Timeframes are `daily`, `weekly`, `monthly`, `quarterly`, and `biquarterly`. 157 @param "filter" (string) Generic table filter. Send JSON key/value pairs, such as `{\"key\": \"value\"}`. You can key on individual fields, and do more advanced querying on timestamps. See the [Timestamp Docs](https://www.bitmex.com/app/restAPI#timestamp-filters) for more details. 158 @param "columns" (string) Array of column names to fetch. If omitted, will return all columns. Note that this method will always return item keys, even when not specified, so you may receive more columns that you expect. 159 @param "count" (float32) Number of results to fetch. 160 @param "start" (float32) Starting point for results. 161 @param "reverse" (bool) If true, will sort results newest first. 162 @param "startTime" (time.Time) Starting date filter for results. 163 @param "endTime" (time.Time) Ending date filter for results. 164 @return []TradeBin*/ 165 func (a *TradeApiService) TradeGetBucketed(localVarOptionals map[string]interface{}) ([]TradeBin, *http.Response, error) { 166 var ( 167 localVarHttpMethod = strings.ToUpper("Get") 168 localVarPostBody interface{} 169 localVarFileName string 170 localVarFileBytes []byte 171 successPayload []TradeBin 172 ) 173 174 // create path and map variables 175 localVarPath := a.client.cfg.BasePath + "/trade/bucketed" 176 177 localVarHeaderParams := make(map[string]string) 178 localVarQueryParams := url.Values{} 179 localVarFormParams := url.Values{} 180 181 if err := typeCheckParameter(localVarOptionals["binSize"], "string", "binSize"); err != nil { 182 return successPayload, nil, err 183 } 184 if err := typeCheckParameter(localVarOptionals["partial"], "bool", "partial"); err != nil { 185 return successPayload, nil, err 186 } 187 if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil { 188 return successPayload, nil, err 189 } 190 if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil { 191 return successPayload, nil, err 192 } 193 if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil { 194 return successPayload, nil, err 195 } 196 if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil { 197 return successPayload, nil, err 198 } 199 if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil { 200 return successPayload, nil, err 201 } 202 if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil { 203 return successPayload, nil, err 204 } 205 if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil { 206 return successPayload, nil, err 207 } 208 if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil { 209 return successPayload, nil, err 210 } 211 212 if localVarTempParam, localVarOk := localVarOptionals["binSize"].(string); localVarOk { 213 localVarQueryParams.Add("binSize", parameterToString(localVarTempParam, "")) 214 } 215 if localVarTempParam, localVarOk := localVarOptionals["partial"].(bool); localVarOk { 216 localVarQueryParams.Add("partial", parameterToString(localVarTempParam, "")) 217 } 218 if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk { 219 localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, "")) 220 } 221 if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk { 222 localVarQueryParams.Add("filter", parameterToString(localVarTempParam, "")) 223 } 224 if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk { 225 localVarQueryParams.Add("columns", parameterToString(localVarTempParam, "")) 226 } 227 if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk { 228 localVarQueryParams.Add("count", parameterToString(localVarTempParam, "")) 229 } 230 if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk { 231 localVarQueryParams.Add("start", parameterToString(localVarTempParam, "")) 232 } 233 if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk { 234 localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, "")) 235 } 236 if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk { 237 localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, "")) 238 } 239 if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk { 240 localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, "")) 241 } 242 // to determine the Content-Type header 243 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 244 245 // set Content-Type header 246 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 247 if localVarHttpContentType != "" { 248 localVarHeaderParams["Content-Type"] = localVarHttpContentType 249 } 250 251 // to determine the Accept header 252 localVarHttpHeaderAccepts := []string{ 253 "application/json", 254 "application/xml", 255 "text/xml", 256 "application/javascript", 257 "text/javascript", 258 } 259 260 // set Accept header 261 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 262 if localVarHttpHeaderAccept != "" { 263 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 264 } 265 r, err := a.client.prepareRequest(nil, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 266 if err != nil { 267 return successPayload, nil, err 268 } 269 270 localVarHttpResponse, err := a.client.callAPI(r) 271 if err != nil || localVarHttpResponse == nil { 272 return successPayload, localVarHttpResponse, err 273 } 274 defer localVarHttpResponse.Body.Close() 275 if localVarHttpResponse.StatusCode >= 300 { 276 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 277 } 278 279 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 280 return successPayload, localVarHttpResponse, err 281 } 282 283 return successPayload, localVarHttpResponse, err 284 }