snaptrade-typescript-sdk 8.27.1 → 8.27.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 -147
  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 +198 -198
  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 +66 -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 +67 -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 +118 -118
  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,147 +1,152 @@
1
- # snaptrade-typescript-sdk@8.27.1
2
-
3
- Connect brokerage accounts to your app for live positions and trading
4
- ## Installing
5
-
6
- ### npm
7
- ```
8
- npm install snaptrade-typescript-sdk --save
9
- ```
10
-
11
- ### yarn
12
- ```
13
- yarn add snaptrade-typescript-sdk
14
- ```
15
-
16
- **Important note: this library can be used in both the client-side or server-side, but using it
17
- in client-side browser code is not recommended as you would expose security credentials.**
18
-
19
-
20
-
21
- ## Getting Started
22
-
23
- ```typescript
24
- const { Snaptrade } = require("snaptrade-typescript-sdk");
25
-
26
- async function main() {
27
- // 1) Initialize a client with your clientID and consumerKey.
28
- const snaptrade = new Snaptrade({
29
- consumerKey: process.env.SNAPTRADE_CONSUMER_KEY,
30
- clientId: process.env.SNAPTRADE_CLIENT_ID,
31
- });
32
-
33
- // 2) Check that the client is able to make a request to the API server.
34
- const status = await snaptrade.apiStatus.check();
35
- console.log("status:", status.data);
36
-
37
- // 3) Create a new user on SnapTrade
38
- const userId = uuid();
39
- const { userSecret } = (
40
- await snaptrade.authentication.registerSnapTradeUser({
41
- userId,
42
- })
43
- ).data;
44
-
45
- // Note: A user secret is only generated once. It's required to access
46
- // resources for certain endpoints.
47
- console.log("userSecret:", userSecret);
48
-
49
- // 4) Get a redirect URI. Users will need this to connect
50
- const data = (
51
- await snaptrade.authentication.loginSnapTradeUser({ userId, userSecret })
52
- ).data;
53
- if (!("redirectURI" in data)) throw Error("Should have gotten redirect URI");
54
- console.log("redirectURI:", data.redirectURI);
55
-
56
- // 5) Obtaining account holdings data
57
- const holdings = (
58
- await snaptrade.accountInformation.getAllUserHoldings({
59
- userId,
60
- userSecret,
61
- })
62
- ).data;
63
- console.log("holdings:", holdings);
64
-
65
- // 6) Deleting a user
66
- const deleteResponse = (
67
- await snaptrade.authentication.deleteSnapTradeUser({ userId })
68
- ).data;
69
- console.log("deleteResponse:", deleteResponse);
70
- }
71
-
72
- // Should be replaced with function to get user ID
73
- function getUserId() {
74
- var d = new Date().getTime(); //Timestamp
75
- var d2 =
76
- (typeof performance !== "undefined" &&
77
- performance.now &&
78
- performance.now() * 1000) ||
79
- 0; //Time in microseconds since page-load or 0 if unsupported
80
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
81
- var r = Math.random() * 16; //random number between 0 and 16
82
- if (d > 0) {
83
- //Use timestamp until depleted
84
- r = (d + r) % 16 | 0;
85
- d = Math.floor(d / 16);
86
- } else {
87
- //Use microseconds since page-load if supported
88
- r = (d2 + r) % 16 | 0;
89
- d2 = Math.floor(d2 / 16);
90
- }
91
- return (c === "x" ? r : (r & 0x3) | 0x8).toString(16);
92
- });
93
- }
94
-
95
- main();
96
- ```
97
-
98
- ## Documentation for API Endpoints
99
-
100
- All URIs are relative to *https://api.snaptrade.com/api/v1*
101
-
102
- Tag | Method | HTTP request | Description
103
- ------------ | ------------- | ------------- | -------------
104
- *Account Information* | [**getAllUserHoldings**](docs/AccountInformationApi.md#getAllUserHoldings) | **GET** /holdings | List all accounts for the user, plus balances, positions, and orders for each account.
105
- *Account Information* | [**getUserAccountBalance**](docs/AccountInformationApi.md#getUserAccountBalance) | **GET** /accounts/{accountId}/balances | List account balances
106
- *Account Information* | [**getUserAccountDetails**](docs/AccountInformationApi.md#getUserAccountDetails) | **GET** /accounts/{accountId} | Return details of a specific investment account
107
- *Account Information* | [**getUserAccountOrders**](docs/AccountInformationApi.md#getUserAccountOrders) | **GET** /accounts/{accountId}/orders | Get all history of orders placed in account
108
- *Account Information* | [**getUserAccountPositions**](docs/AccountInformationApi.md#getUserAccountPositions) | **GET** /accounts/{accountId}/positions | List account positions
109
- *Account Information* | [**getUserHoldings**](docs/AccountInformationApi.md#getUserHoldings) | **GET** /accounts/{accountId}/holdings | List balances, positions and orders for the specified account.
110
- *Account Information* | [**listUserAccounts**](docs/AccountInformationApi.md#listUserAccounts) | **GET** /accounts | List accounts
111
- *Account Information* | [**updateUserAccount**](docs/AccountInformationApi.md#updateUserAccount) | **PUT** /accounts/{accountId} | Update details of an investment account
112
- *API Status* | [**check**](docs/ApiStatusApi.md#check) | **GET** / | Get API Status
113
- *Authentication* | [**deleteSnapTradeUser**](docs/AuthenticationApi.md#deleteSnapTradeUser) | **DELETE** /snapTrade/deleteUser | Delete SnapTrade user
114
- *Authentication* | [**getUserJWT**](docs/AuthenticationApi.md#getUserJWT) | **GET** /snapTrade/encryptedJWT | Generate encrypted JWT token
115
- *Authentication* | [**listSnapTradeUsers**](docs/AuthenticationApi.md#listSnapTradeUsers) | **GET** /snapTrade/listUsers | List SnapTrade users
116
- *Authentication* | [**loginSnapTradeUser**](docs/AuthenticationApi.md#loginSnapTradeUser) | **POST** /snapTrade/login | Login user & generate connection link
117
- *Authentication* | [**registerSnapTradeUser**](docs/AuthenticationApi.md#registerSnapTradeUser) | **POST** /snapTrade/registerUser | Create SnapTrade user
118
- *Connections* | [**detailBrokerageAuthorization**](docs/ConnectionsApi.md#detailBrokerageAuthorization) | **GET** /authorizations/{authorizationId} | Get brokerage authorization details
119
- *Connections* | [**listBrokerageAuthorizations**](docs/ConnectionsApi.md#listBrokerageAuthorizations) | **GET** /authorizations | List all brokerage authorizations for the user
120
- *Connections* | [**removeBrokerageAuthorization**](docs/ConnectionsApi.md#removeBrokerageAuthorization) | **DELETE** /authorizations/{authorizationId} | Delete brokerage authorization
121
- *Connections* | [**sessionEvents**](docs/ConnectionsApi.md#sessionEvents) | **GET** /sessionEvents | List all session events for the partner
122
- *Error Logs* | [**listUserErrors**](docs/ErrorLogsApi.md#listUserErrors) | **GET** /snapTrade/listUserErrors | Retrieve error logs on behalf of your SnapTrade users
123
- *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
124
- *Options* | [**getOptionsChain**](docs/OptionsApi.md#getOptionsChain) | **GET** /accounts/{accountId}/optionsChain | Get the options chain
125
- *Options* | [**getOptionsStrategyQuote**](docs/OptionsApi.md#getOptionsStrategyQuote) | **GET** /accounts/{accountId}/optionStrategy/{optionStrategyId} | Get latest market data of option strategy
126
- *Options* | [**listOptionHoldings**](docs/OptionsApi.md#listOptionHoldings) | **GET** /accounts/{accountId}/options | Get the options holdings in the account
127
- *Options* | [**placeOptionStrategy**](docs/OptionsApi.md#placeOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy/{optionStrategyId}/execute | Place an option strategy order on the brokerage
128
- *Reference Data* | [**getCurrencyExchangeRatePair**](docs/ReferenceDataApi.md#getCurrencyExchangeRatePair) | **GET** /currencies/rates/{currencyPair} | Return the exchange rate of a currency pair
129
- *Reference Data* | [**getPartnerInfo**](docs/ReferenceDataApi.md#getPartnerInfo) | **GET** /snapTrade/partners | Get metadata related to Snaptrade partner
130
- *Reference Data* | [**getSecurityTypes**](docs/ReferenceDataApi.md#getSecurityTypes) | **GET** /securityTypes | List of all security types.
131
- *Reference Data* | [**getStockExchanges**](docs/ReferenceDataApi.md#getStockExchanges) | **GET** /exchanges | List exchanges
132
- *Reference Data* | [**getSymbols**](docs/ReferenceDataApi.md#getSymbols) | **POST** /symbols | Search for symbols
133
- *Reference Data* | [**getSymbolsByTicker**](docs/ReferenceDataApi.md#getSymbolsByTicker) | **GET** /symbols/{ticker} | Get details of a symbol by the ticker
134
- *Reference Data* | [**listAllBrokerageAuthorizationType**](docs/ReferenceDataApi.md#listAllBrokerageAuthorizationType) | **GET** /brokerageAuthorizationTypes | List of all brokerage authorization types
135
- *Reference Data* | [**listAllBrokerages**](docs/ReferenceDataApi.md#listAllBrokerages) | **GET** /brokerages | List brokerages
136
- *Reference Data* | [**listAllCurrencies**](docs/ReferenceDataApi.md#listAllCurrencies) | **GET** /currencies | List currencies
137
- *Reference Data* | [**listAllCurrenciesRates**](docs/ReferenceDataApi.md#listAllCurrenciesRates) | **GET** /currencies/rates | List currency exchange rates
138
- *Reference Data* | [**symbolSearchUserAccount**](docs/ReferenceDataApi.md#symbolSearchUserAccount) | **POST** /accounts/{accountId}/symbols | Search for symbols available in an account
139
- *Trading* | [**cancelUserAccountOrder**](docs/TradingApi.md#cancelUserAccountOrder) | **POST** /accounts/{accountId}/orders/cancel | Cancel open order in account
140
- *Trading* | [**getOrderImpact**](docs/TradingApi.md#getOrderImpact) | **POST** /trade/impact | Check impact of trades on account.
141
- *Trading* | [**getUserAccountQuotes**](docs/TradingApi.md#getUserAccountQuotes) | **GET** /accounts/{accountId}/quotes | Get symbol quotes
142
- *Trading* | [**placeForceOrder**](docs/TradingApi.md#placeForceOrder) | **POST** /trade/place | Place a trade with NO validation.
143
- *Trading* | [**placeOCOOrder**](docs/TradingApi.md#placeOCOOrder) | **POST** /trade/oco | Place a OCO (One Cancels Other) order
144
- *Trading* | [**placeOrder**](docs/TradingApi.md#placeOrder) | **POST** /trade/{tradeId} | Place order
145
- *Transactions And Reporting* | [**getActivities**](docs/TransactionsAndReportingApi.md#getActivities) | **GET** /activities | Get transaction history for a user
146
- *Transactions And Reporting* | [**getReportingCustomRange**](docs/TransactionsAndReportingApi.md#getReportingCustomRange) | **GET** /performance/custom | Get performance information for a specific timeframe
147
-
1
+ # snaptrade-typescript-sdk
2
+
3
+ [![npm](https://img.shields.io/badge/npm-v8.27.2-blue)](https://www.npmjs.com/package/snaptrade-typescript-sdk/v/8.27.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)