github.com/vmpartner/bitmex@v1.1.0/swagger/execution_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 ExecutionApiService service 28 29 /* ExecutionApiService Get all raw executions for your account. 30 This returns all raw transactions, which includes order opening and cancelation, and order status changes. It can be quite noisy. More focused information is available at `/execution/tradeHistory`. You may also use the `filter` param to target your query. Specify an array as a filter value, such as `{\"execType\": [\"Settlement\", \"Trade\"]}` to filter on multiple values. See [the FIX Spec](http://www.onixs.biz/fix-dictionary/5.0.SP2/msgType_8_8.html) for explanations of these fields. 31 * @param ctx context.Context Authentication Context 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 []Execution*/ 42 func (a *ExecutionApiService) ExecutionGet(ctx context.Context, localVarOptionals map[string]interface{}) ([]Execution, *http.Response, error) { 43 var ( 44 localVarHttpMethod = strings.ToUpper("Get") 45 localVarPostBody interface{} 46 localVarFileName string 47 localVarFileBytes []byte 48 successPayload []Execution 49 ) 50 51 // create path and map variables 52 localVarPath := a.client.cfg.BasePath + "/execution" 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 if ctx != nil { 131 // API Key Authentication 132 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 133 var key string 134 if auth.Prefix != "" { 135 key = auth.Prefix + " " + auth.Key 136 } else { 137 key = auth.Key 138 } 139 localVarHeaderParams["api-key"] = key 140 } 141 } 142 if ctx != nil { 143 // API Key Authentication 144 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 145 var key string 146 if auth.Prefix != "" { 147 key = auth.Prefix + " " + auth.Key 148 } else { 149 key = auth.Key 150 } 151 localVarHeaderParams["api-nonce"] = key 152 } 153 } 154 if ctx != nil { 155 // API Key Authentication 156 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 157 var key string 158 if auth.Prefix != "" { 159 key = auth.Prefix + " " + auth.Key 160 } else { 161 key = auth.Key 162 } 163 localVarHeaderParams["api-signature"] = key 164 } 165 } 166 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 167 if err != nil { 168 return successPayload, nil, err 169 } 170 171 localVarHttpResponse, err := a.client.callAPI(r) 172 if err != nil || localVarHttpResponse == nil { 173 return successPayload, localVarHttpResponse, err 174 } 175 defer localVarHttpResponse.Body.Close() 176 if localVarHttpResponse.StatusCode >= 300 { 177 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 178 } 179 180 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 181 return successPayload, localVarHttpResponse, err 182 } 183 184 return successPayload, localVarHttpResponse, err 185 } 186 187 /* ExecutionApiService Get all balance-affecting executions. This includes each trade, insurance charge, and settlement. 188 * @param ctx context.Context Authentication Context 189 @param optional (nil or map[string]interface{}) with one or more of: 190 @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`. 191 @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. 192 @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. 193 @param "count" (float32) Number of results to fetch. 194 @param "start" (float32) Starting point for results. 195 @param "reverse" (bool) If true, will sort results newest first. 196 @param "startTime" (time.Time) Starting date filter for results. 197 @param "endTime" (time.Time) Ending date filter for results. 198 @return []Execution*/ 199 func (a *ExecutionApiService) ExecutionGetTradeHistory(ctx context.Context, localVarOptionals map[string]interface{}) ([]Execution, *http.Response, error) { 200 var ( 201 localVarHttpMethod = strings.ToUpper("Get") 202 localVarPostBody interface{} 203 localVarFileName string 204 localVarFileBytes []byte 205 successPayload []Execution 206 ) 207 208 // create path and map variables 209 localVarPath := a.client.cfg.BasePath + "/execution/tradeHistory" 210 211 localVarHeaderParams := make(map[string]string) 212 localVarQueryParams := url.Values{} 213 localVarFormParams := url.Values{} 214 215 if err := typeCheckParameter(localVarOptionals["symbol"], "string", "symbol"); err != nil { 216 return successPayload, nil, err 217 } 218 if err := typeCheckParameter(localVarOptionals["filter"], "string", "filter"); err != nil { 219 return successPayload, nil, err 220 } 221 if err := typeCheckParameter(localVarOptionals["columns"], "string", "columns"); err != nil { 222 return successPayload, nil, err 223 } 224 if err := typeCheckParameter(localVarOptionals["count"], "float32", "count"); err != nil { 225 return successPayload, nil, err 226 } 227 if err := typeCheckParameter(localVarOptionals["start"], "float32", "start"); err != nil { 228 return successPayload, nil, err 229 } 230 if err := typeCheckParameter(localVarOptionals["reverse"], "bool", "reverse"); err != nil { 231 return successPayload, nil, err 232 } 233 if err := typeCheckParameter(localVarOptionals["startTime"], "time.Time", "startTime"); err != nil { 234 return successPayload, nil, err 235 } 236 if err := typeCheckParameter(localVarOptionals["endTime"], "time.Time", "endTime"); err != nil { 237 return successPayload, nil, err 238 } 239 240 if localVarTempParam, localVarOk := localVarOptionals["symbol"].(string); localVarOk { 241 localVarQueryParams.Add("symbol", parameterToString(localVarTempParam, "")) 242 } 243 if localVarTempParam, localVarOk := localVarOptionals["filter"].(string); localVarOk { 244 localVarQueryParams.Add("filter", parameterToString(localVarTempParam, "")) 245 } 246 if localVarTempParam, localVarOk := localVarOptionals["columns"].(string); localVarOk { 247 localVarQueryParams.Add("columns", parameterToString(localVarTempParam, "")) 248 } 249 if localVarTempParam, localVarOk := localVarOptionals["count"].(float32); localVarOk { 250 localVarQueryParams.Add("count", parameterToString(localVarTempParam, "")) 251 } 252 if localVarTempParam, localVarOk := localVarOptionals["start"].(float32); localVarOk { 253 localVarQueryParams.Add("start", parameterToString(localVarTempParam, "")) 254 } 255 if localVarTempParam, localVarOk := localVarOptionals["reverse"].(bool); localVarOk { 256 localVarQueryParams.Add("reverse", parameterToString(localVarTempParam, "")) 257 } 258 if localVarTempParam, localVarOk := localVarOptionals["startTime"].(time.Time); localVarOk { 259 localVarQueryParams.Add("startTime", parameterToString(localVarTempParam, "")) 260 } 261 if localVarTempParam, localVarOk := localVarOptionals["endTime"].(time.Time); localVarOk { 262 localVarQueryParams.Add("endTime", parameterToString(localVarTempParam, "")) 263 } 264 // to determine the Content-Type header 265 localVarHttpContentTypes := []string{"application/json", "application/x-www-form-urlencoded",} 266 267 // set Content-Type header 268 localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) 269 if localVarHttpContentType != "" { 270 localVarHeaderParams["Content-Type"] = localVarHttpContentType 271 } 272 273 // to determine the Accept header 274 localVarHttpHeaderAccepts := []string{ 275 "application/json", 276 "application/xml", 277 "text/xml", 278 "application/javascript", 279 "text/javascript", 280 } 281 282 // set Accept header 283 localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) 284 if localVarHttpHeaderAccept != "" { 285 localVarHeaderParams["Accept"] = localVarHttpHeaderAccept 286 } 287 if ctx != nil { 288 // API Key Authentication 289 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 290 var key string 291 if auth.Prefix != "" { 292 key = auth.Prefix + " " + auth.Key 293 } else { 294 key = auth.Key 295 } 296 localVarHeaderParams["api-key"] = key 297 } 298 } 299 if ctx != nil { 300 // API Key Authentication 301 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 302 var key string 303 if auth.Prefix != "" { 304 key = auth.Prefix + " " + auth.Key 305 } else { 306 key = auth.Key 307 } 308 localVarHeaderParams["api-nonce"] = key 309 } 310 } 311 if ctx != nil { 312 // API Key Authentication 313 if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok { 314 var key string 315 if auth.Prefix != "" { 316 key = auth.Prefix + " " + auth.Key 317 } else { 318 key = auth.Key 319 } 320 localVarHeaderParams["api-signature"] = key 321 } 322 } 323 r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) 324 if err != nil { 325 return successPayload, nil, err 326 } 327 328 localVarHttpResponse, err := a.client.callAPI(r) 329 if err != nil || localVarHttpResponse == nil { 330 return successPayload, localVarHttpResponse, err 331 } 332 defer localVarHttpResponse.Body.Close() 333 if localVarHttpResponse.StatusCode >= 300 { 334 return successPayload, localVarHttpResponse, reportError(localVarHttpResponse.Status) 335 } 336 337 if err = json.NewDecoder(localVarHttpResponse.Body).Decode(&successPayload); err != nil { 338 return successPayload, localVarHttpResponse, err 339 } 340 341 return successPayload, localVarHttpResponse, err 342 }