snaptrade-typescript-sdk 8.27.2 → 8.28.0
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.
- package/README.md +152 -152
- package/dist/api/account-information-api-generated.d.ts +529 -529
- package/dist/api/account-information-api-generated.js +769 -769
- package/dist/api/account-information-api.d.ts +4 -4
- package/dist/api/account-information-api.js +22 -22
- package/dist/api/api-status-api-generated.d.ts +69 -69
- package/dist/api/api-status-api-generated.js +131 -131
- package/dist/api/api-status-api.d.ts +4 -4
- package/dist/api/api-status-api.js +22 -22
- package/dist/api/authentication-api-generated.d.ts +266 -266
- package/dist/api/authentication-api-generated.js +461 -461
- package/dist/api/authentication-api.d.ts +4 -4
- package/dist/api/authentication-api.js +22 -22
- package/dist/api/connections-api-generated.d.ts +274 -274
- package/dist/api/connections-api-generated.js +411 -411
- package/dist/api/connections-api.d.ts +4 -4
- package/dist/api/connections-api.js +22 -22
- package/dist/api/error-logs-api-generated.d.ts +93 -93
- package/dist/api/error-logs-api-generated.js +152 -152
- package/dist/api/error-logs-api.d.ts +4 -4
- package/dist/api/error-logs-api.js +22 -22
- package/dist/api/options-api-generated.d.ts +368 -368
- package/dist/api/options-api-generated.js +530 -530
- package/dist/api/options-api.d.ts +4 -4
- package/dist/api/options-api.js +22 -22
- package/dist/api/reference-data-api-generated.d.ts +467 -467
- package/dist/api/reference-data-api-generated.js +872 -872
- package/dist/api/reference-data-api.d.ts +4 -4
- package/dist/api/reference-data-api.js +22 -22
- package/dist/api/trading-api-generated.d.ts +402 -402
- package/dist/api/trading-api-generated.js +613 -613
- package/dist/api/trading-api.d.ts +4 -4
- package/dist/api/trading-api.js +22 -22
- package/dist/api/transactions-and-reporting-api-generated.d.ts +217 -217
- package/dist/api/transactions-and-reporting-api-generated.js +287 -287
- package/dist/api/transactions-and-reporting-api.d.ts +4 -4
- package/dist/api/transactions-and-reporting-api.js +22 -22
- package/dist/api.d.ts +19 -19
- package/dist/api.js +37 -37
- package/dist/base.d.ts +54 -54
- package/dist/base.js +60 -60
- package/dist/browser.js +1 -1
- package/dist/client-custom.d.ts +4 -4
- package/dist/client-custom.js +7 -7
- package/dist/client.d.ts +25 -25
- package/dist/client.js +32 -32
- package/dist/common.d.ts +71 -71
- package/dist/common.js +207 -198
- package/dist/configuration.d.ts +99 -99
- package/dist/configuration.js +53 -53
- package/dist/error.d.ts +56 -56
- package/dist/error.js +104 -104
- package/dist/index.d.ts +15 -15
- package/dist/index.js +33 -33
- package/dist/jest.config.d.ts +3 -3
- package/dist/jest.config.js +13 -13
- package/dist/mock.test.d.ts +1 -1
- package/dist/mock.test.js +29 -29
- package/dist/models/account-holdings-account.d.ts +53 -53
- package/dist/models/account-holdings-account.js +14 -14
- package/dist/models/account-holdings.d.ts +46 -46
- package/dist/models/account-holdings.js +14 -14
- package/dist/models/account-order-record-status.d.ts +16 -16
- package/dist/models/account-order-record-status.js +14 -14
- package/dist/models/account-order-record.d.ts +132 -132
- package/dist/models/account-order-record.js +14 -14
- package/dist/models/account-simple.d.ts +43 -43
- package/dist/models/account-simple.js +14 -14
- package/dist/models/account-sync-status.d.ts +24 -24
- package/dist/models/account-sync-status.js +14 -14
- package/dist/models/account.d.ts +82 -82
- package/dist/models/account.js +14 -14
- package/dist/models/action.d.ts +16 -16
- package/dist/models/action.js +14 -14
- package/dist/models/authentication-login-snap-trade-user200-response.d.ts +17 -17
- package/dist/models/authentication-login-snap-trade-user200-response.js +14 -14
- package/dist/models/balance.d.ts +31 -31
- package/dist/models/balance.js +14 -14
- package/dist/models/brokerage-authorization-type-read-only-brokerage.d.ts +36 -36
- package/dist/models/brokerage-authorization-type-read-only-brokerage.js +14 -14
- package/dist/models/brokerage-authorization-type-read-only.d.ts +46 -46
- package/dist/models/brokerage-authorization-type-read-only.js +14 -14
- package/dist/models/brokerage-authorization-type.d.ts +26 -26
- package/dist/models/brokerage-authorization-type.js +14 -14
- package/dist/models/brokerage-authorization.d.ts +75 -75
- package/dist/models/brokerage-authorization.js +14 -14
- package/dist/models/brokerage-symbol-option-symbol.d.ts +66 -66
- package/dist/models/brokerage-symbol-option-symbol.js +14 -14
- package/dist/models/brokerage-symbol-symbol.d.ts +68 -68
- package/dist/models/brokerage-symbol-symbol.js +14 -14
- package/dist/models/brokerage-symbol.d.ts +57 -57
- package/dist/models/brokerage-symbol.js +14 -14
- package/dist/models/brokerage-type.d.ts +30 -30
- package/dist/models/brokerage-type.js +14 -14
- package/dist/models/brokerage.d.ts +127 -127
- package/dist/models/brokerage.js +14 -14
- package/dist/models/calculated-trade.d.ts +31 -31
- package/dist/models/calculated-trade.js +14 -14
- package/dist/models/cash-restriction.d.ts +50 -50
- package/dist/models/cash-restriction.js +14 -14
- package/dist/models/connections-session-events200-response-inner.d.ts +16 -16
- package/dist/models/connections-session-events200-response-inner.js +14 -14
- package/dist/models/currency.d.ts +36 -36
- package/dist/models/currency.js +14 -14
- package/dist/models/delete-user-response.d.ts +30 -30
- package/dist/models/delete-user-response.js +14 -14
- package/dist/models/dividend-at-date.d.ts +36 -36
- package/dist/models/dividend-at-date.js +14 -14
- package/dist/models/encrypted-response-encrypted-message-data.d.ts +36 -36
- package/dist/models/encrypted-response-encrypted-message-data.js +14 -14
- package/dist/models/encrypted-response.d.ts +30 -30
- package/dist/models/encrypted-response.js +14 -14
- package/dist/models/exchange-rate-pairs.d.ts +37 -37
- package/dist/models/exchange-rate-pairs.js +14 -14
- package/dist/models/exchange.d.ts +66 -66
- package/dist/models/exchange.js +14 -14
- package/dist/models/excluded-asset.d.ts +25 -25
- package/dist/models/excluded-asset.js +14 -14
- package/dist/models/index.d.ts +111 -111
- package/dist/models/index.js +127 -127
- package/dist/models/jwt.d.ts +24 -24
- package/dist/models/jwt.js +14 -14
- package/dist/models/login-redirect-uri.d.ts +29 -29
- package/dist/models/login-redirect-uri.js +14 -14
- package/dist/models/manual-trade-and-impact.d.ts +38 -38
- package/dist/models/manual-trade-and-impact.js +14 -14
- package/dist/models/manual-trade-balance.d.ts +38 -38
- package/dist/models/manual-trade-balance.js +14 -14
- package/dist/models/manual-trade-form.d.ts +68 -68
- package/dist/models/manual-trade-form.js +14 -14
- package/dist/models/manual-trade-symbol.d.ts +55 -55
- package/dist/models/manual-trade-symbol.js +14 -14
- package/dist/models/manual-trade.d.ts +70 -70
- package/dist/models/manual-trade.js +14 -14
- package/dist/models/model-asset-class-details.d.ts +32 -32
- package/dist/models/model-asset-class-details.js +14 -14
- package/dist/models/model-asset-class-target.d.ts +25 -25
- package/dist/models/model-asset-class-target.js +14 -14
- package/dist/models/model-asset-class.d.ts +30 -30
- package/dist/models/model-asset-class.js +14 -14
- package/dist/models/model-portfolio-asset-class.d.ts +31 -31
- package/dist/models/model-portfolio-asset-class.js +14 -14
- package/dist/models/model-portfolio-details.d.ts +39 -39
- package/dist/models/model-portfolio-details.js +14 -14
- package/dist/models/model-portfolio-security.d.ts +31 -31
- package/dist/models/model-portfolio-security.js +14 -14
- package/dist/models/model-portfolio.d.ts +38 -38
- package/dist/models/model-portfolio.js +14 -14
- package/dist/models/model400-failed-request-response.d.ts +30 -30
- package/dist/models/model400-failed-request-response.js +14 -14
- package/dist/models/model401-failed-request-response.d.ts +30 -30
- package/dist/models/model401-failed-request-response.js +14 -14
- package/dist/models/model403-failed-request-response.d.ts +30 -30
- package/dist/models/model403-failed-request-response.js +14 -14
- package/dist/models/model404-failed-request-response.d.ts +30 -30
- package/dist/models/model404-failed-request-response.js +14 -14
- package/dist/models/monthly-dividends.d.ts +31 -31
- package/dist/models/monthly-dividends.js +14 -14
- package/dist/models/net-contributions.d.ts +36 -36
- package/dist/models/net-contributions.js +14 -14
- package/dist/models/net-dividend.d.ts +37 -37
- package/dist/models/net-dividend.js +14 -14
- package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.d.ts +36 -36
- package/dist/models/option-chain-inner-chain-per-root-inner-chain-per-strike-price-inner.js +14 -14
- package/dist/models/option-chain-inner-chain-per-root-inner.d.ts +37 -37
- package/dist/models/option-chain-inner-chain-per-root-inner.js +14 -14
- package/dist/models/option-chain-inner.d.ts +49 -49
- package/dist/models/option-chain-inner.js +14 -14
- package/dist/models/option-leg.d.ts +38 -38
- package/dist/models/option-leg.js +14 -14
- package/dist/models/option-strategy-legs-inner.d.ts +41 -41
- package/dist/models/option-strategy-legs-inner.js +14 -14
- package/dist/models/option-strategy.d.ts +50 -50
- package/dist/models/option-strategy.js +14 -14
- package/dist/models/options-get-option-strategy-request.d.ts +38 -38
- package/dist/models/options-get-option-strategy-request.js +14 -14
- package/dist/models/options-holdings.d.ts +56 -56
- package/dist/models/options-holdings.js +14 -14
- package/dist/models/options-place-option-strategy-request.d.ts +38 -38
- package/dist/models/options-place-option-strategy-request.js +14 -14
- package/dist/models/options-position-currency.d.ts +35 -35
- package/dist/models/options-position-currency.js +14 -14
- package/dist/models/options-position.d.ts +62 -62
- package/dist/models/options-position.js +14 -14
- package/dist/models/options-symbol.d.ts +67 -67
- package/dist/models/options-symbol.js +14 -14
- package/dist/models/order-type.d.ts +16 -16
- package/dist/models/order-type.js +14 -14
- package/dist/models/partner-data.d.ts +91 -91
- package/dist/models/partner-data.js +14 -14
- package/dist/models/past-value.d.ts +36 -36
- package/dist/models/past-value.js +14 -14
- package/dist/models/performance-custom.d.ts +137 -137
- package/dist/models/performance-custom.js +14 -14
- package/dist/models/portfolio-group-info.d.ts +92 -92
- package/dist/models/portfolio-group-info.js +14 -14
- package/dist/models/portfolio-group-position.d.ts +37 -37
- package/dist/models/portfolio-group-position.js +14 -14
- package/dist/models/portfolio-group-settings.d.ts +49 -49
- package/dist/models/portfolio-group-settings.js +14 -14
- package/dist/models/portfolio-group.d.ts +30 -30
- package/dist/models/portfolio-group.js +14 -14
- package/dist/models/position-symbol.d.ts +55 -55
- package/dist/models/position-symbol.js +14 -14
- package/dist/models/position.d.ts +55 -55
- package/dist/models/position.js +14 -14
- package/dist/models/redirect-tokenand-pin.d.ts +30 -30
- package/dist/models/redirect-tokenand-pin.js +14 -14
- package/dist/models/security-type.d.ts +42 -42
- package/dist/models/security-type.js +14 -14
- package/dist/models/session-event.d.ts +62 -62
- package/dist/models/session-event.js +14 -14
- package/dist/models/snap-trade-apidisclaimer-accept-status.d.ts +30 -30
- package/dist/models/snap-trade-apidisclaimer-accept-status.js +14 -14
- package/dist/models/snap-trade-holdings-account-account-id.d.ts +75 -75
- package/dist/models/snap-trade-holdings-account-account-id.js +14 -14
- package/dist/models/snap-trade-holdings-account.d.ts +70 -70
- package/dist/models/snap-trade-holdings-account.js +14 -14
- package/dist/models/snap-trade-holdings-total-value.d.ts +30 -30
- package/dist/models/snap-trade-holdings-total-value.js +14 -14
- package/dist/models/snap-trade-login-user-request-body.d.ts +49 -49
- package/dist/models/snap-trade-login-user-request-body.js +14 -14
- package/dist/models/snap-trade-register-user-request-body.d.ts +29 -29
- package/dist/models/snap-trade-register-user-request-body.js +14 -14
- package/dist/models/status.d.ts +36 -36
- package/dist/models/status.js +14 -14
- package/dist/models/strategy-impact-legs-inner.d.ts +60 -60
- package/dist/models/strategy-impact-legs-inner.js +14 -14
- package/dist/models/strategy-impact.d.ts +85 -85
- package/dist/models/strategy-impact.js +14 -14
- package/dist/models/strategy-order-place-orders-inner-legs-inner.d.ts +60 -60
- package/dist/models/strategy-order-place-orders-inner-legs-inner.js +14 -14
- package/dist/models/strategy-order-place-orders-inner.d.ts +277 -277
- package/dist/models/strategy-order-place-orders-inner.js +14 -14
- package/dist/models/strategy-order-place.d.ts +31 -31
- package/dist/models/strategy-order-place.js +14 -14
- package/dist/models/strategy-order-record.d.ts +89 -89
- package/dist/models/strategy-order-record.js +14 -14
- package/dist/models/strategy-quotes-greek.d.ts +48 -48
- package/dist/models/strategy-quotes-greek.js +14 -14
- package/dist/models/strategy-quotes.d.ts +56 -56
- package/dist/models/strategy-quotes.js +14 -14
- package/dist/models/sub-period-return-rate.d.ts +36 -36
- package/dist/models/sub-period-return-rate.js +14 -14
- package/dist/models/symbol-query.d.ts +23 -23
- package/dist/models/symbol-query.js +14 -14
- package/dist/models/symbol.d.ts +63 -63
- package/dist/models/symbol.js +14 -14
- package/dist/models/symbols-quotes-inner.d.ts +54 -54
- package/dist/models/symbols-quotes-inner.js +14 -14
- package/dist/models/target-asset.d.ts +57 -57
- package/dist/models/target-asset.js +14 -14
- package/dist/models/time-in-force.d.ts +16 -16
- package/dist/models/time-in-force.js +14 -14
- package/dist/models/trade-execution-status.d.ts +80 -80
- package/dist/models/trade-execution-status.js +14 -14
- package/dist/models/trade-impact.d.ts +50 -50
- package/dist/models/trade-impact.js +14 -14
- package/dist/models/trade.d.ts +71 -71
- package/dist/models/trade.js +14 -14
- package/dist/models/trading-cancel-user-account-order-request.d.ts +23 -23
- package/dist/models/trading-cancel-user-account-order-request.js +14 -14
- package/dist/models/trading-place-ocoorder-request.d.ts +29 -29
- package/dist/models/trading-place-ocoorder-request.js +14 -14
- package/dist/models/transactions-status.d.ts +29 -29
- package/dist/models/transactions-status.js +14 -14
- package/dist/models/underlying-symbol.d.ts +63 -63
- package/dist/models/underlying-symbol.js +14 -14
- package/dist/models/universal-activity.d.ts +124 -118
- package/dist/models/universal-activity.js +14 -14
- package/dist/models/universal-symbol-ticker.d.ts +69 -69
- package/dist/models/universal-symbol-ticker.js +14 -14
- package/dist/models/universal-symbol.d.ts +69 -69
- package/dist/models/universal-symbol.js +14 -14
- package/dist/models/user-error-log.d.ts +54 -54
- package/dist/models/user-error-log.js +14 -14
- package/dist/models/user-idand-secret.d.ts +30 -30
- package/dist/models/user-idand-secret.js +14 -14
- package/dist/models/user-settings.d.ts +79 -79
- package/dist/models/user-settings.js +14 -14
- package/dist/models/usexchange.d.ts +72 -72
- package/dist/models/usexchange.js +14 -14
- package/dist/pagination/page-types.d.ts +26 -26
- package/dist/pagination/page-types.js +12 -12
- package/dist/pagination/page.d.ts +35 -35
- package/dist/pagination/page.js +32 -32
- package/dist/pagination/pageable.d.ts +57 -57
- package/dist/pagination/pageable.js +70 -70
- package/dist/pagination/paginate.d.ts +16 -16
- package/dist/pagination/paginate.js +39 -39
- package/dist/requestAfterHook.d.ts +8 -8
- package/dist/requestAfterHook.js +82 -82
- package/dist/requestBeforeHook.d.ts +9 -9
- package/dist/requestBeforeHook.js +8 -8
- package/dist/requestBeforeUrlHook.d.ts +7 -7
- package/dist/requestBeforeUrlHook.js +5 -5
- package/package.json +45 -45
package/README.md
CHANGED
|
@@ -1,152 +1,152 @@
|
|
|
1
|
-
# snaptrade-typescript-sdk
|
|
2
|
-
|
|
3
|
-
[](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
|
+
[](https://www.npmjs.com/package/snaptrade-typescript-sdk/v/8.28.0)
|
|
4
|
+
[](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)
|