snaptrade-typescript-sdk 8.28.1 → 8.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +152 -152
  2. package/dist/api/account-information-api-generated.d.ts +529 -529
  3. package/dist/api/account-information-api-generated.js +769 -769
  4. package/dist/api/account-information-api.d.ts +4 -4
  5. package/dist/api/account-information-api.js +22 -22
  6. package/dist/api/api-status-api-generated.d.ts +69 -69
  7. package/dist/api/api-status-api-generated.js +131 -131
  8. package/dist/api/api-status-api.d.ts +4 -4
  9. package/dist/api/api-status-api.js +22 -22
  10. package/dist/api/authentication-api-generated.d.ts +266 -266
  11. package/dist/api/authentication-api-generated.js +461 -461
  12. package/dist/api/authentication-api.d.ts +4 -4
  13. package/dist/api/authentication-api.js +22 -22
  14. package/dist/api/connections-api-generated.d.ts +274 -274
  15. package/dist/api/connections-api-generated.js +411 -411
  16. package/dist/api/connections-api.d.ts +4 -4
  17. package/dist/api/connections-api.js +22 -22
  18. package/dist/api/error-logs-api-generated.d.ts +93 -93
  19. package/dist/api/error-logs-api-generated.js +152 -152
  20. package/dist/api/error-logs-api.d.ts +4 -4
  21. package/dist/api/error-logs-api.js +22 -22
  22. package/dist/api/options-api-generated.d.ts +368 -368
  23. package/dist/api/options-api-generated.js +530 -530
  24. package/dist/api/options-api.d.ts +4 -4
  25. package/dist/api/options-api.js +22 -22
  26. package/dist/api/reference-data-api-generated.d.ts +467 -467
  27. package/dist/api/reference-data-api-generated.js +872 -872
  28. package/dist/api/reference-data-api.d.ts +4 -4
  29. package/dist/api/reference-data-api.js +22 -22
  30. package/dist/api/trading-api-generated.d.ts +402 -402
  31. package/dist/api/trading-api-generated.js +613 -613
  32. package/dist/api/trading-api.d.ts +4 -4
  33. package/dist/api/trading-api.js +22 -22
  34. package/dist/api/transactions-and-reporting-api-generated.d.ts +217 -217
  35. package/dist/api/transactions-and-reporting-api-generated.js +287 -287
  36. package/dist/api/transactions-and-reporting-api.d.ts +4 -4
  37. package/dist/api/transactions-and-reporting-api.js +22 -22
  38. package/dist/api.d.ts +19 -19
  39. package/dist/api.js +37 -37
  40. package/dist/base.d.ts +54 -54
  41. package/dist/base.js +60 -60
  42. package/dist/browser.js +1 -1
  43. package/dist/client-custom.d.ts +4 -4
  44. package/dist/client-custom.js +7 -7
  45. package/dist/client.d.ts +25 -25
  46. package/dist/client.js +32 -32
  47. package/dist/common.d.ts +71 -71
  48. package/dist/common.js +207 -207
  49. package/dist/configuration.d.ts +99 -99
  50. package/dist/configuration.js +53 -53
  51. package/dist/error.d.ts +56 -56
  52. package/dist/error.js +104 -104
  53. package/dist/index.d.ts +15 -15
  54. package/dist/index.js +33 -33
  55. package/dist/jest.config.d.ts +3 -3
  56. package/dist/jest.config.js +13 -13
  57. package/dist/mock.test.d.ts +1 -1
  58. package/dist/mock.test.js +29 -29
  59. package/dist/models/account-holdings-account.d.ts +53 -53
  60. package/dist/models/account-holdings-account.js +14 -14
  61. package/dist/models/account-holdings.d.ts +46 -46
  62. package/dist/models/account-holdings.js +14 -14
  63. package/dist/models/account-order-record-status.d.ts +16 -16
  64. package/dist/models/account-order-record-status.js +14 -14
  65. package/dist/models/account-order-record.d.ts +132 -132
  66. package/dist/models/account-order-record.js +14 -14
  67. package/dist/models/account-simple.d.ts +43 -43
  68. package/dist/models/account-simple.js +14 -14
  69. package/dist/models/account-sync-status.d.ts +24 -24
  70. package/dist/models/account-sync-status.js +14 -14
  71. package/dist/models/account.d.ts +82 -82
  72. package/dist/models/account.js +14 -14
  73. package/dist/models/action.d.ts +16 -16
  74. package/dist/models/action.js +14 -14
  75. package/dist/models/authentication-login-snap-trade-user200-response.d.ts +17 -17
  76. package/dist/models/authentication-login-snap-trade-user200-response.js +14 -14
  77. package/dist/models/balance.d.ts +31 -31
  78. package/dist/models/balance.js +14 -14
  79. package/dist/models/brokerage-authorization-type-read-only-brokerage.d.ts +36 -36
  80. package/dist/models/brokerage-authorization-type-read-only-brokerage.js +14 -14
  81. package/dist/models/brokerage-authorization-type-read-only.d.ts +46 -46
  82. package/dist/models/brokerage-authorization-type-read-only.js +14 -14
  83. package/dist/models/brokerage-authorization-type.d.ts +26 -26
  84. package/dist/models/brokerage-authorization-type.js +14 -14
  85. package/dist/models/brokerage-authorization.d.ts +75 -75
  86. package/dist/models/brokerage-authorization.js +14 -14
  87. package/dist/models/brokerage-symbol-option-symbol.d.ts +74 -66
  88. package/dist/models/brokerage-symbol-option-symbol.js +14 -14
  89. package/dist/models/brokerage-symbol-symbol.d.ts +68 -68
  90. package/dist/models/brokerage-symbol-symbol.js +14 -14
  91. package/dist/models/brokerage-symbol.d.ts +57 -57
  92. package/dist/models/brokerage-symbol.js +14 -14
  93. package/dist/models/brokerage-type.d.ts +30 -30
  94. package/dist/models/brokerage-type.js +14 -14
  95. package/dist/models/brokerage.d.ts +127 -127
  96. package/dist/models/brokerage.js +14 -14
  97. package/dist/models/calculated-trade.d.ts +31 -31
  98. package/dist/models/calculated-trade.js +14 -14
  99. package/dist/models/cash-restriction.d.ts +50 -50
  100. package/dist/models/cash-restriction.js +14 -14
  101. package/dist/models/connections-session-events200-response-inner.d.ts +16 -16
  102. package/dist/models/connections-session-events200-response-inner.js +14 -14
  103. package/dist/models/currency.d.ts +36 -36
  104. package/dist/models/currency.js +14 -14
  105. package/dist/models/delete-user-response.d.ts +30 -30
  106. package/dist/models/delete-user-response.js +14 -14
  107. package/dist/models/dividend-at-date.d.ts +36 -36
  108. package/dist/models/dividend-at-date.js +14 -14
  109. package/dist/models/encrypted-response-encrypted-message-data.d.ts +36 -36
  110. package/dist/models/encrypted-response-encrypted-message-data.js +14 -14
  111. package/dist/models/encrypted-response.d.ts +30 -30
  112. package/dist/models/encrypted-response.js +14 -14
  113. package/dist/models/exchange-rate-pairs.d.ts +37 -37
  114. package/dist/models/exchange-rate-pairs.js +14 -14
  115. package/dist/models/exchange.d.ts +66 -66
  116. package/dist/models/exchange.js +14 -14
  117. package/dist/models/excluded-asset.d.ts +25 -25
  118. package/dist/models/excluded-asset.js +14 -14
  119. package/dist/models/index.d.ts +111 -111
  120. package/dist/models/index.js +127 -127
  121. package/dist/models/jwt.d.ts +24 -24
  122. package/dist/models/jwt.js +14 -14
  123. package/dist/models/login-redirect-uri.d.ts +29 -29
  124. package/dist/models/login-redirect-uri.js +14 -14
  125. package/dist/models/manual-trade-and-impact.d.ts +38 -38
  126. package/dist/models/manual-trade-and-impact.js +14 -14
  127. package/dist/models/manual-trade-balance.d.ts +38 -38
  128. package/dist/models/manual-trade-balance.js +14 -14
  129. package/dist/models/manual-trade-form.d.ts +68 -68
  130. package/dist/models/manual-trade-form.js +14 -14
  131. package/dist/models/manual-trade-symbol.d.ts +55 -55
  132. package/dist/models/manual-trade-symbol.js +14 -14
  133. package/dist/models/manual-trade.d.ts +70 -70
  134. package/dist/models/manual-trade.js +14 -14
  135. package/dist/models/model-asset-class-details.d.ts +32 -32
  136. package/dist/models/model-asset-class-details.js +14 -14
  137. package/dist/models/model-asset-class-target.d.ts +25 -25
  138. package/dist/models/model-asset-class-target.js +14 -14
  139. package/dist/models/model-asset-class.d.ts +30 -30
  140. package/dist/models/model-asset-class.js +14 -14
  141. package/dist/models/model-portfolio-asset-class.d.ts +31 -31
  142. package/dist/models/model-portfolio-asset-class.js +14 -14
  143. package/dist/models/model-portfolio-details.d.ts +39 -39
  144. package/dist/models/model-portfolio-details.js +14 -14
  145. package/dist/models/model-portfolio-security.d.ts +31 -31
  146. package/dist/models/model-portfolio-security.js +14 -14
  147. package/dist/models/model-portfolio.d.ts +38 -38
  148. package/dist/models/model-portfolio.js +14 -14
  149. package/dist/models/model400-failed-request-response.d.ts +30 -30
  150. package/dist/models/model400-failed-request-response.js +14 -14
  151. package/dist/models/model401-failed-request-response.d.ts +30 -30
  152. package/dist/models/model401-failed-request-response.js +14 -14
  153. package/dist/models/model403-failed-request-response.d.ts +30 -30
  154. package/dist/models/model403-failed-request-response.js +14 -14
  155. package/dist/models/model404-failed-request-response.d.ts +30 -30
  156. package/dist/models/model404-failed-request-response.js +14 -14
  157. package/dist/models/monthly-dividends.d.ts +31 -31
  158. package/dist/models/monthly-dividends.js +14 -14
  159. package/dist/models/net-contributions.d.ts +36 -36
  160. package/dist/models/net-contributions.js +14 -14
  161. package/dist/models/net-dividend.d.ts +37 -37
  162. package/dist/models/net-dividend.js +14 -14
  163. package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.d.ts +36 -36
  164. package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.js +14 -14
  165. package/dist/models/option-chain-inner-chain-per-root-inner.d.ts +37 -37
  166. package/dist/models/option-chain-inner-chain-per-root-inner.js +14 -14
  167. package/dist/models/option-chain-inner.d.ts +49 -49
  168. package/dist/models/option-chain-inner.js +14 -14
  169. package/dist/models/option-leg.d.ts +38 -38
  170. package/dist/models/option-leg.js +14 -14
  171. package/dist/models/option-strategy-legs-inner.d.ts +41 -41
  172. package/dist/models/option-strategy-legs-inner.js +14 -14
  173. package/dist/models/option-strategy.d.ts +50 -50
  174. package/dist/models/option-strategy.js +14 -14
  175. package/dist/models/options-get-option-strategy-request.d.ts +38 -38
  176. package/dist/models/options-get-option-strategy-request.js +14 -14
  177. package/dist/models/options-holdings.d.ts +56 -56
  178. package/dist/models/options-holdings.js +14 -14
  179. package/dist/models/options-place-option-strategy-request.d.ts +38 -38
  180. package/dist/models/options-place-option-strategy-request.js +14 -14
  181. package/dist/models/options-position-currency.d.ts +35 -35
  182. package/dist/models/options-position-currency.js +14 -14
  183. package/dist/models/options-position.d.ts +62 -62
  184. package/dist/models/options-position.js +14 -14
  185. package/dist/models/options-symbol.d.ts +75 -67
  186. package/dist/models/options-symbol.js +14 -14
  187. package/dist/models/order-type.d.ts +16 -16
  188. package/dist/models/order-type.js +14 -14
  189. package/dist/models/partner-data.d.ts +91 -91
  190. package/dist/models/partner-data.js +14 -14
  191. package/dist/models/past-value.d.ts +36 -36
  192. package/dist/models/past-value.js +14 -14
  193. package/dist/models/performance-custom.d.ts +137 -137
  194. package/dist/models/performance-custom.js +14 -14
  195. package/dist/models/portfolio-group-info.d.ts +92 -92
  196. package/dist/models/portfolio-group-info.js +14 -14
  197. package/dist/models/portfolio-group-position.d.ts +37 -37
  198. package/dist/models/portfolio-group-position.js +14 -14
  199. package/dist/models/portfolio-group-settings.d.ts +49 -49
  200. package/dist/models/portfolio-group-settings.js +14 -14
  201. package/dist/models/portfolio-group.d.ts +30 -30
  202. package/dist/models/portfolio-group.js +14 -14
  203. package/dist/models/position-symbol.d.ts +55 -55
  204. package/dist/models/position-symbol.js +14 -14
  205. package/dist/models/position.d.ts +55 -55
  206. package/dist/models/position.js +14 -14
  207. package/dist/models/redirect-tokenand-pin.d.ts +30 -30
  208. package/dist/models/redirect-tokenand-pin.js +14 -14
  209. package/dist/models/security-type.d.ts +42 -42
  210. package/dist/models/security-type.js +14 -14
  211. package/dist/models/session-event.d.ts +62 -62
  212. package/dist/models/session-event.js +14 -14
  213. package/dist/models/snap-trade-apidisclaimer-accept-status.d.ts +30 -30
  214. package/dist/models/snap-trade-apidisclaimer-accept-status.js +14 -14
  215. package/dist/models/snap-trade-holdings-account-account-id.d.ts +75 -75
  216. package/dist/models/snap-trade-holdings-account-account-id.js +14 -14
  217. package/dist/models/snap-trade-holdings-account.d.ts +70 -70
  218. package/dist/models/snap-trade-holdings-account.js +14 -14
  219. package/dist/models/snap-trade-holdings-total-value.d.ts +30 -30
  220. package/dist/models/snap-trade-holdings-total-value.js +14 -14
  221. package/dist/models/snap-trade-login-user-request-body.d.ts +49 -49
  222. package/dist/models/snap-trade-login-user-request-body.js +14 -14
  223. package/dist/models/snap-trade-register-user-request-body.d.ts +29 -29
  224. package/dist/models/snap-trade-register-user-request-body.js +14 -14
  225. package/dist/models/status.d.ts +36 -36
  226. package/dist/models/status.js +14 -14
  227. package/dist/models/strategy-impact-legs-inner.d.ts +60 -60
  228. package/dist/models/strategy-impact-legs-inner.js +14 -14
  229. package/dist/models/strategy-impact.d.ts +85 -85
  230. package/dist/models/strategy-impact.js +14 -14
  231. package/dist/models/strategy-order-place-orders-inner-legs-inner.d.ts +60 -60
  232. package/dist/models/strategy-order-place-orders-inner-legs-inner.js +14 -14
  233. package/dist/models/strategy-order-place-orders-inner.d.ts +277 -277
  234. package/dist/models/strategy-order-place-orders-inner.js +14 -14
  235. package/dist/models/strategy-order-place.d.ts +31 -31
  236. package/dist/models/strategy-order-place.js +14 -14
  237. package/dist/models/strategy-order-record.d.ts +89 -89
  238. package/dist/models/strategy-order-record.js +14 -14
  239. package/dist/models/strategy-quotes-greek.d.ts +48 -48
  240. package/dist/models/strategy-quotes-greek.js +14 -14
  241. package/dist/models/strategy-quotes.d.ts +56 -56
  242. package/dist/models/strategy-quotes.js +14 -14
  243. package/dist/models/sub-period-return-rate.d.ts +36 -36
  244. package/dist/models/sub-period-return-rate.js +14 -14
  245. package/dist/models/symbol-query.d.ts +23 -23
  246. package/dist/models/symbol-query.js +14 -14
  247. package/dist/models/symbol.d.ts +63 -63
  248. package/dist/models/symbol.js +14 -14
  249. package/dist/models/symbols-quotes-inner.d.ts +54 -54
  250. package/dist/models/symbols-quotes-inner.js +14 -14
  251. package/dist/models/target-asset.d.ts +57 -57
  252. package/dist/models/target-asset.js +14 -14
  253. package/dist/models/time-in-force.d.ts +16 -16
  254. package/dist/models/time-in-force.js +14 -14
  255. package/dist/models/trade-execution-status.d.ts +80 -80
  256. package/dist/models/trade-execution-status.js +14 -14
  257. package/dist/models/trade-impact.d.ts +50 -50
  258. package/dist/models/trade-impact.js +14 -14
  259. package/dist/models/trade.d.ts +71 -71
  260. package/dist/models/trade.js +14 -14
  261. package/dist/models/trading-cancel-user-account-order-request.d.ts +23 -23
  262. package/dist/models/trading-cancel-user-account-order-request.js +14 -14
  263. package/dist/models/trading-place-ocoorder-request.d.ts +29 -29
  264. package/dist/models/trading-place-ocoorder-request.js +14 -14
  265. package/dist/models/transactions-status.d.ts +29 -29
  266. package/dist/models/transactions-status.js +14 -14
  267. package/dist/models/underlying-symbol.d.ts +63 -63
  268. package/dist/models/underlying-symbol.js +14 -14
  269. package/dist/models/universal-activity.d.ts +124 -124
  270. package/dist/models/universal-activity.js +14 -14
  271. package/dist/models/universal-symbol-ticker.d.ts +69 -69
  272. package/dist/models/universal-symbol-ticker.js +14 -14
  273. package/dist/models/universal-symbol.d.ts +69 -69
  274. package/dist/models/universal-symbol.js +14 -14
  275. package/dist/models/user-error-log.d.ts +54 -54
  276. package/dist/models/user-error-log.js +14 -14
  277. package/dist/models/user-idand-secret.d.ts +30 -30
  278. package/dist/models/user-idand-secret.js +14 -14
  279. package/dist/models/user-settings.d.ts +79 -79
  280. package/dist/models/user-settings.js +14 -14
  281. package/dist/models/usexchange.d.ts +72 -72
  282. package/dist/models/usexchange.js +14 -14
  283. package/dist/pagination/page-types.d.ts +26 -26
  284. package/dist/pagination/page-types.js +12 -12
  285. package/dist/pagination/page.d.ts +35 -35
  286. package/dist/pagination/page.js +32 -32
  287. package/dist/pagination/pageable.d.ts +57 -57
  288. package/dist/pagination/pageable.js +70 -70
  289. package/dist/pagination/paginate.d.ts +16 -16
  290. package/dist/pagination/paginate.js +39 -39
  291. package/dist/requestAfterHook.d.ts +8 -8
  292. package/dist/requestAfterHook.js +82 -82
  293. package/dist/requestBeforeHook.d.ts +9 -9
  294. package/dist/requestBeforeHook.js +8 -8
  295. package/dist/requestBeforeUrlHook.d.ts +7 -7
  296. package/dist/requestBeforeUrlHook.js +5 -5
  297. package/package.json +45 -45
package/README.md CHANGED
@@ -1,152 +1,152 @@
1
- # snaptrade-typescript-sdk
2
-
3
- [![npm](https://img.shields.io/badge/npm-v8.28.1-blue)](https://www.npmjs.com/package/snaptrade-typescript-sdk/v/8.28.1)
4
- [![More Info](https://img.shields.io/badge/More%20Info-Click%20Here-orange)](https://snaptrade.com/)
5
-
6
- Connect brokerage accounts to your app for live positions and trading
7
- ## Installing
8
-
9
- ### npm
10
- ```
11
- npm install snaptrade-typescript-sdk --save
12
- ```
13
-
14
- ### yarn
15
- ```
16
- yarn add snaptrade-typescript-sdk
17
- ```
18
-
19
- **Important note: this library can be used in both the client-side or server-side, but using it
20
- in client-side browser code is not recommended as you would expose security credentials.**
21
-
22
-
23
-
24
- ## Getting Started
25
-
26
- ```typescript
27
- const { Snaptrade } = require("snaptrade-typescript-sdk");
28
-
29
- async function main() {
30
- // 1) Initialize a client with your clientID and consumerKey.
31
- const snaptrade = new Snaptrade({
32
- consumerKey: process.env.SNAPTRADE_CONSUMER_KEY,
33
- clientId: process.env.SNAPTRADE_CLIENT_ID,
34
- });
35
-
36
- // 2) Check that the client is able to make a request to the API server.
37
- const status = await snaptrade.apiStatus.check();
38
- console.log("status:", status.data);
39
-
40
- // 3) Create a new user on SnapTrade
41
- const userId = uuid();
42
- const { userSecret } = (
43
- await snaptrade.authentication.registerSnapTradeUser({
44
- userId,
45
- })
46
- ).data;
47
-
48
- // Note: A user secret is only generated once. It's required to access
49
- // resources for certain endpoints.
50
- console.log("userSecret:", userSecret);
51
-
52
- // 4) Get a redirect URI. Users will need this to connect
53
- const data = (
54
- await snaptrade.authentication.loginSnapTradeUser({ userId, userSecret })
55
- ).data;
56
- if (!("redirectURI" in data)) throw Error("Should have gotten redirect URI");
57
- console.log("redirectURI:", data.redirectURI);
58
-
59
- // 5) Obtaining account holdings data
60
- const holdings = (
61
- await snaptrade.accountInformation.getAllUserHoldings({
62
- userId,
63
- userSecret,
64
- })
65
- ).data;
66
- console.log("holdings:", holdings);
67
-
68
- // 6) Deleting a user
69
- const deleteResponse = (
70
- await snaptrade.authentication.deleteSnapTradeUser({ userId })
71
- ).data;
72
- console.log("deleteResponse:", deleteResponse);
73
- }
74
-
75
- // Should be replaced with function to get user ID
76
- function getUserId() {
77
- var d = new Date().getTime(); //Timestamp
78
- var d2 =
79
- (typeof performance !== "undefined" &&
80
- performance.now &&
81
- performance.now() * 1000) ||
82
- 0; //Time in microseconds since page-load or 0 if unsupported
83
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
84
- var r = Math.random() * 16; //random number between 0 and 16
85
- if (d > 0) {
86
- //Use timestamp until depleted
87
- r = (d + r) % 16 | 0;
88
- d = Math.floor(d / 16);
89
- } else {
90
- //Use microseconds since page-load if supported
91
- r = (d2 + r) % 16 | 0;
92
- d2 = Math.floor(d2 / 16);
93
- }
94
- return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
95
- });
96
- }
97
-
98
- main();
99
- ```
100
-
101
- ## Documentation for API Endpoints
102
-
103
- All URIs are relative to *https://api.snaptrade.com/api/v1*
104
-
105
- Tag | Method | HTTP request | Description
106
- ------------ | ------------- | ------------- | -------------
107
- *Account Information* | [**getAllUserHoldings**](docs/AccountInformationApi.md#getAllUserHoldings) | **GET** /holdings | List all accounts for the user, plus balances, positions, and orders for each account.
108
- *Account Information* | [**getUserAccountBalance**](docs/AccountInformationApi.md#getUserAccountBalance) | **GET** /accounts/{accountId}/balances | List account balances
109
- *Account Information* | [**getUserAccountDetails**](docs/AccountInformationApi.md#getUserAccountDetails) | **GET** /accounts/{accountId} | Return details of a specific investment account
110
- *Account Information* | [**getUserAccountOrders**](docs/AccountInformationApi.md#getUserAccountOrders) | **GET** /accounts/{accountId}/orders | Get history of orders placed in account
111
- *Account Information* | [**getUserAccountPositions**](docs/AccountInformationApi.md#getUserAccountPositions) | **GET** /accounts/{accountId}/positions | List account positions
112
- *Account Information* | [**getUserHoldings**](docs/AccountInformationApi.md#getUserHoldings) | **GET** /accounts/{accountId}/holdings | List balances, positions and orders for the specified account.
113
- *Account Information* | [**listUserAccounts**](docs/AccountInformationApi.md#listUserAccounts) | **GET** /accounts | List accounts
114
- *Account Information* | [**updateUserAccount**](docs/AccountInformationApi.md#updateUserAccount) | **PUT** /accounts/{accountId} | Update details of an investment account
115
- *API Status* | [**check**](docs/ApiStatusApi.md#check) | **GET** / | Get API Status
116
- *Authentication* | [**deleteSnapTradeUser**](docs/AuthenticationApi.md#deleteSnapTradeUser) | **DELETE** /snapTrade/deleteUser | Delete SnapTrade user
117
- *Authentication* | [**getUserJWT**](docs/AuthenticationApi.md#getUserJWT) | **GET** /snapTrade/encryptedJWT | Generate encrypted JWT token
118
- *Authentication* | [**listSnapTradeUsers**](docs/AuthenticationApi.md#listSnapTradeUsers) | **GET** /snapTrade/listUsers | List SnapTrade users
119
- *Authentication* | [**loginSnapTradeUser**](docs/AuthenticationApi.md#loginSnapTradeUser) | **POST** /snapTrade/login | Login user & generate connection link
120
- *Authentication* | [**registerSnapTradeUser**](docs/AuthenticationApi.md#registerSnapTradeUser) | **POST** /snapTrade/registerUser | Create SnapTrade user
121
- *Connections* | [**detailBrokerageAuthorization**](docs/ConnectionsApi.md#detailBrokerageAuthorization) | **GET** /authorizations/{authorizationId} | Get brokerage authorization details
122
- *Connections* | [**listBrokerageAuthorizations**](docs/ConnectionsApi.md#listBrokerageAuthorizations) | **GET** /authorizations | List all brokerage authorizations for the user
123
- *Connections* | [**removeBrokerageAuthorization**](docs/ConnectionsApi.md#removeBrokerageAuthorization) | **DELETE** /authorizations/{authorizationId} | Delete brokerage authorization
124
- *Connections* | [**sessionEvents**](docs/ConnectionsApi.md#sessionEvents) | **GET** /sessionEvents | List all session events for the partner
125
- *Error Logs* | [**listUserErrors**](docs/ErrorLogsApi.md#listUserErrors) | **GET** /snapTrade/listUserErrors | Retrieve error logs on behalf of your SnapTrade users
126
- *Options* | [**getOptionStrategy**](docs/OptionsApi.md#getOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy | Creates an option strategy object that will be used to place an option strategy order
127
- *Options* | [**getOptionsChain**](docs/OptionsApi.md#getOptionsChain) | **GET** /accounts/{accountId}/optionsChain | Get the options chain
128
- *Options* | [**getOptionsStrategyQuote**](docs/OptionsApi.md#getOptionsStrategyQuote) | **GET** /accounts/{accountId}/optionStrategy/{optionStrategyId} | Get latest market data of option strategy
129
- *Options* | [**listOptionHoldings**](docs/OptionsApi.md#listOptionHoldings) | **GET** /accounts/{accountId}/options | Get the options holdings in the account
130
- *Options* | [**placeOptionStrategy**](docs/OptionsApi.md#placeOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy/{optionStrategyId}/execute | Place an option strategy order on the brokerage
131
- *Reference Data* | [**getCurrencyExchangeRatePair**](docs/ReferenceDataApi.md#getCurrencyExchangeRatePair) | **GET** /currencies/rates/{currencyPair} | Return the exchange rate of a currency pair
132
- *Reference Data* | [**getPartnerInfo**](docs/ReferenceDataApi.md#getPartnerInfo) | **GET** /snapTrade/partners | Get metadata related to Snaptrade partner
133
- *Reference Data* | [**getSecurityTypes**](docs/ReferenceDataApi.md#getSecurityTypes) | **GET** /securityTypes | List of all security types.
134
- *Reference Data* | [**getStockExchanges**](docs/ReferenceDataApi.md#getStockExchanges) | **GET** /exchanges | List exchanges
135
- *Reference Data* | [**getSymbols**](docs/ReferenceDataApi.md#getSymbols) | **POST** /symbols | Search for symbols
136
- *Reference Data* | [**getSymbolsByTicker**](docs/ReferenceDataApi.md#getSymbolsByTicker) | **GET** /symbols/{ticker} | Get details of a symbol by the ticker
137
- *Reference Data* | [**listAllBrokerageAuthorizationType**](docs/ReferenceDataApi.md#listAllBrokerageAuthorizationType) | **GET** /brokerageAuthorizationTypes | List of all brokerage authorization types
138
- *Reference Data* | [**listAllBrokerages**](docs/ReferenceDataApi.md#listAllBrokerages) | **GET** /brokerages | List brokerages
139
- *Reference Data* | [**listAllCurrencies**](docs/ReferenceDataApi.md#listAllCurrencies) | **GET** /currencies | List currencies
140
- *Reference Data* | [**listAllCurrenciesRates**](docs/ReferenceDataApi.md#listAllCurrenciesRates) | **GET** /currencies/rates | List currency exchange rates
141
- *Reference Data* | [**symbolSearchUserAccount**](docs/ReferenceDataApi.md#symbolSearchUserAccount) | **POST** /accounts/{accountId}/symbols | Search for symbols available in an account
142
- *Trading* | [**cancelUserAccountOrder**](docs/TradingApi.md#cancelUserAccountOrder) | **POST** /accounts/{accountId}/orders/cancel | Cancel open order in account
143
- *Trading* | [**getOrderImpact**](docs/TradingApi.md#getOrderImpact) | **POST** /trade/impact | Check impact of trades on account.
144
- *Trading* | [**getUserAccountQuotes**](docs/TradingApi.md#getUserAccountQuotes) | **GET** /accounts/{accountId}/quotes | Get symbol quotes
145
- *Trading* | [**placeForceOrder**](docs/TradingApi.md#placeForceOrder) | **POST** /trade/place | Place a trade with NO validation.
146
- *Trading* | [**placeOCOOrder**](docs/TradingApi.md#placeOCOOrder) | **POST** /trade/oco | Place a OCO (One Cancels Other) order
147
- *Trading* | [**placeOrder**](docs/TradingApi.md#placeOrder) | **POST** /trade/{tradeId} | Place order
148
- *Transactions And Reporting* | [**getActivities**](docs/TransactionsAndReportingApi.md#getActivities) | **GET** /activities | Get transaction history for a user
149
- *Transactions And Reporting* | [**getReportingCustomRange**](docs/TransactionsAndReportingApi.md#getReportingCustomRange) | **GET** /performance/custom | Get performance information for a specific timeframe
150
-
151
- ## Author
152
- This TypeScript package is automatically generated by [Konfig](https://konfigthis.com)
1
+ # snaptrade-typescript-sdk
2
+
3
+ [![npm](https://img.shields.io/badge/npm-v8.28.2-blue)](https://www.npmjs.com/package/snaptrade-typescript-sdk/v/8.28.2)
4
+ [![More Info](https://img.shields.io/badge/More%20Info-Click%20Here-orange)](https://snaptrade.com/)
5
+
6
+ Connect brokerage accounts to your app for live positions and trading
7
+ ## Installing
8
+
9
+ ### npm
10
+ ```
11
+ npm install snaptrade-typescript-sdk --save
12
+ ```
13
+
14
+ ### yarn
15
+ ```
16
+ yarn add snaptrade-typescript-sdk
17
+ ```
18
+
19
+ **Important note: this library can be used in both the client-side or server-side, but using it
20
+ in client-side browser code is not recommended as you would expose security credentials.**
21
+
22
+
23
+
24
+ ## Getting Started
25
+
26
+ ```typescript
27
+ const { Snaptrade } = require("snaptrade-typescript-sdk");
28
+
29
+ async function main() {
30
+ // 1) Initialize a client with your clientID and consumerKey.
31
+ const snaptrade = new Snaptrade({
32
+ consumerKey: process.env.SNAPTRADE_CONSUMER_KEY,
33
+ clientId: process.env.SNAPTRADE_CLIENT_ID,
34
+ });
35
+
36
+ // 2) Check that the client is able to make a request to the API server.
37
+ const status = await snaptrade.apiStatus.check();
38
+ console.log("status:", status.data);
39
+
40
+ // 3) Create a new user on SnapTrade
41
+ const userId = uuid();
42
+ const { userSecret } = (
43
+ await snaptrade.authentication.registerSnapTradeUser({
44
+ userId,
45
+ })
46
+ ).data;
47
+
48
+ // Note: A user secret is only generated once. It's required to access
49
+ // resources for certain endpoints.
50
+ console.log("userSecret:", userSecret);
51
+
52
+ // 4) Get a redirect URI. Users will need this to connect
53
+ const data = (
54
+ await snaptrade.authentication.loginSnapTradeUser({ userId, userSecret })
55
+ ).data;
56
+ if (!("redirectURI" in data)) throw Error("Should have gotten redirect URI");
57
+ console.log("redirectURI:", data.redirectURI);
58
+
59
+ // 5) Obtaining account holdings data
60
+ const holdings = (
61
+ await snaptrade.accountInformation.getAllUserHoldings({
62
+ userId,
63
+ userSecret,
64
+ })
65
+ ).data;
66
+ console.log("holdings:", holdings);
67
+
68
+ // 6) Deleting a user
69
+ const deleteResponse = (
70
+ await snaptrade.authentication.deleteSnapTradeUser({ userId })
71
+ ).data;
72
+ console.log("deleteResponse:", deleteResponse);
73
+ }
74
+
75
+ // Should be replaced with function to get user ID
76
+ function getUserId() {
77
+ var d = new Date().getTime(); //Timestamp
78
+ var d2 =
79
+ (typeof performance !== "undefined" &&
80
+ performance.now &&
81
+ performance.now() * 1000) ||
82
+ 0; //Time in microseconds since page-load or 0 if unsupported
83
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
84
+ var r = Math.random() * 16; //random number between 0 and 16
85
+ if (d > 0) {
86
+ //Use timestamp until depleted
87
+ r = (d + r) % 16 | 0;
88
+ d = Math.floor(d / 16);
89
+ } else {
90
+ //Use microseconds since page-load if supported
91
+ r = (d2 + r) % 16 | 0;
92
+ d2 = Math.floor(d2 / 16);
93
+ }
94
+ return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
95
+ });
96
+ }
97
+
98
+ main();
99
+ ```
100
+
101
+ ## Documentation for API Endpoints
102
+
103
+ All URIs are relative to *https://api.snaptrade.com/api/v1*
104
+
105
+ Tag | Method | HTTP request | Description
106
+ ------------ | ------------- | ------------- | -------------
107
+ *Account Information* | [**getAllUserHoldings**](docs/AccountInformationApi.md#getAllUserHoldings) | **GET** /holdings | List all accounts for the user, plus balances, positions, and orders for each account.
108
+ *Account Information* | [**getUserAccountBalance**](docs/AccountInformationApi.md#getUserAccountBalance) | **GET** /accounts/{accountId}/balances | List account balances
109
+ *Account Information* | [**getUserAccountDetails**](docs/AccountInformationApi.md#getUserAccountDetails) | **GET** /accounts/{accountId} | Return details of a specific investment account
110
+ *Account Information* | [**getUserAccountOrders**](docs/AccountInformationApi.md#getUserAccountOrders) | **GET** /accounts/{accountId}/orders | Get history of orders placed in account
111
+ *Account Information* | [**getUserAccountPositions**](docs/AccountInformationApi.md#getUserAccountPositions) | **GET** /accounts/{accountId}/positions | List account positions
112
+ *Account Information* | [**getUserHoldings**](docs/AccountInformationApi.md#getUserHoldings) | **GET** /accounts/{accountId}/holdings | List balances, positions and orders for the specified account.
113
+ *Account Information* | [**listUserAccounts**](docs/AccountInformationApi.md#listUserAccounts) | **GET** /accounts | List accounts
114
+ *Account Information* | [**updateUserAccount**](docs/AccountInformationApi.md#updateUserAccount) | **PUT** /accounts/{accountId} | Update details of an investment account
115
+ *API Status* | [**check**](docs/ApiStatusApi.md#check) | **GET** / | Get API Status
116
+ *Authentication* | [**deleteSnapTradeUser**](docs/AuthenticationApi.md#deleteSnapTradeUser) | **DELETE** /snapTrade/deleteUser | Delete SnapTrade user
117
+ *Authentication* | [**getUserJWT**](docs/AuthenticationApi.md#getUserJWT) | **GET** /snapTrade/encryptedJWT | Generate encrypted JWT token
118
+ *Authentication* | [**listSnapTradeUsers**](docs/AuthenticationApi.md#listSnapTradeUsers) | **GET** /snapTrade/listUsers | List SnapTrade users
119
+ *Authentication* | [**loginSnapTradeUser**](docs/AuthenticationApi.md#loginSnapTradeUser) | **POST** /snapTrade/login | Login user & generate connection link
120
+ *Authentication* | [**registerSnapTradeUser**](docs/AuthenticationApi.md#registerSnapTradeUser) | **POST** /snapTrade/registerUser | Create SnapTrade user
121
+ *Connections* | [**detailBrokerageAuthorization**](docs/ConnectionsApi.md#detailBrokerageAuthorization) | **GET** /authorizations/{authorizationId} | Get brokerage authorization details
122
+ *Connections* | [**listBrokerageAuthorizations**](docs/ConnectionsApi.md#listBrokerageAuthorizations) | **GET** /authorizations | List all brokerage authorizations for the user
123
+ *Connections* | [**removeBrokerageAuthorization**](docs/ConnectionsApi.md#removeBrokerageAuthorization) | **DELETE** /authorizations/{authorizationId} | Delete brokerage authorization
124
+ *Connections* | [**sessionEvents**](docs/ConnectionsApi.md#sessionEvents) | **GET** /sessionEvents | List all session events for the partner
125
+ *Error Logs* | [**listUserErrors**](docs/ErrorLogsApi.md#listUserErrors) | **GET** /snapTrade/listUserErrors | Retrieve error logs on behalf of your SnapTrade users
126
+ *Options* | [**getOptionStrategy**](docs/OptionsApi.md#getOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy | Creates an option strategy object that will be used to place an option strategy order
127
+ *Options* | [**getOptionsChain**](docs/OptionsApi.md#getOptionsChain) | **GET** /accounts/{accountId}/optionsChain | Get the options chain
128
+ *Options* | [**getOptionsStrategyQuote**](docs/OptionsApi.md#getOptionsStrategyQuote) | **GET** /accounts/{accountId}/optionStrategy/{optionStrategyId} | Get latest market data of option strategy
129
+ *Options* | [**listOptionHoldings**](docs/OptionsApi.md#listOptionHoldings) | **GET** /accounts/{accountId}/options | Get the options holdings in the account
130
+ *Options* | [**placeOptionStrategy**](docs/OptionsApi.md#placeOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy/{optionStrategyId}/execute | Place an option strategy order on the brokerage
131
+ *Reference Data* | [**getCurrencyExchangeRatePair**](docs/ReferenceDataApi.md#getCurrencyExchangeRatePair) | **GET** /currencies/rates/{currencyPair} | Return the exchange rate of a currency pair
132
+ *Reference Data* | [**getPartnerInfo**](docs/ReferenceDataApi.md#getPartnerInfo) | **GET** /snapTrade/partners | Get metadata related to Snaptrade partner
133
+ *Reference Data* | [**getSecurityTypes**](docs/ReferenceDataApi.md#getSecurityTypes) | **GET** /securityTypes | List of all security types.
134
+ *Reference Data* | [**getStockExchanges**](docs/ReferenceDataApi.md#getStockExchanges) | **GET** /exchanges | List exchanges
135
+ *Reference Data* | [**getSymbols**](docs/ReferenceDataApi.md#getSymbols) | **POST** /symbols | Search for symbols
136
+ *Reference Data* | [**getSymbolsByTicker**](docs/ReferenceDataApi.md#getSymbolsByTicker) | **GET** /symbols/{ticker} | Get details of a symbol by the ticker
137
+ *Reference Data* | [**listAllBrokerageAuthorizationType**](docs/ReferenceDataApi.md#listAllBrokerageAuthorizationType) | **GET** /brokerageAuthorizationTypes | List of all brokerage authorization types
138
+ *Reference Data* | [**listAllBrokerages**](docs/ReferenceDataApi.md#listAllBrokerages) | **GET** /brokerages | List brokerages
139
+ *Reference Data* | [**listAllCurrencies**](docs/ReferenceDataApi.md#listAllCurrencies) | **GET** /currencies | List currencies
140
+ *Reference Data* | [**listAllCurrenciesRates**](docs/ReferenceDataApi.md#listAllCurrenciesRates) | **GET** /currencies/rates | List currency exchange rates
141
+ *Reference Data* | [**symbolSearchUserAccount**](docs/ReferenceDataApi.md#symbolSearchUserAccount) | **POST** /accounts/{accountId}/symbols | Search for symbols available in an account
142
+ *Trading* | [**cancelUserAccountOrder**](docs/TradingApi.md#cancelUserAccountOrder) | **POST** /accounts/{accountId}/orders/cancel | Cancel open order in account
143
+ *Trading* | [**getOrderImpact**](docs/TradingApi.md#getOrderImpact) | **POST** /trade/impact | Check impact of trades on account.
144
+ *Trading* | [**getUserAccountQuotes**](docs/TradingApi.md#getUserAccountQuotes) | **GET** /accounts/{accountId}/quotes | Get symbol quotes
145
+ *Trading* | [**placeForceOrder**](docs/TradingApi.md#placeForceOrder) | **POST** /trade/place | Place a trade with NO validation.
146
+ *Trading* | [**placeOCOOrder**](docs/TradingApi.md#placeOCOOrder) | **POST** /trade/oco | Place a OCO (One Cancels Other) order
147
+ *Trading* | [**placeOrder**](docs/TradingApi.md#placeOrder) | **POST** /trade/{tradeId} | Place order
148
+ *Transactions And Reporting* | [**getActivities**](docs/TransactionsAndReportingApi.md#getActivities) | **GET** /activities | Get transaction history for a user
149
+ *Transactions And Reporting* | [**getReportingCustomRange**](docs/TransactionsAndReportingApi.md#getReportingCustomRange) | **GET** /performance/custom | Get performance information for a specific timeframe
150
+
151
+ ## Author
152
+ This TypeScript package is automatically generated by [Konfig](https://konfigthis.com)