diff --git a/generator/konfig-generator-api/src/main/resources/Java/libraries/okhttp-gson/pojo.mustache b/generator/konfig-generator-api/src/main/resources/Java/libraries/okhttp-gson/pojo.mustache
index 2d67e19977..82f5af7aa6 100644
--- a/generator/konfig-generator-api/src/main/resources/Java/libraries/okhttp-gson/pojo.mustache
+++ b/generator/konfig-generator-api/src/main/resources/Java/libraries/okhttp-gson/pojo.mustache
@@ -615,7 +615,9 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
else if (entry.getValue() instanceof Character)
obj.addProperty(entry.getKey(), (Character) entry.getValue());
- else {
+ else if (entry.getValue() == null) {
+ obj.addProperty(entry.getKey(), (String) null);
+ } else {
obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject());
}
}
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/LICENSE b/generator/konfig-integration-tests/sdks/java-additional-null-property/LICENSE
new file mode 100644
index 0000000000..6f78cb8b39
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/LICENSE
@@ -0,0 +1,7 @@
+Copyright (c) 2024- Konfig, Inc. (https://konfigthis.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/README.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/README.md
new file mode 100644
index 0000000000..6f4c038733
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/README.md
@@ -0,0 +1,5 @@
+# konfig
+
+|Language|Version|Package Manager|README|Source|
+|-|-|-|-|-|
+|Java|5.0.30|[Maven Central](https://central.sonatype.com/artifact/com.konfigthis/snaptrade-java-sdk/5.0.30)|[README](https://github.com/passiv/snaptrade-sdks/tree/HEAD/sdks/java#readme)|[Source](https://github.com/passiv/snaptrade-sdks/tree/HEAD/sdks/java)|
\ No newline at end of file
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/api.yaml b/generator/konfig-integration-tests/sdks/java-additional-null-property/api.yaml
new file mode 100644
index 0000000000..70ec88b29f
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/api.yaml
@@ -0,0 +1,4674 @@
+openapi: 3.0.0
+info:
+ description: Connect brokerage accounts to your app for live positions and trading
+ version: 1.0.0
+ title: SnapTrade
+ termsOfService: N/A
+ contact:
+ email: api@snaptrade.com
+ x-konfig-ignore:
+ potential-incorrect-type: true
+ x-readme:
+ explorer-enabled: false
+servers:
+ - description: SnapTrade Production API
+ url: https://api.snaptrade.com/api/v1
+security:
+ - PartnerSignature: []
+ PartnerClientId: []
+ PartnerTimestamp: []
+tags:
+ - name: API Status
+ description: Check whether the API is operational and verify timestamps.
+ - name: API Disclaimer
+ description: Endpoints related to terms of conditions of SnapTrade API use
+ - name: Custom Brokerage API Credentials
+ description: Allows SnapTrade partners to use their own brokerage API credentials
+ - name: Development Tools
+ description: Test and debug API authentication.
+ - name: Authentication
+ description: Register and authenticate users with SnapTrade.
+ - name: Connections
+ description: Retrieve and manage user connections.
+ - name: Account Information
+ description: Retrieve account information, such as positions, balances, etc.
+ - name: Transactions And Reporting
+ description: Retrieve information on account transactions, performance,
+ dividends, contributions, etc.
+ - name: Trading
+ description: Manage orders on user accounts
+ - name: Reference Data
+ description: Retrieve basic information for API use, such as supported
+ brokerages, exchanges, currencies, etc.
+ - name: Webhooks
+ description:
+ Reach out directly to SnapTrade to enable webhooks in order to be
+ notified when certain events occur.
+ - name: Options
+ description:
+ Endpoints to search for options prices and chains as well as place options trades if supported.
+paths:
+ /:
+ get:
+ tags:
+ - API Status
+ summary: Get API Status
+ description: Check whether the API is operational and verify timestamps.
+ operationId: ApiStatus_check
+ security: []
+ responses:
+ "200":
+ description: API is operational.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Status"
+ default:
+ description: Unexpected error.
+ /snapTrade/listUsers:
+ get:
+ tags:
+ - Authentication
+ summary: List SnapTrade users
+ operationId: Authentication_listSnapTradeUsers
+ description: "Returns a list of users you've registered over the SnapTrade API."
+ responses:
+ "200":
+ description: Successfully retrieved a list of users
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UserList"
+ "400":
+ description:
+ Bad Request. Could be caused by various reasons. Error message is
+ provided in response
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "404":
+ description: Invalid SnapTrade Client ID provided in query
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ /snapTrade/registerUser:
+ post:
+ tags:
+ - Authentication
+ summary: Create SnapTrade user
+ description: |
+ Registers a new SnapTrade user under your ClientID. A user secret will be automatically generated for you and must be properly stored in your database.
+ Most SnapTrade operations require a user ID and user secret to be passed as a parameter.
+ operationId: Authentication_registerSnapTradeUser
+ requestBody:
+ $ref: "#/components/requestBodies/RegisterUserRequestBody"
+ responses:
+ "200":
+ description: Successfully registered user
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UserIDandSecret"
+ "400":
+ description:
+ Bad Request. Could be caused by various reasons. Error message is
+ provided in response
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "404":
+ description: Invalid SnapTrade Client ID provided in query
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ /snapTrade/deleteUser:
+ delete:
+ tags:
+ - Authentication
+ summary:
+ Delete SnapTrade user
+ operationId: Authentication_deleteSnapTradeUser
+ description: "Deletes a user you've registered over the SnapTrade API, and any data associated with them or their investment accounts."
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ responses:
+ "200":
+ description: Delete successful
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DeleteUserResponse"
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FailedRequestResponse"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ /snapTrade/login:
+ post:
+ tags:
+ - Authentication
+ summary: Login user & generate connection link
+ operationId: Authentication_loginSnapTradeUser
+ description: Logs in a SnapTrade user and returns an authenticated connection portal URL for them to use to connect a brokerage account.
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ requestBody:
+ $ref: "#/components/requestBodies/SnapTradeLoginUserRequestBody"
+ responses:
+ "200":
+ description: Login successful. Redirect user to provided URI in response
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - $ref: "#/components/schemas/LoginRedirectURI"
+ - $ref: "#/components/schemas/encryptedResponse"
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FailedRequestResponse"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ /snapTrade/resetUserSecret:
+ post:
+ tags:
+ - Authentication
+ summary: Obtain a new user secret for a user
+ description: |
+ This API is used to rotate the secret for a SnapTrade user. You might use this if a userSecret
+ is compromised. Please note that if you call this endpoint and fail to save the new secret, you'll no longer be able to access any data for this user, and your only option will be to delete and recreate the user, then ask them to reconnect.
+ operationId: Authentication_resetSnapTradeUserSecret
+ requestBody:
+ $ref: "#/components/requestBodies/ResetUserSecretRequestBody"
+ responses:
+ "200":
+ description: New user secret is generated
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UserIDandSecret"
+ "400":
+ description:
+ Bad Request. Could be caused by various reasons. Error message is
+ provided in response
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "401":
+ description: Failed authenticaion. Wrong clientId, userId or userSecret provided
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/401FailedRequestResponse"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ /snapTrade/partners:
+ get:
+ tags:
+ - Reference Data
+ summary: Get metadata related to Snaptrade partner
+ description: Returns useful data related to the specified ClientID, including allowed brokerages and data access.
+ operationId: ReferenceData_getPartnerInfo
+ parameters: []
+ responses:
+ "200":
+ description:
+ Successfully obtained encrypted JWT data. See description on how to
+ object JWT token
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PartnerData"
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/401FailedRequestResponse"
+ "404":
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ /holdings:
+ get:
+ deprecated: true
+ tags:
+ - Account Information
+ summary:
+ List all accounts for the user, plus balances, positions, and orders for each
+ account.
+ description: |
+ **Deprecated, please use the account-specific holdings endpoint instead.**
+
+ List all accounts for the user, plus balances, positions, and orders for each
+ account.
+ operationId: AccountInformation_getAllUserHoldings
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: query
+ required: false
+ name: brokerage_authorizations
+ description:
+ Optional. Comma seperated list of authorization IDs (only use if
+ filtering is needed on one or more authorizations).
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ responses:
+ "200":
+ description: Returns list of accounts and holdings
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/AccountHoldings"
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ /accounts/{accountId}/holdings:
+ get:
+ tags:
+ - Account Information
+ summary: List account holdings
+ description: |
+ Lists balances, positions, option positions, and recent orders for the specified account. The data returned is similar to the data returned over the more fine-grained [balances](/reference/Account%20Information/AccountInformation_getUserAccountBalance), [positions](/reference/Account%20Information/AccountInformation_getUserAccountPositions) and [orders](/reference/Account%20Information/AccountInformation_getUserAccountOrders) endpoints. __The finer-grained APIs are preferred. They are easier to work with, faster, and have better error handling than this coarse-grained API.__
+ operationId: AccountInformation_getUserHoldings
+ parameters:
+ - in: path
+ name: accountId
+ required: true
+ schema:
+ $ref: "#/components/schemas/AccountID"
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AccountHoldingsAccount"
+ "400":
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "403":
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ /accounts:
+ get:
+ tags:
+ - Account Information
+ summary: List accounts
+ description: Get a list of all Account objects for the authenticated SnapTrade user.
+ operationId: AccountInformation_listUserAccounts
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: A list of all Account objects for the authenticated user.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Account"
+ default:
+ description: Unexpected error.
+ "/accounts/{accountId}":
+ get:
+ tags:
+ - Account Information
+ summary: Return details of a specific investment account
+ description: |
+ Returns an account object with details for the specified account,
+ including the total account market value.
+ operationId: AccountInformation_getUserAccountDetails
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to get detail of.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ responses:
+ "200":
+ description: Details of a specific investment account
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Account"
+ default:
+ description: Unexpected error
+ put:
+ tags:
+ - Account Information
+ summary: Update details of an investment account
+ description: Updates various properties of a specified account.
+ operationId: AccountInformation_updateUserAccount
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to update.
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "200":
+ description: Successfully updated details of an investment account
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Account"
+ default:
+ description: Unexpected error
+ /accounts/{accountId}/balances:
+ get:
+ tags:
+ - Account Information
+ summary: List account balances
+ operationId: AccountInformation_getUserAccountBalance
+ description: A list of account balances for the specified account (one per currency that the account holds).
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to get balances.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ responses:
+ "200":
+ description: List of all balances in investment account
+ content:
+ "*/*":
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Balance"
+ default:
+ description: Unexpected error
+ /accounts/{accountId}/positions:
+ get:
+ tags:
+ - Account Information
+ summary: List account positions
+ description: Returns a list of positions in the specified account.
+ operationId: AccountInformation_getUserAccountPositions
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to get positions.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ responses:
+ "200":
+ description: List all positions in investment account
+ content:
+ "*/*":
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Position"
+ default:
+ description: Unexpected error
+ /accounts/{accountId}/orders:
+ get:
+ tags:
+ - Account Information
+ summary: List account orders
+ operationId: AccountInformation_getUserAccountOrders
+ description: Fetch all recent orders from a user's account.
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: query
+ name: state
+ description: defaults value is set to "all"
+ schema:
+ type: string
+ enum:
+ - all
+ - open
+ - executed
+ - in: query
+ name: days
+ description: Number of days in the past to fetch the most recent orders. Defaults to the last 30 days if no value is passed in.
+ schema:
+ type: integer
+ format: int32
+ minimum: 1
+ example: 30
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to get orders.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ responses:
+ "200":
+ description: List all orders in account
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/AccountOrderRecord"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ "/accounts/{accountId}/quotes":
+ get:
+ tags:
+ - Trading
+ summary: Get symbol quotes
+ description: Returns quote(s) from the brokerage for the specified symbol(s).
+ operationId: Trading_getUserAccountQuotes
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: query
+ name: symbols
+ required: true
+ description: List of universal_symbol_id or tickers to get quotes for.
+ schema:
+ type: string
+ - in: query
+ name: use_ticker
+ description: Should be set to True if providing tickers.
+ schema:
+ type: boolean
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to get quotes.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ responses:
+ "200":
+ description: Returns quotes object with different prices
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SymbolsQuotes"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ "/accounts/{accountId}/orders/cancel":
+ post:
+ tags:
+ - Trading
+ summary: Cancel open order in account
+ description: |
+ Sends a signal to the brokerage to cancel the specified order.
+ This will only work if the order has not yet been executed.
+ operationId: Trading_cancelUserAccountOrder
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to cancel the order in.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+
+ requestBody:
+ $ref: '#/components/requestBodies/CancelOrderRequestBody'
+
+
+ responses:
+ "200":
+ description: Order Record of canceled order
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AccountOrderRecord"
+ "400":
+ description:
+ Unable to cancel open order. Please verify status in brokerage
+ account
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ "/accounts/{accountId}/symbols":
+ post:
+ tags:
+ - Reference Data
+ summary:
+ Search for symbols available in an account
+ description: |
+ Returns a list of universal symbols that are supported by
+ the specificied account. Returned symbols are based on the
+ provided search string, matching on ticker and name.
+ operationId: ReferenceData_symbolSearchUserAccount
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to search for symbols within.
+ schema:
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SymbolQuery"
+ responses:
+ "200":
+ description:
+ List of universal symbol supported by account based on substring
+ sent it
+ content:
+ "*/*":
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/UniversalSymbol"
+ default:
+ description: Unexpected error
+ "/accounts/{accountId}/options":
+ get:
+ tags:
+ - Options
+ summary: Get account option holdings
+ description: |
+ Returns a list of Options Positions.
+ operationId: Options_listOptionHoldings
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to fetch options holdings for.
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "200":
+ description: The option holdings in the account
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/OptionsPosition"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ "/accounts/{accountId}/optionsChain":
+ get:
+ tags:
+ - Options
+ summary: Get the options chain for a symbol
+ description: Returns the option chain for the specified symbol in the specified account.
+ operationId: Options_getOptionsChain
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to get the options chain from.
+ schema:
+ type: string
+ format: uuid
+ - in: query
+ name: symbol
+ required: true
+ description: Universal symbol ID if symbol
+ schema:
+ type: string
+ format: uuid
+ responses:
+ "200":
+ description: List of all Options available for the brokerage symbol
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/OptionChain"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ "/accounts/{accountId}/optionStrategy":
+ post:
+ tags:
+ - Options
+ summary: Create options strategy
+ description: |
+ Creates an option strategy object that will be used to place an option strategy order.
+ operationId: Options_getOptionStrategy
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to create the option strategy object in.
+ schema:
+ type: string
+ format: uuid
+ requestBody:
+ $ref: "#/components/requestBodies/OptionStrategyRequestBody"
+
+ responses:
+ "200":
+ description: Order Quotes
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StrategyQuotes"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+
+
+ /accounts/{accountId}/optionStrategy/{optionStrategyId}:
+ get:
+ tags:
+ - Options
+ summary: Get options strategy quotes
+ description: |
+ Returns a Strategy Quotes object which has latest market data of the specified option strategy.
+ operationId: Options_getOptionsStrategyQuote
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account the strategy will be placed in.
+ schema:
+ type: string
+ format: uuid
+ - in: path
+ required: true
+ name: optionStrategyId
+ description: Option strategy id obtained from response when creating option strategy object
+ schema:
+ $ref: "#/components/schemas/Id"
+ responses:
+ "200":
+ description: Order Quotes
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StrategyQuotes"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+
+ "/accounts/{accountId}/optionStrategy/{optionStrategyId}/execute":
+ post:
+ tags:
+ - Options
+ summary: Place an option strategy order
+ description: Places the option strategy order and returns the order record received from the brokerage.
+ operationId: Options_placeOptionStrategy
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ - in: path
+ name: accountId
+ required: true
+ description: The ID of the account to execute the strategy in.
+ schema:
+ $ref: "#/components/schemas/Id"
+ - in: path
+ name: optionStrategyId
+ required: true
+ description: Option strategy id obtained from response when creating option strategy object
+ schema:
+ $ref: "#/components/schemas/Id"
+ requestBody:
+ $ref: "#/components/requestBodies/OrderStrategyExecuteBody"
+
+ responses:
+ "200":
+ description: Status of strategy order placed
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StrategyOrderRecord"
+ "500":
+ description: Unexpected error
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/500UnexpectedExceptionResponse"
+ "/authorizations":
+ get:
+ tags:
+ - Connections
+ summary: List all brokerage authorizations for the User
+ description: Returns a list of Brokerage Authorization objects for the user
+ operationId: Connections_listBrokerageAuthorizations
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: A list of all Authorization objects for the authenticated user.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/BrokerageAuthorization"
+ default:
+ description: Unexpected error.
+ "/authorizations/{authorizationId}":
+ get:
+ tags:
+ - Connections
+ summary: Get brokerage authorization details
+ description: Returns a single brokerage authorization object for the specified ID.
+ operationId: Connections_detailBrokerageAuthorization
+ parameters:
+ - in: path
+ name: authorizationId
+ required: true
+ description: The ID of a brokerage authorization object.
+ schema:
+ $ref: "#/components/schemas/Id"
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Authorization object for the authenticated user.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/BrokerageAuthorization"
+ default:
+ description: Unexpected error.
+ delete:
+ tags:
+ - Connections
+ summary: Delete brokerage authorization
+ description: Deletes a specified brokerage authorization given by the ID.
+ operationId: Connections_removeBrokerageAuthorization
+ parameters:
+ - in: path
+ name: authorizationId
+ required: true
+ description: The ID of the Authorization to delete.
+ schema:
+ $ref: "#/components/schemas/Id"
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "204":
+ description: Brokerage authorization object has been successfully deleted
+ "400":
+ description: The specified authorizationId is invalid (not a UUID string).
+ "404":
+ description: The specified authorizationId was not found.
+ default:
+ description: Unexpected error.
+ "/authorizations/{authorizationId}/refresh":
+ post:
+ tags:
+ - Connections
+ summary: Refresh holdings for a connection
+ description: Trigger a holdings update for all accounts under this authorization. Updates will be queued asynchronously. ACCOUNT_HOLDINGS_UPDATED webhook will be sent once the sync completes. Please contact support for access as this endpoint is not enabled by default
+ operationId: Connections_refreshBrokerageAuthorization
+ parameters:
+ - in: path
+ name: authorizationId
+ required: true
+ description: The ID of a brokerage authorization object.
+ schema:
+ $ref: "#/components/schemas/Id"
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Confirmation that the syncs have been scheduled
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/BrokerageAuthorizationRefreshConfirmation"
+ "401":
+ description: Unauthorized, invalid credentials for this resource
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/401FailedRequestResponse"
+ "402":
+ description: Unable to sync with brokerage account because the connection is disabled.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/402BrokerageAuthDisabledResponse"
+ "403":
+ description: Customer or user does not have access to this feature
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FeatureNotEnabledResponse"
+ "404":
+ description: The requested resource does not exist.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+ "/authorizations/{authorizationId}/disable":
+ post:
+ tags:
+ - Connections
+ summary: Manually disable a connection for testing
+ description: Manually disable a connection. This should only be used for testing a reconnect flow, and never used on production connections.
+ Will trigger a disconnect as if it happened naturally, and send a CONNECTION_BROKEN webhook for the connection. Please contact us in order to use this endpoint as it is disabled by default.
+ operationId: Connections_disableBrokerageAuthorization
+ parameters:
+ - in: path
+ name: authorizationId
+ required: true
+ description: The ID of a brokerage authorization object.
+ schema:
+ $ref: "#/components/schemas/Id"
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Confirmation that the connection has been disabled
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/BrokerageAuthorizationDisabledConfirmation"
+ "401":
+ description: Unauthorized, invalid credentials for this resource
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/401FailedRequestResponse"
+ "402":
+ description: Unable to sync with brokerage account because the connection is disabled.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/402BrokerageAuthAlreadyDisabledException"
+ "403":
+ description: Customer or user does not have access to this feature
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FeatureNotEnabledResponse"
+ "404":
+ description: The requested resource does not exist.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/404FailedRequestResponse"
+
+ "/sessionEvents":
+ get:
+ tags:
+ - Connections
+ summary: Get all session events for a user
+ description: Returns a list of session events associated with a user.
+ operationId: Connections_sessionEvents
+ parameters:
+ - in: query
+ required: true
+ name: PartnerClientId
+ schema:
+ $ref: "#/components/schemas/ClientID"
+ - in: query
+ required: false
+ name: userId
+ description: Optional comma seperated list of user IDs used to filter the
+ request on specific users
+ schema:
+ $ref: "#/components/schemas/AccountIDs"
+ - in: query
+ required: false
+ name: sessionId
+ description: Optional comma seperated list of session IDs used to filter the
+ request on specific users
+ schema:
+ $ref: "#/components/schemas/AccountIDs"
+ responses:
+ "200":
+ description: A list of all Session Events for the Partner.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ anyOf:
+ - $ref: "#/components/schemas/SessionEvent"
+ default:
+ description: Unexpected error.
+ "/brokerages":
+ get:
+ tags:
+ - Reference Data
+ summary: Get brokerages
+ description: Returns a list of all defined Brokerage objects.
+ operationId: ReferenceData_listAllBrokerages
+ parameters: []
+ responses:
+ "200":
+ description: A list of all defined Brokerage objects.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Brokerage"
+ default:
+ description: Unexpected error.
+ "/brokerageAuthorizationTypes":
+ get:
+ tags:
+ - Reference Data
+ summary: Get all brokerage authorization types
+ description: Returns a list of all defined Brokerage authorization Type objects.
+ operationId: ReferenceData_listAllBrokerageAuthorizationType
+ parameters:
+ - in: query
+ required: false
+ name: brokerage
+ schema:
+ type: string
+ example: QUESTRADE,ALPACA
+ description: Comma separated value of brokerage slugs
+ responses:
+ "200":
+ description: A list of all defined Brokerage Authorization Type objects.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/BrokerageAuthorizationTypeReadOnly"
+ default:
+ description: Unexpected error.
+ /currencies:
+ get:
+ tags:
+ - Reference Data
+ summary: Get currencies
+ description: Returns a list of all defined Currency objects.
+ operationId: ReferenceData_listAllCurrencies
+ parameters: []
+ responses:
+ "200":
+ description: A list of all currencies.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Currency"
+ default:
+ description: Unexpected error.
+ /currencies/rates:
+ get:
+ tags:
+ - Reference Data
+ summary: Get currency exchange rates
+ description: Returns a list of all Exchange Rate Pairs for all supported Currencies.
+ operationId: ReferenceData_listAllCurrenciesRates
+ parameters: []
+ responses:
+ "200":
+ description: A list of all exchange rates pairs for supported currencies
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/ExchangeRatePairs"
+ /currencies/rates/{currencyPair}:
+ get:
+ tags:
+ - Reference Data
+ summary: Get exchange rate of a currency pair
+ description: Returns an Exchange Rate Pair object for the specified Currency Pair.
+ operationId: ReferenceData_getCurrencyExchangeRatePair
+ parameters:
+ - in: path
+ name: currencyPair
+ required: true
+ description: A currency pair based on currency code for example, {CAD-USD}
+ schema:
+ type: string
+ responses:
+ "200":
+ description: A list of all exchange rates pairs for supported currencies
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ExchangeRatePairs"
+ /exchanges:
+ get:
+ tags:
+ - Reference Data
+ summary: Get exchanges
+ description: Returns a list of all supported Exchanges.
+ operationId: ReferenceData_getStockExchanges
+ parameters: []
+ responses:
+ "200":
+ description: A list of all supported stock exchanges
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/Exchange"
+ /securityTypes:
+ get:
+ tags:
+ - Reference Data
+ summary: List of all security types
+ operationId: ReferenceData_getSecurityTypes
+ description: List security types available on SnapTrade.
+ parameters: []
+ responses:
+ "200":
+ description: A list of all defined Security Type objects.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/SecurityType"
+ default:
+ description: Unexpected error.
+ /symbols:
+ post:
+ tags:
+ - Reference Data
+ summary: Search for symbols
+ description: |
+ Returns a list of Universal Symbol objects that match a defined string.
+
+ Matches on ticker or name.
+ operationId: ReferenceData_getSymbols
+ parameters: []
+ responses:
+ "200":
+ description: A list of UniversalSymbol objects which match the specified substring
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/UniversalSymbol"
+ default:
+ description: Unexpected error.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SymbolQuery"
+ /symbols/{query}:
+ get:
+ tags:
+ - Reference Data
+ summary: Get details of a symbol
+ description: Returns the Universal Symbol object specified by the ticker or the universal_symbol_id.
+ operationId: ReferenceData_getSymbolsByTicker
+ parameters:
+ - in: path
+ name: query
+ required: true
+ description: The ticker or universal_symbol_id of the UniversalSymbol to get.
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Successfully gets a symbol
+ content:
+ "*/*":
+ schema:
+ $ref: "#/components/schemas/UniversalSymbol"
+ "404":
+ description: No symbol with the specified ticker found.
+ default:
+ description: Unexpected error
+ /trade/place:
+ post:
+ tags:
+ - Trading
+ summary: Place a trade with NO validation.
+ description: Places a specified trade in the specified account.
+ operationId: Trading_placeForceOrder
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+
+ responses:
+ "200":
+ description: Trade sucessfully placed
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AccountOrderRecord"
+ "400":
+ description: Trade could not be placed
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "403":
+ description: User does not have permissions to place trades
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ requestBody:
+ $ref: "#/components/requestBodies/ManualTradeFormRequestBody"
+ /trade/impact:
+ post:
+ tags:
+ - Trading
+ summary: Check the impact of a trade on an account
+ description: Return the trade object and it's impact on the account for the specified order.
+ operationId: Trading_getOrderImpact
+ parameters:
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Return trade object and it's impact on the account
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ManualTradeAndImpact"
+ "400":
+ description: Missing or wrong data format provided in request body
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "403":
+ description: User does not have permissions to place trades
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/403FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ requestBody:
+ $ref: "#/components/requestBodies/ManualTradeFormRequestBody"
+ /trade/{tradeId}:
+ post:
+ tags:
+ - Trading
+ summary: Place order
+ description: |
+ Places the specified trade object. This places the order in the account and
+ returns the status of the order from the brokerage.
+ operationId: Trading_placeOrder
+ parameters:
+ - in: path
+ name: tradeId
+ required: true
+ description: The ID of trade object obtained from trade/impact endpoint
+ schema:
+ type: string
+ format: uuid
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Status of order placed
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AccountOrderRecord"
+ "400":
+ description: Failed to submit order to broker
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/400FailedRequestResponse"
+ "500":
+ description: Unexpected Error
+ requestBody:
+ $ref: "#/components/requestBodies/ValidatedTradeRequestBody"
+ /activities:
+ get:
+ tags:
+ - Transactions And Reporting
+ summary: Get transaction history for a user
+ operationId: TransactionsAndReporting_getActivities
+ description:
+ Returns activities (transactions) for a user. Specifying start and
+ end date is highly recommended for better performance
+ parameters:
+ - in: query
+ required: false
+ name: startDate
+ schema:
+ $ref: "#/components/schemas/ReportingDate"
+ - in: query
+ required: false
+ name: endDate
+ schema:
+ $ref: "#/components/schemas/ReportingDate"
+ - in: query
+ required: false
+ name: accounts
+ description:
+ Optional comma seperated list of account IDs used to filter the
+ request on specific accounts
+ schema:
+ $ref: "#/components/schemas/AccountIDs"
+ - in: query
+ required: false
+ name: brokerageAuthorizations
+ description:
+ Optional comma seperated list of brokerage authorization IDs used to filter the
+ request on only accounts that belong to those authorizations
+ schema:
+ $ref: "#/components/schemas/BrokerageAuthIDs"
+ - in: query
+ required: false
+ name: type
+ description:
+ Optional comma seperated list of types to filter activities by. This is not an exhaustive list, if we fail to match to these types, we will return the raw description from the brokerage. Potential values include
+ - DIVIDEND
+ - BUY
+ - SELL
+ - CONTRIBUTION
+ - WITHDRAWAL
+ - EXTERNAL_ASSET_TRANSFER_IN
+ - EXTERNAL_ASSET_TRANSFER_OUT
+ - INTERNAL_CASH_TRANSFER_IN
+ - INTERNAL_CASH_TRANSFER_OUT
+ - INTERNAL_ASSET_TRANSFER_IN
+ - INTERNAL_ASSET_TRANSFER_OUT
+ - INTEREST
+ - REBATE
+ - GOV_GRANT
+ - TAX
+ - FEE
+ - REI
+ - FXT
+ schema:
+ type: string
+ example: DIVIDEND
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Successfully retrieved transaction history
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: "#/components/schemas/UniversalActivity"
+ default:
+ description: Unexpected error
+ /performance/custom:
+ get:
+ deprecated: true
+ tags:
+ - Transactions And Reporting
+ summary: Get performance information for a specific timeframe
+ operationId: TransactionsAndReporting_getReportingCustomRange
+ description:
+ Returns performance information (contributions, dividends, rate of
+ return, etc) for a specific timeframe. Please note that Total Equity Timeframe and Rate of Returns are experimental features. Please contact support@snaptrade.com if you notice any inconsistencies.
+ parameters:
+ - in: query
+ required: true
+ name: startDate
+ schema:
+ $ref: "#/components/schemas/ReportingDate"
+ - in: query
+ required: true
+ name: endDate
+ schema:
+ $ref: "#/components/schemas/ReportingDate"
+ - in: query
+ required: false
+ name: accounts
+ description:
+ Optional comma seperated list of account IDs used to filter the
+ request on specific accounts
+ schema:
+ $ref: "#/components/schemas/AccountIDs"
+ - in: query
+ required: false
+ name: detailed
+ description:
+ Optional, increases frequency of data points for the total value
+ and contribution charts if set to true
+ schema:
+ type: boolean
+ example: true
+ - in: query
+ required: false
+ name: frequency
+ description:
+ Optional frequency for the rate of return chart (defaults to
+ monthly). Possible values are daily, weekly, monthly, quarterly,
+ yearly.
+ schema:
+ $ref: "#/components/schemas/ReportingFrequency"
+ - in: query
+ required: true
+ name: userId
+ schema:
+ $ref: "#/components/schemas/UserID"
+ - in: query
+ required: true
+ name: userSecret
+ schema:
+ $ref: "#/components/schemas/UserSecret"
+ responses:
+ "200":
+ description: Successfully retrieved performance data
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PerformanceCustom"
+ default:
+ description: Unexpected error
+ /connectionAdded:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_connectionAdded
+ description: A webhook that is sent whenever a new connection is added.
+ requestBody:
+ description: Information about a new connection in the system
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description: Return a 200 status to indicate that the connection was successful
+ "201":
+ description: Return a 201 status to indicate that the connection was successful
+ /connectionDeleted:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_connectionDeleted
+ description: A webhook that is sent whenever an existing connection is deleted.
+ requestBody:
+ description: Information about the deleted connection
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description:
+ Return a 200 status to indicate that the connection was deleted
+ successfully
+ "201":
+ description: Return a 201 status to indicate that the connection was deleted
+ /userRegistered:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_userRegistered
+ description: A webhook that is sent whenever a user is newly registered.
+ requestBody:
+ description: Information about the newly registered user
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description:
+ Return a 200 status to indicate that the user was registered
+ successfully
+ "201":
+ description: Return a 201 status to indicate that user was registered
+ successfully
+ /userDeleted:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_userDeleted
+ description: A webhook that is sent whenever an existing user is deleted.
+ requestBody:
+ description: Information about the deleted user
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description: Return a 200 status to indicate that the user was deleted
+ successfully
+ "201":
+ description: Return a 201 status to indicate that the connection was successful
+ /accountAdded:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_accountAdded
+ description: A webhook that is sent whenever a new account is added to an existing brokerage authorization.
+ requestBody:
+ description: Information about the newly added account
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description:
+ Return a 200 status to indicate that the account was added
+ successfully
+ "201":
+ description: Return a 201 status to indicate that the account was added
+ successfully
+ /accountDeleted:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_accountDeleted
+ description: A webhook that is sent whenever an existing account under a brokerage authorization is deleted.
+ requestBody:
+ description: Information about the deleted account
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description:
+ Return a 200 status to indicate that the account was deleted
+ successfully
+ "201":
+ description: Return a 201 status to indicate that the account was deleted
+ successfully
+ /transactionsUpdated:
+ post:
+ tags:
+ - Webhooks
+ operationId: Webhooks_updatedTransactions
+ description: A webhook that is sent whenever transactions have been updated for an account.
+ requestBody:
+ description: Information about the account for which transactions have been updated
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/WebhookBase"
+ responses:
+ "200":
+ description: Return a 200 status to indicate that the update was successful
+ "201":
+ description: Return a 201 status to indicate the update was successful
+components:
+ securitySchemes:
+ PartnerSignature:
+ type: apiKey
+ in: header
+ name: Signature
+ PartnerClientId:
+ type: apiKey
+ in: query
+ name: clientId
+ PartnerTimestamp:
+ type: apiKey
+ in: query
+ name: timestamp
+ requestBodies:
+ MockSignatureRequestBody:
+ description: Request body to signed. Include it under "content"
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ userId: snaptrade-user-123
+ userSecret: CHRIS.P.BACON
+ RegisterUserRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SnapTradeRegisterUserRequestBody"
+ ResetUserSecretRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UserIDandSecret"
+ SnapTradeLoginUserRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/SnapTradeLoginUserRequestBody"
+ LoginRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UserIDandSecret"
+ DeleteUserRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UserIDandSecret"
+ RedeemTokenRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RedirectTokenandPin"
+ PortfolioGroup:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PortfolioGroup"
+ TargetAsset:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TargetAsset"
+ ManualTradeFormRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ManualTradeForm"
+ ValidatedTradeRequestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ValidatedTradeBody"
+ CancelOrderRequestBody:
+ description: The Order ID to be canceled
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ brokerage_order_id:
+ $ref: '#/components/schemas/Id'
+
+
+
+ CreateSnapTradeParterAPICredentialsRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ brokerageAuthorizationTypeId:
+ description:
+ Brokerage Authorization Type ID from BrokerageAuthorizationType
+ object
+ brokerageAPIClientId:
+ description: API Client ID from brokerage when registering app
+ brokerageAPIClientSecret:
+ description: API Client Secret from brokerage when registering app
+ redirectURI:
+ description: Redirect uri from brokerage when registering app
+
+ OptionStrategyRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required: ["underlying_symbol_id", "legs", "strategy_type"]
+ properties:
+ underlying_symbol_id:
+ $ref: "#/components/schemas/Id"
+ legs:
+ type: array
+ items:
+ $ref: "#/components/schemas/OptionLeg"
+ strategy_type:
+ type: string
+ enum:
+ - CUSTOM
+
+ OrderStrategyExecuteBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ required: ["order_type", "time_in_force"]
+ properties:
+ order_type:
+ $ref: "#/components/schemas/OrderTypeStrict"
+ time_in_force:
+ $ref: "#/components/schemas/TimeInForceStrict"
+ price:
+ $ref: "#/components/schemas/Price"
+
+ SnapTradeAPIDisclaimerAcceptRequestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ accepted:
+ type: boolean
+ description:
+ A boolean that indicates whether this user has accepted the
+ disclaimer or not.
+ schemas:
+ 400FailedRequestResponse:
+ description: Example for failed request response
+ type: object
+ properties:
+ default_detail:
+ example: Unable to verify data sent
+ default_code:
+ example: 1076
+ 401FailedRequestResponse:
+ description: Example for failed request response
+ type: object
+ properties:
+ default_detail:
+ example: Unable to verify signature sent
+ default_code:
+ example: 1076
+ 402BrokerageAuthDisabledResponse:
+ description: Cannot perform action because connection is disabled
+ type: object
+ properties:
+ detail:
+ example: Unable to sync with brokerage account because the connection is disabled.
+ code:
+ example: 3003
+ 402BrokerageAuthAlreadyDisabledException:
+ description: This connection is already disabled.
+ type: object
+ properties:
+ detail:
+ example: This connection is already disabled.
+ code:
+ example: 3011
+ 403FailedRequestResponse:
+ description: Example for failed request response
+ type: object
+ properties:
+ default_detail:
+ example: User does not have permission to access this resource
+ default_code:
+ example: 1066
+ 403FeatureNotEnabledResponse:
+ description: Example for failed request response
+ type: object
+ properties:
+ detail:
+ example: Feature is not enabled for this customer or this connection
+ default_code:
+ example: 1141
+ 404FailedRequestResponse:
+ description: Example for failed request response
+ type: object
+ properties:
+ default_detail:
+ example: The requested resource does not exist.
+ default_code:
+ example: 1011
+ 500UnexpectedExceptionResponse:
+ description: Example for a response that failed for unexpected reasons
+ type: object
+ properties:
+ detail:
+ example: Encountered an unexpected exception.
+ status_code:
+ example: 500
+ code:
+ example: 1000
+ CashRestriction:
+ description:
+ Cash restriction rules that apply to this account when undergoing
+ portfolio rebalance calculations.
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ account:
+ $ref: "#/components/schemas/Id"
+ currency:
+ $ref: "#/components/schemas/Id"
+ type:
+ type: string
+ enum:
+ - ALLOCATE_MAX
+ - RETAIN_MIN
+ amount:
+ type: number
+ example: 100
+ AccountSyncStatus:
+ description: Status of account
+ properties:
+ transactions:
+ $ref: "#/components/schemas/TransactionsStatus"
+ holdings:
+ $ref: "#/components/schemas/HoldingsStatus"
+ TransactionsStatus:
+ description: Status of account transaction sync
+ properties:
+ initial_sync_completed:
+ type: boolean
+ last_successful_sync:
+ $ref: "#/components/schemas/SyncStatusDate"
+ first_transaction_date:
+ $ref: "#/components/schemas/SyncStatusDate"
+ HoldingsStatus:
+ description: Status of account holdings sync
+ properties:
+ initial_sync_completed:
+ type: boolean
+ last_successful_sync:
+ $ref: "#/components/schemas/HoldingsSyncStatusDate"
+ AccountBalance:
+ description: Contains balance related information for the account.
+ properties:
+ total:
+ description: Total value of this account (includes cash, equity, fixed income, etc)
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Amount"
+ Amount:
+ description: Total value of the account, as reported by the brokerage
+ properties:
+ amount:
+ type: number
+ description: Total value denominated in the currency of the `currency` field.
+ example: 15363.23
+ currency:
+ type: string
+ description: The ISO-4217 currency code for the amount.
+ example: USD
+ Account:
+ description: SnapTradeUser Investment Account
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ brokerage_authorization:
+ $ref: "#/components/schemas/Id"
+ portfolio_group:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Registered Retirement Savings Account
+ number:
+ type: string
+ example: Q6542138443
+ institution_name:
+ type: string
+ example: Alpaca
+ created_date:
+ type: string
+ example: 2021-06-04T16:26:46.523334Z
+ meta:
+ type: object
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ cash_restrictions:
+ type: array
+ items:
+ $ref: "#/components/schemas/CashRestriction"
+ sync_status:
+ $ref: "#/components/schemas/AccountSyncStatus"
+ balance:
+ $ref: "#/components/schemas/AccountBalance"
+ AccountSimple:
+ description: SnapTradeUser Investment Account
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Registered Retirement Savings Account
+ number:
+ type: string
+ example: Q6542138443
+ sync_status:
+ $ref: "#/components/schemas/AccountSyncStatus"
+ AccountID:
+ description: Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
+ type: string
+ format: uuid
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ AccountIDs:
+ description: Comma seperated list of account IDs
+ type: string
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2
+ BrokerageAuthID:
+ description: Unique identifier for the connection (brokerage authorization). This is the UUID used to reference the connection in SnapTrade.
+ type: string
+ format: uuid
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ BrokerageAuthIDs:
+ description: Comma seperated list of brokerage authorization IDs
+ type: string
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2
+ AccountHoldings:
+ description: Account Holdings
+ type: object
+ properties:
+ account:
+ $ref: "#/components/schemas/SnapTradeHoldingsAccount"
+ balances:
+ type: array
+ nullable: true
+ items:
+ $ref: "#/components/schemas/Balance"
+ positions:
+ type: array
+ nullable: true
+ items:
+ $ref: "#/components/schemas/Position"
+ total_value:
+ $ref: "#/components/schemas/SnapTradeHoldingsTotalValue"
+ AccountHoldingsAccount:
+ description: A wrapper object containing holdings information for a single account
+ type: object
+ properties:
+ account:
+ # FIXME - This should be a reference to the Account object
+ $ref: "#/components/schemas/SnapTradeHoldingsAccountAccountId"
+ balances:
+ type: array
+ nullable: true
+ description: List of balances for the account. Each element of the list has a distinct currency. Some brokerages like Questrade [allows holding multiple currencies in the same account](https://www.questrade.com/learning/questrade-basics/balances-and-reports/understanding-your-account-balances).
+ items:
+ $ref: "#/components/schemas/Balance"
+ positions:
+ type: array
+ nullable: true
+ description: List of stock/ETF/crypto/mutual fund positions in the account.
+ items:
+ $ref: "#/components/schemas/Position"
+ option_positions:
+ type: array
+ nullable: true
+ description: List of option positions in the account.
+ items:
+ $ref: "#/components/schemas/OptionsPosition"
+ orders:
+ type: array
+ nullable: true
+ description: List of recent orders in the account, including both pending and executed orders.
+ items:
+ $ref: "#/components/schemas/AccountOrderRecord"
+ total_value:
+ $ref: "#/components/schemas/SnapTradeHoldingsTotalValue"
+ AccountOrderRecord:
+ description: Record of order in brokerageaccount
+ type: object
+ properties:
+ brokerage_order_id:
+ description: Order id returned by brokerage
+ type: string
+ status:
+ $ref: "#/components/schemas/AccountOrderRecordStatus"
+ symbol:
+ $ref: "#/components/schemas/Id"
+ universal_symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ option_symbol:
+ $ref: "#/components/schemas/OptionsSymbol"
+ action:
+ $ref: "#/components/schemas/Action"
+ total_quantity:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Units"
+ open_quantity:
+ $ref: "#/components/schemas/OpenUnits"
+ canceled_quantity:
+ $ref: "#/components/schemas/CancelledUnits"
+ filled_quantity:
+ $ref: "#/components/schemas/FilledUnits"
+ execution_price:
+ $ref: "#/components/schemas/Price"
+ limit_price:
+ $ref: "#/components/schemas/Price"
+ stop_price:
+ $ref: "#/components/schemas/StopPrice"
+ order_type:
+ $ref: "#/components/schemas/OrderType"
+ time_in_force:
+ $ref: "#/components/schemas/TimeInForce"
+ time_placed:
+ $ref: "#/components/schemas/Time"
+ time_updated:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Time"
+ time_executed:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Time"
+ expiry_date:
+ $ref: "#/components/schemas/Time"
+ AccountOrderRecordStatus:
+ type: string
+ enum:
+ - NONE
+ - PENDING
+ - ACCEPTED
+ - FAILED
+ - REJECTED
+ - CANCELED
+ - PARTIAL_CANCELED
+ - CANCEL_PENDING
+ - EXECUTED
+ - PARTIAL
+ - REPLACE_PENDING
+ - REPLACED
+ - STOPPED
+ - SUSPENDED
+ - EXPIRED
+ - QUEUED
+ - TRIGGERED
+ - ACTIVATED
+ - PENDING_RISK_REVIEW
+ - CONTINGENT_ORDER
+
+ OptionsPosition:
+ description: Describes a single option position in an account.
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/OptionBrokerageSymbol"
+ price:
+ type: number
+ example: 113.15
+ description: Last known market price for the option contract. The freshness of this price depends on the brokerage. Some brokerages provide real-time prices, while others provide delayed prices. It is recommended that you rely on your own third-party market data provider for most up to date prices.
+ nullable: true
+ units:
+ type: number
+ description: The number of contracts for this option position.
+ example: 10
+ currency:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Currency"
+ average_purchase_price:
+ type: number
+ nullable: true
+ example: 108.3353
+ description: Cost basis _per contract_ of this option position. To get the cost basis _per share_, divide this value by the number of shares per contract (usually 100).
+ StrategyImpact:
+ description: The strategy impact
+ type: object
+ properties:
+ estimatedCommissions:
+ type: number
+ example: 11.95
+ buyingPowerEffect:
+ type: number
+ example: -156.3435
+ buyingPowerResult:
+ type: number
+ example: 8800.0882
+ maintExcessEffect:
+ type: number
+ example: -46.95
+ maintExcessResult:
+ type: number
+ example: 2642.669129
+ tradeValueCalculation:
+ type: string
+ example: 1 x 0.07 x 100 + 1 x 0.28 x 100 = DR 35.00 CAD
+ legs:
+ type: array
+ items:
+ type: object
+ properties:
+ legId:
+ type: integer
+ format: int32
+ example: 0
+ symbol:
+ type: string
+ example: AC21Oct22C30.00.MX
+ symbolId:
+ type: integer
+ format: int32
+ example: 41790511
+ legRatioQuantity:
+ type: integer
+ format: int32
+ example: 1
+ side:
+ type: string
+ example: BTO
+ avgExecPrice:
+ type: string
+ format: nullable
+ lastExecPrice:
+ type: string
+ format: nullable
+ side:
+ type: string
+ example: Buy
+ effect:
+ type: string
+ example: Debit
+ price:
+ type: number
+ example: 0.35
+ strategy:
+ type: string
+ example: Strangle
+ StrategyOrderQuotes:
+ description: The quotes for the strategy requested
+ StrategyOrderPlace:
+ description: The reponse for a correctly placed order
+ type: object
+ properties:
+ orderId:
+ type: integer
+ format: int32
+ example: 1069605761
+ orders:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int32
+ example: 1069605761
+ symbol:
+ type: string
+ example: AC.TO
+ symbolId:
+ type: integer
+ format: int32
+ example: 7960447
+ totalQuantity:
+ type: integer
+ format: int32
+ example: 1
+ openQuantity:
+ type: integer
+ format: int32
+ example: 1
+ filledQuantity:
+ type: integer
+ format: int32
+ example: 0
+ canceledQuantity:
+ type: integer
+ format: int32
+ example: 0
+ side:
+ type: string
+ example: Buy
+ orderType:
+ type: string
+ example: Market
+ limitPrice:
+ type: string
+ format: nullable
+ stopPrice:
+ type: string
+ format: nullable
+ isAllOrNone:
+ type: boolean
+ isAnonymous:
+ type: boolean
+ icebergQuantity:
+ type: string
+ format: nullable
+ minQuantity:
+ type: string
+ format: nullable
+ avgExecPrice:
+ type: integer
+ format: int32
+ example: 0
+ lastExecPrice:
+ type: string
+ format: nullable
+ source:
+ type: string
+ example: TradingAPI
+ timeInForce:
+ type: string
+ example: Day
+ gtdDate:
+ type: string
+ format: nullable
+ state:
+ type: string
+ example: Pending
+ rejectionReason:
+ type: string
+ example: None
+ chainId:
+ type: integer
+ format: int32
+ example: 1069605761
+ creationTime:
+ type: string
+ example: 2022-07-19T15:53:47.915000-04:00
+ updateTime:
+ type: string
+ example: 2022-07-19T15:53:47.939000-04:00
+ notes:
+ type: string
+ example: None
+ primaryRoute:
+ type: string
+ example: AUTO
+ secondaryRoute:
+ type: string
+ example: AUTO
+ orderRoute:
+ type: string
+ example: MX
+ venueHoldingOrder:
+ type: string
+ example: None
+ comissionCharged:
+ type: integer
+ format: int32
+ example: 0
+ exchangeOrderId:
+ type: string
+ example: None
+ isSignificantShareHolder:
+ type: boolean
+ isInsider:
+ type: boolean
+ isLimitOffsetInDollar:
+ type: boolean
+ userId:
+ type: integer
+ format: int32
+ example: 514603
+ placementCommission:
+ type: string
+ format: nullable
+ legs:
+ type: array
+ items:
+ type: object
+ properties:
+ legId:
+ type: integer
+ format: int32
+ example: 0
+ symbol:
+ type: string
+ example: AC21Oct22C30.00.MX
+ symbolId:
+ type: integer
+ format: int32
+ example: 41790511
+ legRatioQuantity:
+ type: integer
+ format: int32
+ example: 1
+ side:
+ type: string
+ example: BTO
+ avgExecPrice:
+ type: integer
+ format: int32
+ example: 0
+ lastExecPrice:
+ type: string
+ format: nullable
+ strategyType:
+ type: string
+ example: Strangle
+ triggerStopPrice:
+ type: string
+ format: nullable
+ orderGroupId:
+ type: integer
+ format: int32
+ example: 0
+ orderClass:
+ type: string
+ format: nullable
+ isCrossZero:
+ type: boolean
+
+ OptionStrategy:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ underlying_symbol_id:
+ $ref: "#/components/schemas/UniversalSymbol"
+ strategy_type:
+ type: string
+ example: BUTTERFLY
+ number_of_legs:
+ type: number
+ example: 2
+ legs:
+ type: array
+ items:
+ properties:
+ option_symbol_id:
+ type: string
+ example: AAPLC20221111
+ index:
+ type: number
+ example: 1
+ action:
+ type: string
+ example: BUY_TO_OPEN
+ quantity:
+ type: number
+ example: 10
+
+ StrategyQuotes:
+ type: object
+ properties:
+ strategy:
+ $ref: "#/components/schemas/OptionStrategy"
+ open_price:
+ $ref: "#/components/schemas/Price"
+ bid_price:
+ $ref: "#/components/schemas/Price"
+ ask_price:
+ $ref: "#/components/schemas/Price"
+ volatility:
+ type: number
+ example: 0.141
+ greek:
+ type: object
+ properties:
+ delta:
+ type: number
+ example: 0.1
+ gamma:
+ type: number
+ example: 0.1
+ theta:
+ type: number
+ example: 0.1
+ vega:
+ type: number
+ example: 0.1
+ rho:
+ type: number
+ example: 0.1
+ StrategyOrderRecord:
+ description: Strategy order record
+ type: object
+ properties:
+ strategy:
+ $ref: "#/components/schemas/OptionStrategy"
+ status:
+ type: string
+ enum:
+ - PENDING
+ - ACCEPTED
+ - FAILED
+ - REJECTED
+ - CANCELED
+ - PARTIAL_CANCELED
+ - CANCEL_PENDING
+ - EXECUTED
+ - PARTIAL
+ - REPLACE_PENDING
+ - REPLACED
+ - STOPPED
+ - SUSPENDED
+ - EXPIRED
+ - QUEUED
+ - TRIGGERED
+ - ACTIVATED
+ - PENDING_RISK_REVIEW
+ - CONTINGENT_ORDER
+ filled_quantity:
+ type: number
+ example: 10
+ open_quantity:
+ type: number
+ example: 10
+ closed_quantity:
+ type: number
+ example: 10
+ order_type:
+ $ref: "#/components/schemas/OrderType"
+ time_in_force:
+ $ref: "#/components/schemas/TimeInForce"
+ limit_price:
+ $ref: "#/components/schemas/Price"
+ execution_price:
+ $ref: "#/components/schemas/Price"
+ time_placed:
+ $ref: "#/components/schemas/Time"
+ time_updated:
+ $ref: "#/components/schemas/Time"
+
+ SnapTradeHoldingsAccount:
+ description: SnapTradeUser Investment Account
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ brokerage_authorization:
+ $ref: "#/components/schemas/BrokerageAuthorization"
+ portfolio_group:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Registered Retirement Savings Account
+ nullable: true
+ number:
+ type: string
+ example: Q6542138443
+ institution_name:
+ type: string
+ example: Alpaca
+ sync_status:
+ $ref: "#/components/schemas/AccountSyncStatus"
+ meta:
+ type: object
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+
+ SnapTradeHoldingsAccountAccountId:
+ description: A single brokerage account at a financial institution.
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/AccountID"
+ brokerage_authorization:
+ $ref: "#/components/schemas/BrokerageAuthID"
+ portfolio_group:
+ $ref: "#/components/schemas/PortfolioGroupID"
+ name:
+ type: string
+ description: A display name for the account. Either assigned by the user or by the financial institution itself. For certain institutions, SnapTrade appends the institution name to the account name for clarity.
+ example: Robinhood Individual
+ nullable: true
+ number:
+ type: string
+ example: Q6542138443
+ description: The account number assigned by the financial institution.
+ institution_name:
+ type: string
+ description: The name of the financial institution that holds the account.
+ example: Alpaca
+ balance:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/AccountBalance"
+ meta:
+ type: object
+ deprecated: true
+ description: Additional information about the account, such as account type, status, etc. This information is specific to the financial institution and there's no standard format for this data. Please use at your own risk.
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ cash_restrictions:
+ type: array
+ deprecated: true
+ description: This field is deprecated.
+ items:
+ $ref: "#/components/schemas/CashRestriction"
+ created_date:
+ description: Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format indicating when the account was created in SnapTrade. This is _not_ the account opening date at the financial institution.
+ type: string
+ format: date-time
+ example: 2024-07-23T22:50:22.761390Z
+ SnapTradeHoldingsTotalValue:
+ description: The total market value of the account. Note that this field is calculated based on the sum of the values of account positions and cash balances known to SnapTrade. It may not be accurate if the brokerage account has holdings that SnapTrade is not aware of. For example, if the brokerage account holds assets that SnapTrade does not support, the total value may be underreported. To get the brokerage reported total market value of the account, refer to `account.balance.total`.
+ type: object
+ properties:
+ value:
+ type: number
+ example: 32600.71
+ description: Total value denominated in the currency of the `currency` field.
+ nullable: true
+ currency:
+ type: string
+ nullable: true
+ description: The ISO-4217 currency code for the amount.
+ example: USD
+ Balance:
+ description: Holds balance information for a single currency in an account.
+ type: object
+ properties:
+ currency:
+ $ref: "#/components/schemas/Currency"
+ cash:
+ type: number
+ description: The amount of available cash in the account denominated in the currency of the `currency` field.
+ example: 300.71
+ nullable: true
+ buying_power:
+ type: number
+ description: Buying power only applies to margin accounts. For non-margin accounts, buying power should be the same as cash. Please note that this field is not always available for all brokerages.
+ example: 410.71
+ nullable: true
+ ConsumerKey:
+ description: Shared key used to sign requests
+ type: string
+ example: UxrFb4cHdRWlmJKNuJjA6hoaN8uVa6jPGFVUl2UKHuKmurCnaU
+ Currency:
+ description: Describes a currency object.
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ code:
+ type: string
+ description: The ISO-4217 currency code for the currency.
+ example: USD
+ name:
+ type: string
+ description: A human-friendly name of the currency.
+ example: US Dollar
+ Exchange:
+ description: Stock Exchange
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ code:
+ type: string
+ example: TSX
+ mic_code:
+ type: string
+ example: XTSE
+ name:
+ type: string
+ example: Toronto Stock Exchange
+ timezone:
+ type: string
+ example: America/New_York
+ start_time:
+ type: string
+ example: 09:30:00
+ close_time:
+ type: string
+ example: 16:00:00
+ suffix:
+ type: string
+ example: .TO
+ nullable: true
+ USExchange:
+ description: US Stock Exchange
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ code:
+ type: string
+ example: ARCX
+ mic_code:
+ type: string
+ example: ARCA
+ name:
+ type: string
+ example: NYSE ARCA
+ timezone:
+ type: string
+ example: America/New_York
+ start_time:
+ type: string
+ example: 09:30:00
+ close_time:
+ type: string
+ example: 16:00:00
+ suffix:
+ type: string
+ example: None
+ nullable: true
+ allows_cryptocurrency_symbols:
+ type: boolean
+ example: false
+ JWT:
+ description:
+ JWT Token. Used to acess resources in private endpoints available
+ only through the Passiv app
+ type: object
+ properties:
+ token:
+ type: string
+ format: jwt
+ example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImZSbUdsbWFyU1dtZDY5RDkyeGZWbVdCWUxCS0x0QiIsImV4cCI6MTU0MDA1NTMxOSwiZW1haWwiOiJ3b29kQHN5bmNocm92ZXJnZS5jb20iLCJvcmlnX2lhdCI6MTUzNzM3NjkxOX0.ZSn85i3kSBvEP5wuhWOE8_w903N1G1AfiVlD3fmri78
+ LoginRedirectURI:
+ description: Redirect uri upon successful login
+ type: object
+ properties:
+ redirectURI:
+ example: https://app.snaptrade.com/snapTrade/redeemToken?token=this$token1does2ntactu4allyexist==&clientId=example
+ sessionId:
+ type: string
+ MockSignatureResponse:
+ description: Mock Signature Response
+ type: object
+ properties:
+ mockConsumerKey:
+ $ref: "#/components/schemas/ConsumerKey"
+ signedContent:
+ $ref: "#/components/schemas/SignedContent"
+ signature:
+ $ref: "#/components/schemas/Signature"
+ ClientID:
+ description: SnapTrade Client ID (generated and provided to partner by SnapTrade)
+ type: string
+ example: SNAPTRADETEST
+ UserID:
+ description: SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
+ type: string
+ example: snaptrade-user-123
+ UserSecret:
+ description: SnapTrade User Secret (generated when registering user)
+ type: string
+ example: USERSECRET123
+ PerformanceCustom:
+ description: Performance Custom Response Object
+ type: object
+ properties:
+ totalEquityTimeframe:
+ type: array
+ items:
+ $ref: "#/components/schemas/PastValue"
+ contributions:
+ $ref: "#/components/schemas/NetContributions"
+ contributionTimeframe:
+ type: array
+ items:
+ $ref: "#/components/schemas/PastValue"
+ contributionTimeframeCumulative:
+ type: array
+ items:
+ $ref: "#/components/schemas/PastValue"
+ withdrawalTimeframe:
+ type: array
+ items:
+ $ref: "#/components/schemas/PastValue"
+ contributionStreak:
+ type: number
+ example: 5
+ description: Current streak of cosecutive months where contributions were made
+ nullable: true
+ contributionMonthsContributed:
+ type: number
+ example: 10
+ description: Number of months in the timeframe with contributions
+ nullable: true
+ contributionTotalMonths:
+ type: number
+ example: 13
+ description: Total months in timeframe
+ nullable: true
+ dividends:
+ type: array
+ items:
+ $ref: "#/components/schemas/NetDividend"
+ dividendIncome:
+ type: number
+ description: Total dividends received over the timeframe
+ example: 135.97
+ nullable: true
+ monthlyDividends:
+ type: number
+ description: Average dividends received per month over the timeframe
+ example: 26.37
+ nullable: true
+ badTickers:
+ type: array
+ items:
+ type: string
+ example: MAW105
+ nullable: true
+ description:
+ list of tickers which may not be supported or may not have accurate
+ price data
+ dividendTimeline:
+ type: array
+ items:
+ $ref: "#/components/schemas/MonthlyDividends"
+ commissions:
+ type: number
+ example: 3.26
+ description: commissions incurred during the timeframe
+ nullable: true
+ forexFees:
+ type: number
+ example: 5.26
+ description: forex fees incurred during the timeframe
+ nullable: true
+ fees:
+ type: number
+ example: 2.72
+ description: other fees incurred during the timeframe
+ nullable: true
+ rateOfReturn:
+ type: number
+ example: 0.082312367452
+ description:
+ The return rate over the timeframe. Annualized if timeframe is
+ longer than 1 year
+ nullable: true
+ returnRateTimeframe:
+ type: array
+ items:
+ $ref: "#/components/schemas/SubPeriodReturnRate"
+ detailedMode:
+ type: boolean
+ description:
+ Whether the user has detailed mode enabled (more frequent data
+ points for totalEquity and contribution timeframes)
+ SubPeriodReturnRate:
+ type: object
+ properties:
+ periodStart:
+ $ref: "#/components/schemas/ReportingDate"
+ periodEnd:
+ $ref: "#/components/schemas/ReportingDate"
+ rateOfReturn:
+ type: number
+ example: 0.012312367452
+ description: The return rate for the given period
+ nullable: true
+ DividendAtDate:
+ type: object
+ properties:
+ symbol:
+ type: string
+ example: AAPL
+ description: The ticker of the symbol that the dividend came from
+ nullable: true
+ amount:
+ type: number
+ example: 6.82
+ description: The amount received from the dividend
+ nullable: true
+ currency:
+ type: string
+ example: CAD
+ description: The currency of the amount
+ PartnerData:
+ description: SnapTrade Partner metadata
+ type: object
+ properties:
+ redirect_uri:
+ type: string
+ description:
+ URI to redirect user back to after user is done adding brokerage
+ connections
+ example: https://example.com/oauth/snaptrade
+ allowed_brokerages:
+ type: array
+ description: Brokerages that can be accessed by partners
+ items:
+ $ref: "#/components/schemas/Brokerage"
+ name:
+ type: string
+ description: Name of Snaptrade Partner
+ example: Wealthy Chimpmunk
+ slug:
+ type: string
+ description: Slug of Snaptrade Partner
+ example: WEALTHYCHIPMUNK
+ logo_url:
+ type: string
+ description: URL to partner's logo
+ example: https://example.com/logo.png
+ pin_required:
+ type: boolean
+ description: Shows if pin is required by users to access connection page
+ example: false
+ can_access_trades:
+ type: boolean
+ description: Shows if users of Snaptrade partners can access trade endpoints
+ example: true
+ can_access_holdings:
+ type: boolean
+ description: Shows if Snaptrade partners can get user holdings data
+ example: true
+ can_access_account_history:
+ type: boolean
+ description: Shows if Snaptrade partners can get users account history data
+ example: true
+ can_access_reference_data:
+ type: boolean
+ description: Shows if Snaptrade partners can get users holdings data
+ example: true
+ can_access_portfolio_management:
+ type: boolean
+ description:
+ Shows if users Snaptrade partners can access portfolio group
+ management features
+ example: true
+ can_access_orders:
+ type: boolean
+ description: Shows if Snaptrade partners can get users account order history
+ example: true
+ Position:
+ description: Describes a single stock/ETF/crypto/mutual fund position in an account.
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/PositionSymbol"
+ units:
+ description: The number of shares of the position. This can be fractional or integer units.
+ type: number
+ example: 40
+ nullable: true
+ price:
+ type: number
+ example: 113.15
+ description: Last known market price for the symbol. The freshness of this price depends on the brokerage. Some brokerages provide real-time prices, while others provide delayed prices. It is recommended that you rely on your own third-party market data provider for most up to date prices.
+ nullable: true
+ open_pnl:
+ type: number
+ description: The profit or loss on the position since it was opened. This is calculated as the difference between the current market value of the position and the total cost of the position. It is recommended to calculate this value using the average purchase price and the current market price yourself, instead of relying on this field.
+ example: 0.44
+ nullable: true
+ fractional_units:
+ deprecated: true
+ description:
+ Deprecated, use the `units` field for both fractional and integer
+ units going forward
+ type: number
+ nullable: true
+ example: 1.44
+ average_purchase_price:
+ type: number
+ nullable: true
+ example: 108.3353
+ description:
+ Cost basis _per share_ of this position.
+ RedirectTokenandPin:
+ description: Response when register user is successful
+ type: object
+ properties:
+ token:
+ type: string
+ example: myDAIBCP/EYqSmMByhMRB65aMa%2BdYhu2xRsGQe0sDd9SgZXMbdRh3eBaTh/bLViVGQoil6p9ytUUVhkqWalejOqCNVkXXTk/iNPTPaFCeh9%2B
+ pin:
+ type: string
+ example: usERdeFiP@1in9
+ Signature:
+ description: >
+ Steps to generate a signature
+ * Prepare signed content (see SignedContent schema)
+ * Sign content prepared above with HMAC-SHA256 using the UTF-8 encoding
+ * Return base64 encoding of sign content along with headers
+ Note: Use the shared consumer key provided by SnapTrade to signed the request
+ Example python code
+
+ ```
+
+ import hmac
+
+ import json
+
+ from base64 import b64encode
+
+ from hashlib import sha256
+
+ from urllib.parse import urlencode
+
+ consumer_key = "UxrFb4cHdRWlmJKNuJjA6hoaN8uVa6jPGFVUl2UKHuKmurCnaU".encode()
+
+ request_data = {'userId': 'snaptrade-user-123', 'userSecret': 'CHRIS.P.BACON'}
+
+ request_path = "/api/v1/snapTrade/mockSignature"
+
+ request_query = "clientId=SNAPTRADETEST×tamp=1635790389"
+
+ sig_object = {"content": request_data, "path": request_path, "query": request_query}
+
+ sig_content = json.dumps(sig_object, separators=(",", ":"), sort_keys=True)
+
+ sig_digest = hmac.new(consumer_key, sig_content.encode(), sha256).digest()
+
+ signature = b64encode(sig_digest).decode()
+
+ ```
+ type: string
+ example: QJPQgW0Y8mWbG9Whw/fhCYofIgSo/UAo2AIc1bBPMnY=
+ SignedContent:
+ description: >
+ Signed content requires 3 key-value pairs
+
+ * content -> Content included in request body, set to null if no content is included. Sort keys in content alphabetically
+
+ * path -> Url path of request submitted
+
+ * query -> Query params included in requests
+
+ After preparing the key-value pairs, sort them alphabetically and convert them
+
+ into a string.
+
+ Note:
+
+ Remove any extra whitespace characters and delimiters from the signed content.
+
+ For example, some JSON rendering engines will produce output like this:
+ -- `{"blue": "moon", "hello": "world"}`
+ To produce the correct signature, the JSON should be processed to look like this:
+ -- `{"blue":"moon","hello":"world"}`
+ type: string
+ example: '{"content":{"userId":"snaptrade-user-123","userSecret":"CHRIS.P.BACON"},"path":"/api/v1/snapTrade/mockSignature","query":"clientId=SNAPTRADETEST×tamp=1635790389"}'
+ SnapTradeRegisterUserRequestBody:
+ description: Data required to register a user via SnapTrade Partner
+ type: object
+ properties:
+ userId:
+ $ref: "#/components/schemas/SnapTradeUserID"
+ SnapTradeLoginUserRequestBody:
+ description: Data to login a user via SnapTrade Partner
+ type: object
+ properties:
+ broker:
+ description: Slug of the brokerage to connect the user to. See [this document](https://snaptrade.notion.site/SnapTrade-Brokerage-Integrations-f83946a714a84c3caf599f6a945f0ead) for a list of supported brokerages and their slugs.
+ type: string
+ example: ALPACA
+ immediateRedirect:
+ description: When set to True, user will be redirected back to the partner's site instead of the connection portal
+ type: boolean
+ example: true
+ customRedirect:
+ description: URL to redirect the user to after the user connects their brokerage account
+ type: string
+ example: https://snaptrade.com
+ reconnect:
+ description: The UUID of the brokerage connection to be reconnected. This parameter should be left empty unless you are reconnecting a disabled connection. See ‘Reconnecting Accounts’ for more information.
+ type: string
+ example: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ connectionType:
+ description: Sets whether the connection should be read or trade
+ type: string
+ enum:
+ - read
+ - trade
+ connectionPortalVersion:
+ description: Sets the version of the connection portal to render, with a default to 'v3'
+ type: string
+ enum:
+ - v2
+ - v3
+ SnapTradeUserID:
+ description: SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
+ type: string
+ example: snaptrade-user-123
+ SnapTradeUserSecret:
+ description: SnapTrade User Secret randomly generated by SnapTrade. This is privileged information and if compromised, should be rotated via the SnapTrade API.
+ type: string
+ example: h81@cx1lkalablakwjaltkejraj11=
+ Symbol:
+ description: Symbol
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ symbol:
+ type: string
+ example: VAB.TO
+ raw_symbol:
+ type: string
+ example: VAB
+ name:
+ type: string
+ example: Vanguard Canadian Aggregate Bond Index ETF
+ currency:
+ $ref: "#/components/schemas/Currency"
+ exchange:
+ $ref: "#/components/schemas/Exchange"
+ type:
+ $ref: "#/components/schemas/SecurityType"
+ figi_code:
+ type: string
+ example: BBG000B9XRY4
+ nullable: true
+ figi_instrument:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/FigiInstrument"
+ Timestamp:
+ externalDocs:
+ url: https://en.wikipedia.org/wiki/Unix_time
+ description: Unix Epoch time
+ type: integer
+ example: 1635790389
+ UserIDandSecret:
+ description: Response when register user is successful
+ type: object
+ properties:
+ userId:
+ $ref: "#/components/schemas/SnapTradeUserID"
+ userSecret:
+ $ref: "#/components/schemas/SnapTradeUserSecret"
+ UserList:
+ description: List of registered SnapTrade users
+ type: array
+ items:
+ type: string
+ example:
+ - user1
+ - user2
+ - user3
+ DeleteUserResponse:
+ description: Response when delete user is successful
+ type: object
+ properties:
+ status:
+ type: string
+ example: deleted
+ description: Delete status
+ userId:
+ $ref: "#/components/schemas/SnapTradeUserID"
+ BrokerageAuthorizationType:
+ type: object
+ properties:
+ type:
+ type: string
+ enum:
+ - read
+ - trade
+ BrokerageAuthorizationTypeReadOnly:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ type:
+ type: string
+ enum:
+ - read
+ - trade
+ auth_type:
+ type: string
+ enum:
+ - OAUTH
+ - SCRAPE
+ - UNOFFICIAL_API
+ - TOKEN
+ brokerage:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Questrade
+ description: Full name of the brokerage.
+ slug:
+ type: string
+ example: QUESTRADE
+ description:
+ A unique identifier for that brokerage. It is usually the name of the brokerage in
+ capital letters and will never change.
+ Brokerage:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Questrade
+ description: Full name of the brokerage.
+ display_name:
+ type: string
+ example: Questrade
+ description: A display-friendly name of the brokerage.
+ description:
+ type: string
+ example: Questrade is an online brokerage firm and wealth management firm based in Canada. It is Canada's largest discount broker.
+ aws_s3_logo_url:
+ type: string
+ format: url
+ example: https://www.snaptrade.com/questrade.logo
+ aws_s3_square_logo_url:
+ type: string
+ format: url
+ example: https://www.snaptrade.com/questrade.logo
+ nullable: true
+ open_url:
+ type: string
+ format: url
+ example: https://www.brokerage.com
+ nullable: true
+ slug:
+ type: string
+ example: QUESTRADE
+ description:
+ A unique identifier for that brokerage. It is usually the name of the brokerage in
+ capital letters and will never change.
+ url:
+ type: string
+ format: url
+ example: https://www.questrade.com/
+ enabled:
+ type: boolean
+ example: true
+ maintenance_mode:
+ type: boolean
+ example: true
+ allows_fractional_units:
+ type: boolean
+ nullable: true
+ example: true
+ allows_trading:
+ type: boolean
+ nullable: true
+ example: true
+ has_reporting:
+ type: boolean
+ nullable: true
+ example: true
+ is_real_time_connection:
+ type: boolean
+ example: true
+ allows_trading_through_snaptrade_api:
+ type: boolean
+ nullable: true
+ example: true
+ is_scraping_integration:
+ type: boolean
+ example: true
+ default_currency:
+ $ref: "#/components/schemas/Id"
+ brokerage_type:
+ $ref: "#/components/schemas/BrokerageType"
+ exchanges:
+ description: List of exchange ID supported by brokerage
+ type: array
+ items: {}
+ example:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ BrokerageAuthorization:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ created_date:
+ $ref: "#/components/schemas/Time"
+ updated_date:
+ $ref: "#/components/schemas/Time"
+ brokerage:
+ $ref: "#/components/schemas/Brokerage"
+ name:
+ description: Connection Name
+ type: string
+ example: Connection-1
+ type:
+ type: string
+ example: trade
+ disabled:
+ type: boolean
+ example: false
+ disabled_date:
+ description: Disabled date
+ type: string
+ nullable: true
+ example: 2022-01-21T15:11:19.217000-05:00
+ meta:
+ description: Additional data about brokerage authorization
+ type: object
+ example:
+ identifier: 123456
+ BrokerageAuthorizationRefreshConfirmation:
+ type: object
+ properties:
+ detail:
+ description: Refresh confirmation details
+ type: string
+ example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf scheduled for refresh
+ BrokerageAuthorizationDisabledConfirmation:
+ type: object
+ properties:
+ detail:
+ description: Connection disabled confirmation
+ type: string
+ example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf has been disabled
+ SessionEvent:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ session_event_type:
+ type: string
+ enum:
+ - OAUTH_REDIRECT
+ - DISCLAIMER_ACCEPTED
+ - BROKERAGE_CONNECTION_INITIATED
+ - BROKERAGE_RECONNECT_INITIATED
+ - BROKERAGE_AUTHENTICATION
+ - OAUTH_BROKERAGE_AUTHENTICATION
+ - MFA_REQUESTED
+ - MFA_SUBMITTED
+ - MFA_CHOICE_REQUESTED
+ - MFA_CHOICE_SUBMITTED
+ - CONNECTION_SUCCESSFUL
+ - CONNECTION_FAILED
+ - PARTNER_REDIRECT
+ - CONNECTION_ABORTED
+ - SESSION_STARTED
+ session_id:
+ $ref: "#/components/schemas/Id"
+ user_id:
+ $ref: "#/components/schemas/SnapTradeUserID"
+ created_date:
+ $ref: "#/components/schemas/Time"
+ brokerage_status_code:
+ type: integer
+ nullable: true
+ example: 400
+ brokerage_authorization_id:
+ $ref: "#/components/schemas/Id"
+ BrokerageSymbol:
+ description: Brokerage symbol
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ symbol:
+ allOf:
+ - $ref: "#/components/schemas/UniversalSymbol"
+ nullable: true
+ brokerage_authorization:
+ $ref: "#/components/schemas/BrokerageAuthorization"
+ description:
+ type: string
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ allows_fractional_units:
+ type: boolean
+ example: true
+ nullable: true
+ option_symbol:
+ allOf:
+ - $ref: "#/components/schemas/OptionsSymbol"
+ nullable: true
+ OptionBrokerageSymbol:
+ description: Option Brokerage symbol
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ description:
+ type: string
+ example: SPY CALL 7/17 200
+ option_symbol:
+ $ref: "#/components/schemas/OptionsSymbol"
+ PositionSymbol:
+ description: Symbol returned in position object
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ description:
+ type: string
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ local_id:
+ type: string
+ example: "3291231"
+ nullable: true
+ is_quotable:
+ type: boolean
+ example: true
+ is_tradable:
+ type: boolean
+ example: true
+ CalculatedTrade:
+ description: Array of trades to make to rebalance portfolio
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ trades:
+ type: array
+ items:
+ $ref: "#/components/schemas/Trade"
+ OptionChain:
+ description: chain of options
+ type: array
+ items:
+ type: object
+ properties:
+ expiryDate:
+ type: string
+ example: 2022-07-08T00:00:00.000000-04:00
+ description:
+ type: string
+ example: APPLE INC
+ listingExchange:
+ type: string
+ example: OPRA
+ optionExerciseType:
+ type: string
+ example: American
+ chainPerRoot:
+ type: array
+ items:
+ type: object
+ properties:
+ optionRoot:
+ type: string
+ example: AAPL
+ chainPerStrikePrice:
+ type: array
+ items:
+ type: object
+ properties:
+ strikePrice:
+ type: integer
+ format: int32
+ example: 70
+ nullable: true
+ callSymbolId:
+ type: integer
+ format: int32
+ example: 42816081
+ nullable: true
+ putSymbolId:
+ type: integer
+ format: int32
+ example: 42816129
+ nullable: true
+ multiplier:
+ type: integer
+ format: int32
+ example: 100
+ Email:
+ type: string
+ format: email
+ example: ops@snaptrade.com
+ ExchangeRatePairs:
+ description: The exchange rate of a pair of currencies
+ type: object
+ properties:
+ src:
+ $ref: "#/components/schemas/Currency"
+ dst:
+ $ref: "#/components/schemas/Currency"
+ exchange_rate:
+ type: number
+ example: 1.32
+ ExcludedAsset:
+ description: An excluded asset in a portfolio group
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ Id:
+ type: string
+ format: uuid
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ ModelAssetClass:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Bonds
+ ModelAssetClassDetails:
+ type: object
+ properties:
+ model_asset_class:
+ $ref: "#/components/schemas/ModelAssetClass"
+ model_asset_class_target:
+ type: array
+ items:
+ $ref: "#/components/schemas/ModelAssetClassTarget"
+ ModelAssetClassTarget:
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ ModelPortfolio:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: SnapTrade 5x Aggressive Growth Fund
+ model_type:
+ description:
+ "Enum definitions -> [-1: Unassigned, 0: Security Model Portfolio,
+ 1: Asset Class Portfolio]"
+ type: integer
+ enum:
+ - -1
+ - 0
+ - 1
+ default: -1
+ ModelPortfolioAssetClass:
+ type: object
+ properties:
+ model_asset_class:
+ $ref: "#/components/schemas/ModelAssetClass"
+ percent:
+ type: integer
+ minimum: 0
+ maximum: 100
+ example: 100
+ ModelPortfolioDetails:
+ type: object
+ properties:
+ model_portfolio:
+ $ref: "#/components/schemas/ModelPortfolio"
+ model_portfolio_security:
+ type: array
+ items:
+ $ref: "#/components/schemas/ModelPortfolioSecurity"
+ model_portfolio_asset_class:
+ type: array
+ items:
+ $ref: "#/components/schemas/ModelPortfolioAssetClass"
+ ModelPortfolioSecurity:
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ percent:
+ type: integer
+ minimum: 0
+ maximum: 100
+ example: 100
+ MonthlyDividends:
+ type: object
+ properties:
+ date:
+ $ref: "#/components/schemas/ReportingDate"
+ dividends:
+ type: array
+ items:
+ $ref: "#/components/schemas/DividendAtDate"
+ NetContributions:
+ type: object
+ properties:
+ date:
+ $ref: "#/components/schemas/ReportingDate"
+ contributions:
+ type: number
+ example: 524.74
+ nullable: true
+ currency:
+ type: string
+ example: CAD
+ NetDividend:
+ description: Object representing total dividends received during a timeframe
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ amount:
+ type: number
+ example: 165.05
+ nullable: true
+ currency:
+ type: string
+ example: USD
+ PastValue:
+ type: object
+ properties:
+ date:
+ $ref: "#/components/schemas/ReportingDate"
+ value:
+ type: number
+ example: 52.74
+ currency:
+ type: string
+ example: CAD
+ Percent:
+ type: number
+ minimum: 0
+ maximum: 100
+ example: 90
+ PortfolioGroupID:
+ description: Portfolio Group ID. Portfolio Groups have been deprecated. Please contact support if you have a usecase for it.
+ deprecated: true
+ type: string
+ format: uuid
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ PortfolioGroup:
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Combined Retirement Portfolio
+ PortfolioGroupInfo:
+ description: Summary of all relevant information about a portfolio group.
+ type: object
+ properties:
+ symbols:
+ type: array
+ items:
+ $ref: "#/components/schemas/UniversalSymbol"
+ quotable_symbols:
+ type: array
+ items:
+ $ref: "#/components/schemas/UniversalSymbol"
+ balances:
+ type: array
+ items:
+ $ref: "#/components/schemas/Balance"
+ positions:
+ type: array
+ items:
+ $ref: "#/components/schemas/Position"
+ target_positions:
+ type: array
+ items:
+ $ref: "#/components/schemas/TargetAsset"
+ ideal_positions:
+ type: array
+ items:
+ $ref: "#/components/schemas/Position"
+ excluded_positions:
+ type: array
+ items:
+ $ref: "#/components/schemas/ExcludedAsset"
+ calculated_trades:
+ type: array
+ items:
+ $ref: "#/components/schemas/CalculatedTrade"
+ brokerage_authorizations:
+ type: array
+ items:
+ $ref: "#/components/schemas/BrokerageAuthorization"
+ accuracy:
+ type: number
+ example: 0.962
+ settings:
+ $ref: "#/components/schemas/PortfolioGroupSettings"
+ PortfolioGroupPosition:
+ description: Details of a security held
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ price:
+ type: number
+ example: 24.81
+ description: Last known market price for the symbol
+ nullable: true
+ units:
+ type: integer
+ example: 15
+ PortfolioGroupSettings:
+ type: object
+ properties:
+ buyOnly:
+ type: boolean
+ example: true
+ cash_optimizer:
+ type: boolean
+ example: true
+ notifyFrequency:
+ type: string
+ example: 7 00:00:00
+ driftThreshold:
+ $ref: "#/components/schemas/Percent"
+ preferred_currency:
+ $ref: "#/components/schemas/Currency"
+ ReportingDate:
+ description:
+ Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ type: string
+ example: "2022-01-24"
+ format: date
+ ReportingFrequency:
+ description: Optional frequency for the rate of return chart (defaults to
+ monthly). Possible values are weekly, monthly, quarterly, yearly.
+ type: string
+ example: monthly
+ Status:
+ description: Status of API
+ type: object
+ properties:
+ version:
+ type: integer
+ example: 151
+ timestamp:
+ type: string
+ example: 2022-11-04T01:47:00.377969Z
+ online:
+ type: boolean
+ example: true
+ SymbolQuery:
+ description: Symbol query for searching for symbols
+ type: object
+ properties:
+ substring:
+ type: string
+ example: apple
+ SyncStatusDate:
+ description:
+ Date in YYYY-MM-DD format or null
+ type: string
+ example: "2022-01-24"
+ format: date
+ nullable: true
+ HoldingsSyncStatusDate:
+ description:
+ Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
+ type: string
+ example: "2024-06-28 18:42:46.561408+00:00"
+ format: datetime
+ nullable: true
+ TargetAsset:
+ description: Target percentage of a certain asset
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ percent:
+ $ref: "#/components/schemas/Percent"
+ is_supported:
+ type: boolean
+ example: true
+ is_excluded:
+ type: boolean
+ example: true
+ meta:
+ type: object
+ nullable: true
+ TargetAssetList:
+ description: Target percentage of a certain asset
+ type: array
+ items:
+ $ref: "#/components/schemas/TargetAsset"
+ Trade:
+ description: A trade object
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ account:
+ $ref: "#/components/schemas/Account"
+ symbol:
+ $ref: "#/components/schemas/BrokerageSymbol"
+ universal_symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ action:
+ type: string
+ enum:
+ - BUY
+ - SELL
+ example: BUY
+ units:
+ type: integer
+ example: 6
+ price:
+ type: number
+ example: 24.81
+ sequence:
+ type: integer
+ example: 1
+ TradeExecutionStatus:
+ description: Execution status of a trade
+ type: object
+ properties:
+ symbol:
+ $ref: "#/components/schemas/BrokerageSymbol"
+ universal_symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ trade:
+ $ref: "#/components/schemas/Trade"
+ state:
+ type: string
+ description: Execution state of a trade
+ enum:
+ - Executed
+ - Canceled
+ - Rejected
+ - Failed
+ - Not Executed
+ example: Executed
+ filled_units:
+ type: integer
+ description: Number of filled units
+ example: 3
+ action:
+ type: string
+ description: Action of executed trade
+ enum:
+ - BUY
+ - SELL
+ example: SELL
+ price:
+ type: number
+ description: Price of execution
+ example: 23.44
+ commissions:
+ type: number
+ description: Fees paid from executing trade
+ example: 23.44
+ meta:
+ type: object
+ description: Other misc. data
+ example:
+ canceledUnits: 2
+ TradeImpact:
+ description: Impact of a group of trade
+ type: object
+ properties:
+ account:
+ $ref: "#/components/schemas/Account"
+ currency:
+ $ref: "#/components/schemas/Currency"
+ remaining_cash:
+ type: number
+ description: Remaining balance after executing all trades
+ example: 1.01
+ estimated_commissions:
+ type: number
+ description: Total estimated commissions across all trades to make
+ example: 10.05
+ forex_fees:
+ type: number
+ description: Estimated forex fees to pay to excute trades
+ example: 2.01
+ ManualTrade:
+ description: A manual trade object
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ account:
+ type: string
+ example: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ order_type:
+ $ref: "#/components/schemas/OrderTypeStrict"
+ time_in_force:
+ $ref: "#/components/schemas/TimeInForce"
+ symbol:
+ $ref: "#/components/schemas/ManualTradeSymbol"
+ action:
+ $ref: "#/components/schemas/ActionStrict"
+ units:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Units"
+ price:
+ $ref: "#/components/schemas/Price"
+ ManualTradeSymbol:
+ description: Manual trade symbol object
+ type: object
+ properties:
+ brokerage_symbol_id:
+ $ref: "#/components/schemas/Id"
+ universal_symbol_id:
+ $ref: "#/components/schemas/Id"
+ currency:
+ $ref: "#/components/schemas/Currency"
+ local_id:
+ type: string
+ example: '1048101'
+ description:
+ type: string
+ example: Metaverse Global ETF
+ nullable: true
+ symbol:
+ type: string
+ example: MVGP.U.TO
+ ManualTradeBalance:
+ description: Balance
+ type: object
+ properties:
+ account:
+ $ref: "#/components/schemas/Account"
+ currency:
+ $ref: "#/components/schemas/Currency"
+ cash:
+ $ref: "#/components/schemas/Cash"
+ ManualTradeAndImpact:
+ description: Manual Trade and Impact object
+ type: object
+ properties:
+ trade:
+ $ref: "#/components/schemas/ManualTrade"
+ trade_impacts:
+ type: array
+ items:
+ $ref: "#/components/schemas/ManualTrade"
+ combined_remaining_balance:
+ $ref: "#/components/schemas/ManualTradeBalance"
+ SymbolsQuotes:
+ description: Symbols and Tickers Quotes object
+ type: array
+ items:
+ properties:
+ symbol:
+ $ref: "#/components/schemas/UniversalSymbol"
+ bid_price:
+ type: number
+ example: 8.43
+ ask_price:
+ type: number
+ example: 8.43
+ last_trade_price:
+ type: number
+ example: 8.74
+ bid_size:
+ type: number
+ example: 260
+ ask_size:
+ type: number
+ example: 344
+ ManualTradeForm:
+ description: Manual Trade Form
+ type: object
+ properties:
+ account_id:
+ $ref: "#/components/schemas/Id"
+ action:
+ $ref: "#/components/schemas/ActionStrict"
+ order_type:
+ $ref: "#/components/schemas/OrderTypeStrict"
+ price:
+ $ref: "#/components/schemas/Price"
+ stop:
+ $ref: "#/components/schemas/StopPrice"
+ time_in_force:
+ $ref: "#/components/schemas/TimeInForceStrict"
+ units:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/Units"
+ universal_symbol_id:
+ $ref: "#/components/schemas/Id"
+ notional_value:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/NotionalValue"
+ ValidatedTradeBody:
+ description: Validated Trade Form
+ type: object
+ properties:
+ wait_to_confirm:
+ nullable: true
+ example: true
+ type: boolean
+ description: Optional, defaults to true. Determines if a wait is performed to check on order status. If false, latency will be reduced but orders returned will be more likely to be of status PENDING as we will not wait to check on the status before responding to the request
+ Cash:
+ description: Cash
+ type: number
+ example: 1.11
+ nullable: true
+ OrderTypeStrict:
+ description: Order Type
+ type: string
+ enum:
+ - Limit
+ - Market
+ - StopLimit
+ - StopLoss
+ OrderType:
+ type: string
+ nullable: true
+ description: Order Type potential values include (but are not limited to)
+ - Limit
+ - Market
+ - StopLimit
+ - StopLoss
+ SnapTradeAPIDisclaimerAcceptStatus:
+ description: Status of user acceptance of SnapTrade API disclaimer
+ type: object
+ properties:
+ accepted:
+ type: boolean
+ timestamp:
+ type: string
+ example: 2022-01-21T15:11:19.217000-05:00
+ TimeInForceStrict:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ type: string
+ enum:
+ - FOK
+ - Day
+ - GTC
+ TimeInForce:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ * GTD - Good Til Date
+ type: string
+ ActionStrict:
+ description: Trade Action
+ type: string
+ enum:
+ - BUY
+ - SELL
+ Action:
+ type: string
+ description: Trade Action potential values include (but are not limited to)
+ - BUY
+ - SELL
+ - BUY_COVER
+ - SELL_SHORT
+ - BUY_OPEN
+ - BUY_CLOSE
+ - SELL_OPEN
+ - SELL_CLOSE
+ Units:
+ description: Trade Units. Cannot work with notional value.
+ type: number
+ OpenUnits:
+ description: Trade Units
+ type: number
+ nullable: true
+ CancelledUnits:
+ description: Trade Units
+ type: number
+ nullable: true
+ FilledUnits:
+ description: Trade Units
+ type: number
+ nullable: true
+ Price:
+ description: Trade Price if limit or stop limit order
+ type: number
+ nullable: true
+ example: 31.33
+ NotionalValue:
+ description: Dollar amount to trade. Cannot work with units. Can only work for market order types and day for time in force. **Only available for Alpaca, Alpaca Paper, and Robinhood.**
+ oneOf:
+ - type: string
+ - type: number
+ example: 100.00
+ StopPrice:
+ description:
+ Stop Price. If stop loss or stop limit order, the price to trigger
+ the stop
+ type: number
+ example: 31.33
+ nullable: true
+ UniversalActivity:
+ description: A transaction or activity from an institution
+ type: object
+ properties:
+ id:
+ type: string
+ example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ account:
+ $ref: "#/components/schemas/AccountSimple"
+ amount:
+ type: number
+ example: 263.82
+ nullable: true
+ currency:
+ $ref: "#/components/schemas/Currency"
+ description:
+ type: string
+ example: WALT DISNEY UNIT DIST ON 21 SHS REC 12/31/21 PAY 01/06/22
+ fee:
+ type: number
+ example: 0
+ fx_rate:
+ type: number
+ example: 1.032
+ nullable: true
+ description: The forex conversion rate involved in the transaction if provided by the brokerage. Used in cases where securities of one currency are purchased in a different currency, and the forex conversion is automatic. In those cases, price, amount and fee will be in the top level currency (activity -> currency)
+ institution:
+ type: string
+ example: SnapTrade Investr
+ option_type:
+ type: string
+ example: BUY_TO_OPEN
+ description: If an option transaction, then it's type (BUY_TO_OPEN,
+ SELL_TO_CLOSE, etc), otherwise empty string
+ price:
+ type: number
+ example: 0.4
+ settlement_date:
+ type: string
+ example: 2022-01-06T05:00:00Z
+ external_reference_id:
+ type: string
+ nullable: true
+ description: Reference ID from brokerage used to identify related transactions. For example if an order comprises of several transactions (buy, fee, fx), they can be grouped if they share the same external_reference_id
+ example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ symbol:
+ $ref: "#/components/schemas/Symbol"
+ option_symbol:
+ $ref: "#/components/schemas/OptionsSymbol"
+ trade_date:
+ type: string
+ example: 2022-01-06T05:00:00Z
+ nullable: true
+ type:
+ type: string
+ description:
+ Potential values include (but are not limited to)
+ - DIVIDEND
+ - BUY
+ - SELL
+ - CONTRIBUTION
+ - WITHDRAWAL
+ - EXTERNAL_ASSET_TRANSFER_IN
+ - EXTERNAL_ASSET_TRANSFER_OUT
+ - INTERNAL_CASH_TRANSFER_IN
+ - INTERNAL_CASH_TRANSFER_OUT
+ - INTERNAL_ASSET_TRANSFER_IN
+ - INTERNAL_ASSET_TRANSFER_OUT
+ - INTEREST
+ - REBATE
+ - GOV_GRANT
+ - TAX
+ - FEE
+ - REI
+ - FXT
+ units:
+ type: number
+ description: Usually but not necessarily an integer
+ example: 5
+ FigiInstrument:
+ description: Open FIGI Identifiers
+ type: object
+ properties:
+ figi_code:
+ type: string
+ example: BBG000B9Y5X2
+ nullable: true
+ figi_share_class:
+ type: string
+ example: BBG001S5N8V8
+ nullable: true
+ UniversalSymbol:
+ description: Universal symbol
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ symbol:
+ type: string
+ example: VAB.TO
+ raw_symbol:
+ type: string
+ example: VAB
+ description:
+ type: string
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ nullable: true
+ currency:
+ $ref: "#/components/schemas/Currency"
+ exchange:
+ $ref: "#/components/schemas/Exchange"
+ type:
+ $ref: "#/components/schemas/SecurityType"
+ currencies:
+ type: array
+ items:
+ $ref: "#/components/schemas/Currency"
+ figi_code:
+ type: string
+ example: BBG000B9XRY4
+ nullable: true
+ figi_instrument:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/FigiInstrument"
+ required:
+ - id
+ - symbol
+ - raw_symbol
+ - currency
+ - type
+ - currencies
+ UnderlyingSymbol:
+ description: Underlying Symbol
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ symbol:
+ type: string
+ example: SPY
+ description:
+ type: string
+ example: SPDR S&P 500 ETF Trust
+ nullable: true
+ currency:
+ $ref: "#/components/schemas/Currency"
+ exchange:
+ $ref: "#/components/schemas/USExchange"
+ type:
+ $ref: "#/components/schemas/SecurityType"
+ currencies:
+ type: array
+ items:
+ $ref: "#/components/schemas/Currency"
+ figi_code:
+ type: string
+ example: BBG000B9XRY4
+ nullable: true
+ figi_instrument:
+ nullable: true
+ allOf:
+ - $ref: "#/components/schemas/FigiInstrument"
+ OptionsSymbol:
+ description: Options Symbol
+ type: object
+ required:
+ - id
+ - ticker
+ - option_type
+ - strike_price
+ - expiration_date
+ - underlying_symbol
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ ticker:
+ type: string
+ example: SPY 220819P00200000
+ option_type:
+ type: string
+ enum:
+ - CALL
+ - PUT
+ example: CALL
+ strike_price:
+ type: number
+ example: 200
+ expiration_date:
+ type: string
+ format: datetime
+ example: "2017-07-17T15:13:07.177712+00:00"
+ is_mini_option:
+ type: boolean
+ example: false
+ underlying_symbol:
+ $ref: "#/components/schemas/UnderlyingSymbol"
+ local_id:
+ type: string
+ example: "40817960"
+ exchange_id:
+ type: string
+ format: uuid
+
+ OptionLeg:
+ description: Option Leg
+ type: object
+ properties:
+ action:
+ type: string
+ enum:
+ - BUY_TO_OPEN
+ - BUY_TO_CLOSE
+ - SELL_TO_OPEN
+ - SELL_TO_CLOSE
+ option_symbol_id:
+ type: string
+ description: Obtained from calling options chain endpoint (option_id)
+ example: SPY220819P00200000
+ quantity:
+ type: number
+ example: 1
+ SecurityType:
+ description: Security Type
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ code:
+ type: string
+ example: cs
+ description:
+ type: string
+ example: Common Stock
+ is_supported:
+ type: boolean
+ example: true
+ SnapTradePartnerAPICredential:
+ description: SnapTrade Partner brokerage api credentials
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ brokerage_api_client_id:
+ type: string
+ description: client id of snaptrade's partner brokerage app
+ redirect_uri:
+ type: string
+ example: https://www.example.com/oauth
+ description: Redirect uri for snaptrade's partner brokerage app
+ brokerage_authorization_type:
+ $ref: "#/components/schemas/BrokerageAuthorizationTypeReadOnly"
+ UserSettings:
+ description: User account settings
+ type: object
+ properties:
+ email:
+ $ref: "#/components/schemas/Email"
+ name:
+ type: string
+ example: James Bond
+ receive_cash_notification:
+ type: boolean
+ example: true
+ receive_drift_notification:
+ type: boolean
+ example: true
+ user_trial_activated:
+ type: boolean
+ example: true
+ activated_trial_date:
+ type: string
+ format: dateTime
+ example: "2017-07-17T15:13:07.177712+00:00"
+ demo:
+ type: boolean
+ example: false
+ api_enabled:
+ type: boolean
+ example: false
+ drift_threshold:
+ type: number
+ example: 95
+ preferred_currency:
+ $ref: "#/components/schemas/Currency"
+ Time:
+ description: Time
+ type: string
+ example: 2022-01-21T15:11:19.217000-05:00
+ BrokerageType:
+ description: Type of brokerage
+ type: object
+ properties:
+ id:
+ $ref: "#/components/schemas/Id"
+ name:
+ type: string
+ example: Traditional Brokerage
+ WebhookBase:
+ description: The base webhook content
+ type: object
+ properties:
+ webookId:
+ type: string
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ clientId:
+ type: string
+ example: WEALTHYCHIPMUNK
+ eventTimestamp:
+ type: string
+ example: 2022-01-21T15:11:19.217000-05:00
+ userId:
+ type: string
+ example: external_user@test.com
+ UserErrorLog:
+ description: An API error log for a specific SnapTrade user.
+ type: object
+ properties:
+ requestedAt:
+ type: string
+ example: 2022-01-21T15:11:19.217000-05:00
+ response:
+ type: string
+ statusCode:
+ type: number
+ example: 200
+ queryParams:
+ type: string
+ httpMethod:
+ type: string
+ example: POST
+ endpoint:
+ type: string
+ example: api/v1/snapTrade
+ rsaPublicKey:
+ description: Open SSH RSA public key
+ type: string
+ example: ssh-rsa
+ AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
+ encryptedResponse:
+ description: >
+ This response consists of 2 different components that must be
+ decrypted to obtain the decrypted message
+
+
+ * Decrypting the encryptedSharedKey
+
+ The encrypted shared key is a shared key that was randomly generated by SnapTrade and encrypted using the users SSH public key provided when registering the user
+ It is needed to decrypt the message in step 2.
+
+ To decrypt the shared key, the user should have access to their SSH private key stored locally in their device
+
+ An example Python code on how to decrypt the shared key is shown below
+
+ ```
+ def decrypt_rsa_message(self, encrypted_message):
+ from Crypto.Cipher import PKCS1_OAEP
+ from Crypto.PublicKey import RSA
+ from base64 import b64decode
+
+ f = open('private.pem', 'r')
+ private_key = RSA.import_key(f.read())
+ cipher = PKCS1_OAEP.new(private_key)
+
+ return cipher.decrypt(b64decode(encrypted_message.encode())).decode()
+ ```
+
+ * Decrypting the encryptedMessageData
+
+ The data meant to be returned by an endpoint can be obtained by decrypting the encrypted message
+
+ An encrypted message is a message that is encrypted using AES - MODE OCB with the shared key obtained in step one
+
+ An example code to decrypt the encrypted message is shown below
+
+ ```
+ def decrypt_aes_message(self, shared_key, encrypted_message):
+ from Crypto.Cipher import AES
+ from base64 import b64decode
+
+ encrypted_msg = b64decode(encrypted_message["encryptedMessage"].encode())
+ tag = b64decode(encrypted_message["tag"].encode())
+ nonce = b64decode(encrypted_message["nonce"].encode())
+ cipher = AES.new(shared_key.encode(), AES.MODE_OCB, nonce=nonce)
+
+ return cipher.decrypt_and_verify(encrypted_msg, tag).decode()
+ ```
+ type: object
+ additionalProperties: false
+ properties:
+ encryptedSharedKey:
+ type: string
+ example: 5UEaY9QGzcNTr8y2jGDUI79jY1OdfK9x
+ encryptedMessageData:
+ type: object
+ properties:
+ encryptedMessage:
+ type: string
+ example: 9Xy05vqZOfp0OpW5fLAaDw==
+ tag:
+ type: string
+ example: mWZPkpQh5ktbcz6N7cTRmQ==
+ nonce:
+ type: string
+ example: None
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/header.png b/generator/konfig-integration-tests/sdks/java-additional-null-property/header.png
new file mode 100644
index 0000000000..ce9f5e1d65
Binary files /dev/null and b/generator/konfig-integration-tests/sdks/java-additional-null-property/header.png differ
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/konfig.yaml b/generator/konfig-integration-tests/sdks/java-additional-null-property/konfig.yaml
new file mode 100644
index 0000000000..19df010f87
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/konfig.yaml
@@ -0,0 +1,68 @@
+# yaml-language-server: $schema=https://unpkg.com/konfig-lib@latest/konfig-yaml.schema.json
+
+order:
+ - tag: API Status
+ - tag: Authentication
+ operations:
+ - Authentication_registerSnapTradeUser
+ - Authentication_loginSnapTradeUser
+ - tag: Connections
+ - tag: Account Information
+ operations:
+ - path: /accounts
+ method: get
+ - tag: Trading
+ operations:
+ - Trading_getUserAccountQuotes
+ - Trading_getOrderImpact
+ - Trading_placeOrder
+ - Trading_placeForceOrder
+ - Trading_cancelUserAccountOrder
+filterTags:
+ - Webhooks
+ - Development Tools
+ - Custom Brokerage API Credentials
+filterModels:
+ - SnapTradePartnerAPICredential
+ - WebhookBase
+ - MockSignatureResponse
+filterRequestBodies:
+ - CreateSnapTradeParterAPICredentialsRequestBody
+ - MockSignatureRequestBody
+omitSecurityRequirementsFromTopLevelClient:
+ - PartnerSignature
+ - PartnerTimestamp
+allObjectsHaveAdditionalProperties:
+ requestBody: false
+ exclude:
+ - encryptedResponse
+ - LoginRedirectURI
+ include:
+ - PortfolioGroup
+outputDirectory: /tmp/snaptrade-sdks-out
+infoContactName: SnapTrade
+infoContactUrl: https://snaptrade.com/
+doNotValidateGloballyRequiredSecurity: true
+tagPriority:
+ - Account Information
+readmeHeader:
+ title: SnapTrade
+ image: header.png
+ url: https://snaptrade.com
+useSecurityKeyName: true
+generators:
+ java:
+ version: 5.0.30
+ outputDirectory: sdks/java
+ readmeSnippet: snippets/java.java
+ clientName: Snaptrade
+ apiDocumentationAuthenticationPartial: snippets/javaDocAuthPartial.java
+ clientState:
+ - consumerKey
+ git:
+ host: github.com
+ userId: passiv
+ repoId: snaptrade-sdks/tree/master/sdks/java
+ groupId: com.konfigthis
+ artifactId: snaptrade-java-sdk
+specPath: api.yaml
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/.gitignore b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/.gitignore
new file mode 100644
index 0000000000..6f772bb53a
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/.gitignore
@@ -0,0 +1,28 @@
+*.class
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# exclude jar for gradle wrapper
+!gradle/wrapper/*.jar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+# build files
+**/target
+target
+.gradle
+build
+
+# Ignore IntelliJ files
+.idea
+*.iml
+
+# Mac OS
+.DS_Store
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/.konfigignore b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/.konfigignore
new file mode 100644
index 0000000000..021389aa55
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/.konfigignore
@@ -0,0 +1,2 @@
+src/test/java/com/konfigthis/client/GettingStartedTest.java
+src/main/java/com/konfigthis/client/ApiClientCustom.java
\ No newline at end of file
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/README.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/README.md
new file mode 100644
index 0000000000..f50a756ad9
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/README.md
@@ -0,0 +1,351 @@
+
+
+[![Visit SnapTrade](https://raw.githubusercontent.com/passiv/snaptrade-sdks/HEAD/sdks/java/header.png)](https://snaptrade.com)
+
+# [SnapTrade](https://snaptrade.com)
+
+Connect brokerage accounts to your app for live positions and trading
+
+[![Maven Central](https://img.shields.io/badge/Maven%20Central-v5.0.30-blue)](https://central.sonatype.com/artifact/com.konfigthis/snaptrade-java-sdk/5.0.30)
+[![More Info](https://img.shields.io/badge/More%20Info-Click%20Here-orange)](https://snaptrade.com/)
+
+
+
+## Requirements
+
+Building the API client library requires:
+
+1. Java 1.8+
+2. Maven (3.8.3+)/Gradle (7.2+)
+
+If you are adding this library to an Android Application or Library:
+
+3. Android 8.0+ (API Level 26+)
+
+## Installation
+
+To install the API client library to your local Maven repository, simply execute:
+
+```shell
+mvn clean install
+```
+
+To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
+
+```shell
+mvn clean deploy
+```
+
+Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information.
+
+### Maven users
+
+Add this dependency to your project's POM:
+
+```xml
+
+ com.konfigthis
+ snaptrade-java-sdk
+ 5.0.30
+ compile
+
+```
+
+### Gradle users
+
+Add this dependency to your `build.gradle`:
+
+```groovy
+// build.gradle
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation "com.konfigthis:snaptrade-java-sdk:5.0.30"
+}
+```
+
+### Android users
+
+Make sure your `build.gradle` file as a `minSdk` version of at least 26:
+```groovy
+// build.gradle
+android {
+ defaultConfig {
+ minSdk 26
+ }
+}
+```
+
+Also make sure your library or application has internet permissions in your `AndroidManifest.xml`:
+
+```xml
+
+
+
+
+
+```
+
+### Others
+
+At first generate the JAR by executing:
+
+```shell
+mvn clean package
+```
+
+Then manually install the following JARs:
+
+* `target/snaptrade-java-sdk-5.0.30.jar`
+* `target/lib/*.jar`
+
+## Getting Started
+
+Please follow the [installation](#installation) instruction and execute the following Java code:
+
+```java
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.model.*;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+
+ public static void main(String[] args) {
+ // 1) Initialize default client with clientID and consumerKey
+ Configuration configuration = new Configuration();
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+ Snaptrade snaptrade = new Snaptrade(configuration);
+
+ // 2) Check that the client is able to make a request to the API server
+ Status status = snaptrade.apiStatus.check().execute();
+ System.out.printf("SnapTrade is online: %s\n", status.getOnline());
+
+ // 3) Create a new user on SnapTrade
+ // The userId should be provided by you and refer to permanent value such as a
+ // database row ID
+ UUID userId = UUID.randomUUID();
+ UserIDandSecret userIDandSecret = snaptrade.authentication.registerSnapTradeUser()
+ .userId(userId.toString()).execute();
+
+ new SnapTradeRegisterUserRequestBody().userId(userId.toString());
+ // Note: A user secret is only generated once. It's required to access resources
+ // for certain endpoints
+ System.out.printf("userID: %s, userSecret: %s\n", userIDandSecret.getUserId(),
+ userIDandSecret.getUserSecret());
+
+ // 4) Get a redirect URI. Users will need this to connect their brokerage to the
+ // SnapTrade server
+ Map response = (Map) snaptrade.authentication
+ .loginSnapTradeUser(userIDandSecret.getUserId(),
+ userIDandSecret.getUserSecret())
+ .execute();
+ System.out.println(response.get("redirectURI"));
+
+ // 5) Make a portfolio group and query
+ List portfolioGroupsFromPost = snaptrade.portfolioManagement.create(
+ userIDandSecret.getUserId(), userIDandSecret.getUserSecret()).id(UUID.randomUUID())
+ .name("MyPortfolio").execute();
+ System.out.println(portfolioGroupsFromPost);
+ List portfolioGroups = snaptrade.portfolioManagement.list(userIDandSecret.getUserId(),
+ userIDandSecret.getUserSecret()).execute();
+ System.out.println(portfolioGroups);
+
+ // 7) Query holdings and available brokerages
+ List holdings = snaptrade.accountInformation
+ .getAllUserHoldings(userIDandSecret.getUserId(),
+ userIDandSecret.getUserSecret())
+ .execute();
+ System.out.println(holdings);
+ List accounts = snaptrade.accountInformation.listUserAccounts(userIDandSecret.getUserId(),
+ userIDandSecret.getUserSecret()).execute();
+ System.out.println(accounts);
+ List brokerages = snaptrade.referenceData.listAllBrokerages().execute();
+ System.out.println(brokerages);
+
+ // 8) Deleting a user
+ DeleteUserResponse deleteUserResponse = snaptrade.authentication
+ .deleteSnapTradeUser(userIDandSecret.getUserId()).execute();
+ System.out.println(deleteUserResponse);
+ }
+}
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *https://api.snaptrade.com/api/v1*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*AccountInformationApi* | [**getAllUserHoldings**](docs/AccountInformationApi.md#getAllUserHoldings) | **GET** /holdings | List all accounts for the user, plus balances, positions, and orders for each account.
+*AccountInformationApi* | [**getUserAccountBalance**](docs/AccountInformationApi.md#getUserAccountBalance) | **GET** /accounts/{accountId}/balances | List account balances
+*AccountInformationApi* | [**getUserAccountDetails**](docs/AccountInformationApi.md#getUserAccountDetails) | **GET** /accounts/{accountId} | Return details of a specific investment account
+*AccountInformationApi* | [**getUserAccountOrders**](docs/AccountInformationApi.md#getUserAccountOrders) | **GET** /accounts/{accountId}/orders | List account orders
+*AccountInformationApi* | [**getUserAccountPositions**](docs/AccountInformationApi.md#getUserAccountPositions) | **GET** /accounts/{accountId}/positions | List account positions
+*AccountInformationApi* | [**getUserHoldings**](docs/AccountInformationApi.md#getUserHoldings) | **GET** /accounts/{accountId}/holdings | List account holdings
+*AccountInformationApi* | [**listUserAccounts**](docs/AccountInformationApi.md#listUserAccounts) | **GET** /accounts | List accounts
+*AccountInformationApi* | [**updateUserAccount**](docs/AccountInformationApi.md#updateUserAccount) | **PUT** /accounts/{accountId} | Update details of an investment account
+*ApiStatusApi* | [**check**](docs/ApiStatusApi.md#check) | **GET** / | Get API Status
+*AuthenticationApi* | [**deleteSnapTradeUser**](docs/AuthenticationApi.md#deleteSnapTradeUser) | **DELETE** /snapTrade/deleteUser | Delete SnapTrade user
+*AuthenticationApi* | [**listSnapTradeUsers**](docs/AuthenticationApi.md#listSnapTradeUsers) | **GET** /snapTrade/listUsers | List SnapTrade users
+*AuthenticationApi* | [**loginSnapTradeUser**](docs/AuthenticationApi.md#loginSnapTradeUser) | **POST** /snapTrade/login | Login user & generate connection link
+*AuthenticationApi* | [**registerSnapTradeUser**](docs/AuthenticationApi.md#registerSnapTradeUser) | **POST** /snapTrade/registerUser | Create SnapTrade user
+*AuthenticationApi* | [**resetSnapTradeUserSecret**](docs/AuthenticationApi.md#resetSnapTradeUserSecret) | **POST** /snapTrade/resetUserSecret | Obtain a new user secret for a user
+*ConnectionsApi* | [**detailBrokerageAuthorization**](docs/ConnectionsApi.md#detailBrokerageAuthorization) | **GET** /authorizations/{authorizationId} | Get brokerage authorization details
+*ConnectionsApi* | [**disableBrokerageAuthorization**](docs/ConnectionsApi.md#disableBrokerageAuthorization) | **POST** /authorizations/{authorizationId}/disable | Manually disable a connection for testing
+*ConnectionsApi* | [**listBrokerageAuthorizations**](docs/ConnectionsApi.md#listBrokerageAuthorizations) | **GET** /authorizations | List all brokerage authorizations for the User
+*ConnectionsApi* | [**refreshBrokerageAuthorization**](docs/ConnectionsApi.md#refreshBrokerageAuthorization) | **POST** /authorizations/{authorizationId}/refresh | Refresh holdings for a connection
+*ConnectionsApi* | [**removeBrokerageAuthorization**](docs/ConnectionsApi.md#removeBrokerageAuthorization) | **DELETE** /authorizations/{authorizationId} | Delete brokerage authorization
+*ConnectionsApi* | [**sessionEvents**](docs/ConnectionsApi.md#sessionEvents) | **GET** /sessionEvents | Get all session events for a user
+*OptionsApi* | [**getOptionStrategy**](docs/OptionsApi.md#getOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy | Create options strategy
+*OptionsApi* | [**getOptionsChain**](docs/OptionsApi.md#getOptionsChain) | **GET** /accounts/{accountId}/optionsChain | Get the options chain for a symbol
+*OptionsApi* | [**getOptionsStrategyQuote**](docs/OptionsApi.md#getOptionsStrategyQuote) | **GET** /accounts/{accountId}/optionStrategy/{optionStrategyId} | Get options strategy quotes
+*OptionsApi* | [**listOptionHoldings**](docs/OptionsApi.md#listOptionHoldings) | **GET** /accounts/{accountId}/options | Get account option holdings
+*OptionsApi* | [**placeOptionStrategy**](docs/OptionsApi.md#placeOptionStrategy) | **POST** /accounts/{accountId}/optionStrategy/{optionStrategyId}/execute | Place an option strategy order
+*ReferenceDataApi* | [**getCurrencyExchangeRatePair**](docs/ReferenceDataApi.md#getCurrencyExchangeRatePair) | **GET** /currencies/rates/{currencyPair} | Get exchange rate of a currency pair
+*ReferenceDataApi* | [**getPartnerInfo**](docs/ReferenceDataApi.md#getPartnerInfo) | **GET** /snapTrade/partners | Get metadata related to Snaptrade partner
+*ReferenceDataApi* | [**getSecurityTypes**](docs/ReferenceDataApi.md#getSecurityTypes) | **GET** /securityTypes | List of all security types
+*ReferenceDataApi* | [**getStockExchanges**](docs/ReferenceDataApi.md#getStockExchanges) | **GET** /exchanges | Get exchanges
+*ReferenceDataApi* | [**getSymbols**](docs/ReferenceDataApi.md#getSymbols) | **POST** /symbols | Search for symbols
+*ReferenceDataApi* | [**getSymbolsByTicker**](docs/ReferenceDataApi.md#getSymbolsByTicker) | **GET** /symbols/{query} | Get details of a symbol
+*ReferenceDataApi* | [**listAllBrokerageAuthorizationType**](docs/ReferenceDataApi.md#listAllBrokerageAuthorizationType) | **GET** /brokerageAuthorizationTypes | Get all brokerage authorization types
+*ReferenceDataApi* | [**listAllBrokerages**](docs/ReferenceDataApi.md#listAllBrokerages) | **GET** /brokerages | Get brokerages
+*ReferenceDataApi* | [**listAllCurrencies**](docs/ReferenceDataApi.md#listAllCurrencies) | **GET** /currencies | Get currencies
+*ReferenceDataApi* | [**listAllCurrenciesRates**](docs/ReferenceDataApi.md#listAllCurrenciesRates) | **GET** /currencies/rates | Get currency exchange rates
+*ReferenceDataApi* | [**symbolSearchUserAccount**](docs/ReferenceDataApi.md#symbolSearchUserAccount) | **POST** /accounts/{accountId}/symbols | Search for symbols available in an account
+*TradingApi* | [**cancelUserAccountOrder**](docs/TradingApi.md#cancelUserAccountOrder) | **POST** /accounts/{accountId}/orders/cancel | Cancel open order in account
+*TradingApi* | [**getOrderImpact**](docs/TradingApi.md#getOrderImpact) | **POST** /trade/impact | Check the impact of a trade on an account
+*TradingApi* | [**getUserAccountQuotes**](docs/TradingApi.md#getUserAccountQuotes) | **GET** /accounts/{accountId}/quotes | Get symbol quotes
+*TradingApi* | [**placeForceOrder**](docs/TradingApi.md#placeForceOrder) | **POST** /trade/place | Place a trade with NO validation.
+*TradingApi* | [**placeOrder**](docs/TradingApi.md#placeOrder) | **POST** /trade/{tradeId} | Place order
+*TransactionsAndReportingApi* | [**getActivities**](docs/TransactionsAndReportingApi.md#getActivities) | **GET** /activities | Get transaction history for a user
+*TransactionsAndReportingApi* | [**getReportingCustomRange**](docs/TransactionsAndReportingApi.md#getReportingCustomRange) | **GET** /performance/custom | Get performance information for a specific timeframe
+
+
+## Documentation for Models
+
+ - [Account](docs/Account.md)
+ - [AccountBalance](docs/AccountBalance.md)
+ - [AccountBalanceNullable](docs/AccountBalanceNullable.md)
+ - [AccountHoldings](docs/AccountHoldings.md)
+ - [AccountHoldingsAccount](docs/AccountHoldingsAccount.md)
+ - [AccountOrderRecord](docs/AccountOrderRecord.md)
+ - [AccountOrderRecordStatus](docs/AccountOrderRecordStatus.md)
+ - [AccountSimple](docs/AccountSimple.md)
+ - [AccountSyncStatus](docs/AccountSyncStatus.md)
+ - [ActionStrict](docs/ActionStrict.md)
+ - [Amount](docs/Amount.md)
+ - [AmountNullable](docs/AmountNullable.md)
+ - [Balance](docs/Balance.md)
+ - [Brokerage](docs/Brokerage.md)
+ - [BrokerageAuthorization](docs/BrokerageAuthorization.md)
+ - [BrokerageAuthorizationDisabledConfirmation](docs/BrokerageAuthorizationDisabledConfirmation.md)
+ - [BrokerageAuthorizationRefreshConfirmation](docs/BrokerageAuthorizationRefreshConfirmation.md)
+ - [BrokerageAuthorizationType](docs/BrokerageAuthorizationType.md)
+ - [BrokerageAuthorizationTypeReadOnly](docs/BrokerageAuthorizationTypeReadOnly.md)
+ - [BrokerageAuthorizationTypeReadOnlyBrokerage](docs/BrokerageAuthorizationTypeReadOnlyBrokerage.md)
+ - [BrokerageSymbol](docs/BrokerageSymbol.md)
+ - [BrokerageType](docs/BrokerageType.md)
+ - [CalculatedTrade](docs/CalculatedTrade.md)
+ - [CashRestriction](docs/CashRestriction.md)
+ - [Currency](docs/Currency.md)
+ - [CurrencyNullable](docs/CurrencyNullable.md)
+ - [DeleteUserResponse](docs/DeleteUserResponse.md)
+ - [DividendAtDate](docs/DividendAtDate.md)
+ - [EncryptedResponse](docs/EncryptedResponse.md)
+ - [EncryptedResponseEncryptedMessageData](docs/EncryptedResponseEncryptedMessageData.md)
+ - [Exchange](docs/Exchange.md)
+ - [ExchangeRatePairs](docs/ExchangeRatePairs.md)
+ - [ExcludedAsset](docs/ExcludedAsset.md)
+ - [FigiInstrument](docs/FigiInstrument.md)
+ - [FigiInstrumentNullable](docs/FigiInstrumentNullable.md)
+ - [HoldingsStatus](docs/HoldingsStatus.md)
+ - [JWT](docs/JWT.md)
+ - [LoginRedirectURI](docs/LoginRedirectURI.md)
+ - [ManualTrade](docs/ManualTrade.md)
+ - [ManualTradeAndImpact](docs/ManualTradeAndImpact.md)
+ - [ManualTradeBalance](docs/ManualTradeBalance.md)
+ - [ManualTradeForm](docs/ManualTradeForm.md)
+ - [ManualTradeSymbol](docs/ManualTradeSymbol.md)
+ - [ModelAssetClass](docs/ModelAssetClass.md)
+ - [ModelAssetClassDetails](docs/ModelAssetClassDetails.md)
+ - [ModelAssetClassTarget](docs/ModelAssetClassTarget.md)
+ - [ModelPortfolio](docs/ModelPortfolio.md)
+ - [ModelPortfolioAssetClass](docs/ModelPortfolioAssetClass.md)
+ - [ModelPortfolioDetails](docs/ModelPortfolioDetails.md)
+ - [ModelPortfolioSecurity](docs/ModelPortfolioSecurity.md)
+ - [MonthlyDividends](docs/MonthlyDividends.md)
+ - [NetContributions](docs/NetContributions.md)
+ - [NetDividend](docs/NetDividend.md)
+ - [OptionBrokerageSymbol](docs/OptionBrokerageSymbol.md)
+ - [OptionChainInner](docs/OptionChainInner.md)
+ - [OptionChainInnerChainPerRootInner](docs/OptionChainInnerChainPerRootInner.md)
+ - [OptionChainInnerChainPerRootInnerChainPerStrikePriceInner](docs/OptionChainInnerChainPerRootInnerChainPerStrikePriceInner.md)
+ - [OptionLeg](docs/OptionLeg.md)
+ - [OptionStrategy](docs/OptionStrategy.md)
+ - [OptionStrategyLegsInner](docs/OptionStrategyLegsInner.md)
+ - [OptionsGetOptionStrategyRequest](docs/OptionsGetOptionStrategyRequest.md)
+ - [OptionsPlaceOptionStrategyRequest](docs/OptionsPlaceOptionStrategyRequest.md)
+ - [OptionsPosition](docs/OptionsPosition.md)
+ - [OptionsSymbol](docs/OptionsSymbol.md)
+ - [OptionsSymbolNullable](docs/OptionsSymbolNullable.md)
+ - [OrderTypeStrict](docs/OrderTypeStrict.md)
+ - [PartnerData](docs/PartnerData.md)
+ - [PastValue](docs/PastValue.md)
+ - [PerformanceCustom](docs/PerformanceCustom.md)
+ - [PortfolioGroup](docs/PortfolioGroup.md)
+ - [PortfolioGroupInfo](docs/PortfolioGroupInfo.md)
+ - [PortfolioGroupPosition](docs/PortfolioGroupPosition.md)
+ - [PortfolioGroupSettings](docs/PortfolioGroupSettings.md)
+ - [Position](docs/Position.md)
+ - [PositionSymbol](docs/PositionSymbol.md)
+ - [RedirectTokenandPin](docs/RedirectTokenandPin.md)
+ - [SecurityType](docs/SecurityType.md)
+ - [SessionEvent](docs/SessionEvent.md)
+ - [SnapTradeAPIDisclaimerAcceptStatus](docs/SnapTradeAPIDisclaimerAcceptStatus.md)
+ - [SnapTradeHoldingsAccount](docs/SnapTradeHoldingsAccount.md)
+ - [SnapTradeHoldingsAccountAccountId](docs/SnapTradeHoldingsAccountAccountId.md)
+ - [SnapTradeHoldingsTotalValue](docs/SnapTradeHoldingsTotalValue.md)
+ - [SnapTradeLoginUserRequestBody](docs/SnapTradeLoginUserRequestBody.md)
+ - [SnapTradeRegisterUserRequestBody](docs/SnapTradeRegisterUserRequestBody.md)
+ - [Status](docs/Status.md)
+ - [StrategyImpact](docs/StrategyImpact.md)
+ - [StrategyImpactLegsInner](docs/StrategyImpactLegsInner.md)
+ - [StrategyOrderPlace](docs/StrategyOrderPlace.md)
+ - [StrategyOrderPlaceOrdersInner](docs/StrategyOrderPlaceOrdersInner.md)
+ - [StrategyOrderPlaceOrdersInnerLegsInner](docs/StrategyOrderPlaceOrdersInnerLegsInner.md)
+ - [StrategyOrderRecord](docs/StrategyOrderRecord.md)
+ - [StrategyQuotes](docs/StrategyQuotes.md)
+ - [StrategyQuotesGreek](docs/StrategyQuotesGreek.md)
+ - [SubPeriodReturnRate](docs/SubPeriodReturnRate.md)
+ - [Symbol](docs/Symbol.md)
+ - [SymbolQuery](docs/SymbolQuery.md)
+ - [SymbolsQuotesInner](docs/SymbolsQuotesInner.md)
+ - [TargetAsset](docs/TargetAsset.md)
+ - [TimeInForceStrict](docs/TimeInForceStrict.md)
+ - [Trade](docs/Trade.md)
+ - [TradeExecutionStatus](docs/TradeExecutionStatus.md)
+ - [TradeImpact](docs/TradeImpact.md)
+ - [TradingCancelUserAccountOrderRequest](docs/TradingCancelUserAccountOrderRequest.md)
+ - [TransactionsStatus](docs/TransactionsStatus.md)
+ - [USExchange](docs/USExchange.md)
+ - [UnderlyingSymbol](docs/UnderlyingSymbol.md)
+ - [UniversalActivity](docs/UniversalActivity.md)
+ - [UniversalSymbol](docs/UniversalSymbol.md)
+ - [UniversalSymbolNullable](docs/UniversalSymbolNullable.md)
+ - [UserErrorLog](docs/UserErrorLog.md)
+ - [UserIDandSecret](docs/UserIDandSecret.md)
+ - [UserSettings](docs/UserSettings.md)
+ - [ValidatedTradeBody](docs/ValidatedTradeBody.md)
+
+
+## Author
+This Java package is automatically generated by [Konfig](https://konfigthis.com)
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/api/openapi.yaml b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/api/openapi.yaml
new file mode 100644
index 0000000000..a8bf0334c8
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/api/openapi.yaml
@@ -0,0 +1,10906 @@
+openapi: 3.0.0
+info:
+ contact:
+ email: api@snaptrade.com
+ name: SnapTrade
+ url: https://snaptrade.com/
+ description: Connect brokerage accounts to your app for live positions and trading
+ termsOfService: N/A
+ title: SnapTrade
+ version: 1.0.0
+ x-konfig-ignore:
+ potential-incorrect-type: true
+ x-readme:
+ explorer-enabled: false
+servers:
+- description: SnapTrade Production API
+ url: https://api.snaptrade.com/api/v1
+security:
+- PartnerSignature: []
+ PartnerClientId: []
+ PartnerTimestamp: []
+tags:
+- description: Check whether the API is operational and verify timestamps.
+ name: API Status
+- description: Register and authenticate users with SnapTrade.
+ name: Authentication
+- description: Retrieve and manage user connections.
+ name: Connections
+- description: "Retrieve account information, such as positions, balances, etc."
+ name: Account Information
+- description: Manage orders on user accounts
+ name: Trading
+- description: Endpoints related to terms of conditions of SnapTrade API use
+ name: API Disclaimer
+- description: "Retrieve information on account transactions, performance, dividends,\
+ \ contributions, etc."
+ name: Transactions And Reporting
+- description: "Retrieve basic information for API use, such as supported brokerages,\
+ \ exchanges, currencies, etc."
+ name: Reference Data
+- description: Endpoints to search for options prices and chains as well as place
+ options trades if supported.
+ name: Options
+paths:
+ /:
+ get:
+ description: Check whether the API is operational and verify timestamps.
+ operationId: ApiStatus_check
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Status'
+ description: API is operational.
+ default:
+ description: Unexpected error.
+ security: []
+ summary: Get API Status
+ tags:
+ - API Status
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--
+ x-accepts: application/json
+ /snapTrade/registerUser:
+ post:
+ description: |
+ Registers a new SnapTrade user under your ClientID. A user secret will be automatically generated for you and must be properly stored in your database.
+ Most SnapTrade operations require a user ID and user secret to be passed as a parameter.
+ operationId: Authentication_registerSnapTradeUser
+ requestBody:
+ $ref: '#/components/requestBodies/RegisterUserRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserIDandSecret'
+ description: Successfully registered user
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request. Could be caused by various reasons. Error message
+ is provided in response
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: Invalid SnapTrade Client ID provided in query
+ x-do-not-generate: true
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Create SnapTrade user
+ tags:
+ - Authentication
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--snapTrade-registerUser
+ x-content-type: application/json
+ x-accepts: application/json
+ /snapTrade/login:
+ post:
+ description: Logs in a SnapTrade user and returns an authenticated connection
+ portal URL for them to use to connect a brokerage account.
+ operationId: Authentication_loginSnapTradeUser
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ requestBody:
+ $ref: '#/components/requestBodies/SnapTradeLoginUserRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema: {}
+ description: Login successful. Redirect user to provided URI in response
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FailedRequestResponse'
+ description: Forbidden
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: Not Found
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: Login user & generate connection link
+ tags:
+ - Authentication
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--snapTrade-login
+ x-content-type: application/json
+ x-accepts: application/json
+ /snapTrade/listUsers:
+ get:
+ description: Returns a list of users you've registered over the SnapTrade API.
+ operationId: Authentication_listSnapTradeUsers
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserList'
+ description: Successfully retrieved a list of users
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request. Could be caused by various reasons. Error message
+ is provided in response
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: Invalid SnapTrade Client ID provided in query
+ x-do-not-generate: true
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: List SnapTrade users
+ tags:
+ - Authentication
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--snapTrade-listUsers
+ x-accepts: application/json
+ /snapTrade/deleteUser:
+ delete:
+ description: "Deletes a user you've registered over the SnapTrade API, and any\
+ \ data associated with them or their investment accounts."
+ operationId: Authentication_deleteSnapTradeUser
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteUserResponse'
+ description: Delete successful
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FailedRequestResponse'
+ description: Forbidden
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: Not Found
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: Delete SnapTrade user
+ tags:
+ - Authentication
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-delete--snapTrade-deleteUser
+ x-accepts: application/json
+ /snapTrade/resetUserSecret:
+ post:
+ description: |
+ This API is used to rotate the secret for a SnapTrade user. You might use this if a userSecret
+ is compromised. Please note that if you call this endpoint and fail to save the new secret, you'll no longer be able to access any data for this user, and your only option will be to delete and recreate the user, then ask them to reconnect.
+ operationId: Authentication_resetSnapTradeUserSecret
+ requestBody:
+ $ref: '#/components/requestBodies/ResetUserSecretRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserIDandSecret'
+ description: New user secret is generated
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request. Could be caused by various reasons. Error message
+ is provided in response
+ x-do-not-generate: true
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401FailedRequestResponse'
+ description: "Failed authenticaion. Wrong clientId, userId or userSecret\
+ \ provided"
+ x-do-not-generate: true
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Obtain a new user secret for a user
+ tags:
+ - Authentication
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--snapTrade-resetUserSecret
+ x-content-type: application/json
+ x-accepts: application/json
+ /authorizations:
+ get:
+ description: Returns a list of Brokerage Authorization objects for the user
+ operationId: Connections_listBrokerageAuthorizations
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/BrokerageAuthorization'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all Authorization objects for the authenticated user.
+ default:
+ description: Unexpected error.
+ summary: List all brokerage authorizations for the User
+ tags:
+ - Connections
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--authorizations
+ x-accepts: application/json
+ /authorizations/{authorizationId}:
+ delete:
+ description: Deletes a specified brokerage authorization given by the ID.
+ operationId: Connections_removeBrokerageAuthorization
+ parameters:
+ - description: The ID of the Authorization to delete.
+ explode: false
+ in: path
+ name: authorizationId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "204":
+ description: Brokerage authorization object has been successfully deleted
+ "400":
+ description: The specified authorizationId is invalid (not a UUID string).
+ "404":
+ description: The specified authorizationId was not found.
+ default:
+ description: Unexpected error.
+ summary: Delete brokerage authorization
+ tags:
+ - Connections
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-delete--authorizations-authorizationId
+ x-accepts: application/json
+ get:
+ description: Returns a single brokerage authorization object for the specified
+ ID.
+ operationId: Connections_detailBrokerageAuthorization
+ parameters:
+ - description: The ID of a brokerage authorization object.
+ explode: false
+ in: path
+ name: authorizationId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BrokerageAuthorization'
+ description: Authorization object for the authenticated user.
+ default:
+ description: Unexpected error.
+ summary: Get brokerage authorization details
+ tags:
+ - Connections
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--authorizations-authorizationId
+ x-accepts: application/json
+ /authorizations/{authorizationId}/refresh:
+ post:
+ description: Trigger a holdings update for all accounts under this authorization.
+ Updates will be queued asynchronously. ACCOUNT_HOLDINGS_UPDATED webhook will
+ be sent once the sync completes. Please contact support for access as this
+ endpoint is not enabled by default
+ operationId: Connections_refreshBrokerageAuthorization
+ parameters:
+ - description: The ID of a brokerage authorization object.
+ explode: false
+ in: path
+ name: authorizationId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BrokerageAuthorizationRefreshConfirmation'
+ description: Confirmation that the syncs have been scheduled
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401FailedRequestResponse'
+ description: "Unauthorized, invalid credentials for this resource"
+ x-do-not-generate: true
+ "402":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/402BrokerageAuthDisabledResponse'
+ description: Unable to sync with brokerage account because the connection
+ is disabled.
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FeatureNotEnabledResponse'
+ description: Customer or user does not have access to this feature
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: The requested resource does not exist.
+ x-do-not-generate: true
+ summary: Refresh holdings for a connection
+ tags:
+ - Connections
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--authorizations-authorizationId-refresh
+ x-accepts: application/json
+ /authorizations/{authorizationId}/disable:
+ post:
+ description: "Manually disable a connection. This should only be used for testing\
+ \ a reconnect flow, and never used on production connections. Will trigger\
+ \ a disconnect as if it happened naturally, and send a CONNECTION_BROKEN webhook\
+ \ for the connection. Please contact us in order to use this endpoint as it\
+ \ is disabled by default."
+ operationId: Connections_disableBrokerageAuthorization
+ parameters:
+ - description: The ID of a brokerage authorization object.
+ explode: false
+ in: path
+ name: authorizationId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BrokerageAuthorizationDisabledConfirmation'
+ description: Confirmation that the connection has been disabled
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401FailedRequestResponse'
+ description: "Unauthorized, invalid credentials for this resource"
+ x-do-not-generate: true
+ "402":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/402BrokerageAuthAlreadyDisabledException'
+ description: Unable to sync with brokerage account because the connection
+ is disabled.
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FeatureNotEnabledResponse'
+ description: Customer or user does not have access to this feature
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: The requested resource does not exist.
+ x-do-not-generate: true
+ summary: Manually disable a connection for testing
+ tags:
+ - Connections
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--authorizations-authorizationId-disable
+ x-accepts: application/json
+ /sessionEvents:
+ get:
+ description: Returns a list of session events associated with a user.
+ operationId: Connections_sessionEvents
+ parameters:
+ - explode: true
+ in: query
+ name: PartnerClientId
+ required: true
+ schema:
+ $ref: '#/components/schemas/ClientID'
+ style: form
+ - description: Optional comma seperated list of user IDs used to filter the
+ request on specific users
+ explode: true
+ in: query
+ name: userId
+ required: false
+ schema:
+ $ref: '#/components/schemas/AccountIDs'
+ style: form
+ - description: Optional comma seperated list of session IDs used to filter the
+ request on specific users
+ explode: true
+ in: query
+ name: sessionId
+ required: false
+ schema:
+ $ref: '#/components/schemas/AccountIDs'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/SessionEvent'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all Session Events for the Partner.
+ default:
+ description: Unexpected error.
+ summary: Get all session events for a user
+ tags:
+ - Connections
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--sessionEvents
+ x-accepts: application/json
+ /accounts:
+ get:
+ description: Get a list of all Account objects for the authenticated SnapTrade
+ user.
+ operationId: AccountInformation_listUserAccounts
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Account'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all Account objects for the authenticated user.
+ default:
+ description: Unexpected error.
+ summary: List accounts
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts
+ x-accepts: application/json
+ /holdings:
+ get:
+ deprecated: true
+ description: |
+ **Deprecated, please use the account-specific holdings endpoint instead.**
+
+ List all accounts for the user, plus balances, positions, and orders for each
+ account.
+ operationId: AccountInformation_getAllUserHoldings
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: Optional. Comma seperated list of authorization IDs (only use
+ if filtering is needed on one or more authorizations).
+ explode: true
+ in: query
+ name: brokerage_authorizations
+ required: false
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--holdings-get-parameters-2-schema
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/AccountHoldings'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: Returns list of accounts and holdings
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FailedRequestResponse'
+ description: Forbidden
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: "List all accounts for the user, plus balances, positions, and orders\
+ \ for each account."
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--holdings
+ x-accepts: application/json
+ /accounts/{accountId}/holdings:
+ get:
+ description: |
+ Lists balances, positions, option positions, and recent orders for the specified account. The data returned is similar to the data returned over the more fine-grained [balances](/reference/Account%20Information/AccountInformation_getUserAccountBalance), [positions](/reference/Account%20Information/AccountInformation_getUserAccountPositions) and [orders](/reference/Account%20Information/AccountInformation_getUserAccountOrders) endpoints. __The finer-grained APIs are preferred. They are easier to work with, faster, and have better error handling than this coarse-grained API.__
+ operationId: AccountInformation_getUserHoldings
+ parameters:
+ - explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ $ref: '#/components/schemas/AccountID'
+ style: simple
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AccountHoldingsAccount'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FailedRequestResponse'
+ description: Forbidden
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: List account holdings
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-holdings
+ x-accepts: application/json
+ /accounts/{accountId}:
+ get:
+ description: |
+ Returns an account object with details for the specified account,
+ including the total account market value.
+ operationId: AccountInformation_getUserAccountDetails
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to get detail of.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-get-parameters-2-schema
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Account'
+ description: Details of a specific investment account
+ default:
+ description: Unexpected error
+ summary: Return details of a specific investment account
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId
+ x-accepts: application/json
+ put:
+ description: Updates various properties of a specified account.
+ operationId: AccountInformation_updateUserAccount
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to update.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Account'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: Successfully updated details of an investment account
+ default:
+ description: Unexpected error
+ summary: Update details of an investment account
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-put--accounts-accountId
+ x-accepts: application/json
+ /accounts/{accountId}/balances:
+ get:
+ description: A list of account balances for the specified account (one per currency
+ that the account holds).
+ operationId: AccountInformation_getUserAccountBalance
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to get balances.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-balances-get-parameters-2-schema
+ style: simple
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ items:
+ $ref: '#/components/schemas/Balance'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: List of all balances in investment account
+ default:
+ description: Unexpected error
+ summary: List account balances
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-balances
+ x-accepts: '*/*'
+ /accounts/{accountId}/positions:
+ get:
+ description: Returns a list of positions in the specified account.
+ operationId: AccountInformation_getUserAccountPositions
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to get positions.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-positions-get-parameters-2-schema
+ style: simple
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ items:
+ $ref: '#/components/schemas/Position'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: List all positions in investment account
+ default:
+ description: Unexpected error
+ summary: List account positions
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-positions
+ x-accepts: '*/*'
+ /accounts/{accountId}/orders:
+ get:
+ description: Fetch all recent orders from a user's account.
+ operationId: AccountInformation_getUserAccountOrders
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: defaults value is set to "all"
+ explode: true
+ in: query
+ name: state
+ required: false
+ schema:
+ enum:
+ - all
+ - open
+ - executed
+ type: string
+ style: form
+ - description: Number of days in the past to fetch the most recent orders. Defaults
+ to the last 30 days if no value is passed in.
+ explode: true
+ in: query
+ name: days
+ required: false
+ schema:
+ example: 30
+ format: int32
+ minimum: 1
+ type: integer
+ x-konfig-original-example: 30
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-orders-get-parameters-3-schema
+ style: form
+ - description: The ID of the account to get orders.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-orders-get-parameters-4-schema
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/AccountOrderRecord'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: List all orders in account
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: List account orders
+ tags:
+ - Account Information
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-orders
+ x-accepts: application/json
+ /accounts/{accountId}/quotes:
+ get:
+ description: Returns quote(s) from the brokerage for the specified symbol(s).
+ operationId: Trading_getUserAccountQuotes
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: List of universal_symbol_id or tickers to get quotes for.
+ explode: true
+ in: query
+ name: symbols
+ required: true
+ schema:
+ type: string
+ style: form
+ - description: Should be set to True if providing tickers.
+ explode: true
+ in: query
+ name: use_ticker
+ required: false
+ schema:
+ type: boolean
+ style: form
+ - description: The ID of the account to get quotes.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-quotes-get-parameters-4-schema
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SymbolsQuotes'
+ description: Returns quotes object with different prices
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Get symbol quotes
+ tags:
+ - Trading
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-quotes
+ x-accepts: application/json
+ /trade/impact:
+ post:
+ description: Return the trade object and it's impact on the account for the
+ specified order.
+ operationId: Trading_getOrderImpact
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ requestBody:
+ $ref: '#/components/requestBodies/ManualTradeFormRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ManualTradeAndImpact'
+ description: Return trade object and it's impact on the account
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Missing or wrong data format provided in request body
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FailedRequestResponse'
+ description: User does not have permissions to place trades
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: Check the impact of a trade on an account
+ tags:
+ - Trading
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--trade-impact
+ x-content-type: application/json
+ x-accepts: application/json
+ /trade/{tradeId}:
+ post:
+ description: |
+ Places the specified trade object. This places the order in the account and
+ returns the status of the order from the brokerage.
+ operationId: Trading_placeOrder
+ parameters:
+ - description: The ID of trade object obtained from trade/impact endpoint
+ explode: false
+ in: path
+ name: tradeId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ requestBody:
+ $ref: '#/components/requestBodies/ValidatedTradeRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AccountOrderRecord'
+ description: Status of order placed
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Failed to submit order to broker
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: Place order
+ tags:
+ - Trading
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--trade-tradeId
+ x-content-type: application/json
+ x-accepts: application/json
+ /trade/place:
+ post:
+ description: Places a specified trade in the specified account.
+ operationId: Trading_placeForceOrder
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ requestBody:
+ $ref: '#/components/requestBodies/ManualTradeFormRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AccountOrderRecord'
+ description: Trade sucessfully placed
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Trade could not be placed
+ x-do-not-generate: true
+ "403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/403FailedRequestResponse'
+ description: User does not have permissions to place trades
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: Place a trade with NO validation.
+ tags:
+ - Trading
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--trade-place
+ x-content-type: application/json
+ x-accepts: application/json
+ /accounts/{accountId}/orders/cancel:
+ post:
+ description: |
+ Sends a signal to the brokerage to cancel the specified order.
+ This will only work if the order has not yet been executed.
+ operationId: Trading_cancelUserAccountOrder
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to cancel the order in.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-orders-cancel-post-parameters-2-schema
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/CancelOrderRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AccountOrderRecord'
+ description: Order Record of canceled order
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Unable to cancel open order. Please verify status in brokerage
+ account
+ x-do-not-generate: true
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Cancel open order in account
+ tags:
+ - Trading
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--accounts-accountId-orders-cancel
+ x-content-type: application/json
+ x-accepts: application/json
+ /snapTrade/partners:
+ get:
+ description: "Returns useful data related to the specified ClientID, including\
+ \ allowed brokerages and data access."
+ operationId: ReferenceData_getPartnerInfo
+ parameters: []
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PartnerData'
+ description: Successfully obtained encrypted JWT data. See description on
+ how to object JWT token
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/400FailedRequestResponse'
+ description: Bad Request
+ x-do-not-generate: true
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/401FailedRequestResponse'
+ description: Unauthorized
+ x-do-not-generate: true
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/404FailedRequestResponse'
+ description: Not Found
+ x-do-not-generate: true
+ "500":
+ description: Unexpected Error
+ summary: Get metadata related to Snaptrade partner
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--snapTrade-partners
+ x-accepts: application/json
+ /accounts/{accountId}/symbols:
+ post:
+ description: |
+ Returns a list of universal symbols that are supported by
+ the specificied account. Returned symbols are based on the
+ provided search string, matching on ticker and name.
+ operationId: ReferenceData_symbolSearchUserAccount
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to search for symbols within.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-symbols-post-parameters-2-schema
+ style: simple
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SymbolQuery'
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ items:
+ $ref: '#/components/schemas/UniversalSymbol'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: List of universal symbol supported by account based on substring
+ sent it
+ default:
+ description: Unexpected error
+ summary: Search for symbols available in an account
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--accounts-accountId-symbols
+ x-content-type: application/json
+ x-accepts: '*/*'
+ /accounts/{accountId}/options:
+ get:
+ description: |
+ Returns a list of Options Positions.
+ operationId: Options_listOptionHoldings
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to fetch options holdings for.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/OptionsPosition'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: The option holdings in the account
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Get account option holdings
+ tags:
+ - Options
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-options
+ x-accepts: application/json
+ /accounts/{accountId}/optionsChain:
+ get:
+ description: Returns the option chain for the specified symbol in the specified
+ account.
+ operationId: Options_getOptionsChain
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to get the options chain from.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ - description: Universal symbol ID if symbol
+ explode: true
+ in: query
+ name: symbol
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OptionChain'
+ description: List of all Options available for the brokerage symbol
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Get the options chain for a symbol
+ tags:
+ - Options
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-optionsChain
+ x-accepts: application/json
+ /accounts/{accountId}/optionStrategy:
+ post:
+ description: |
+ Creates an option strategy object that will be used to place an option strategy order.
+ operationId: Options_getOptionStrategy
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to create the option strategy object in.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/OptionStrategyRequestBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StrategyQuotes'
+ description: Order Quotes
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Create options strategy
+ tags:
+ - Options
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--accounts-accountId-optionStrategy
+ x-content-type: application/json
+ x-accepts: application/json
+ /accounts/{accountId}/optionStrategy/{optionStrategyId}:
+ get:
+ description: |
+ Returns a Strategy Quotes object which has latest market data of the specified option strategy.
+ operationId: Options_getOptionsStrategyQuote
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account the strategy will be placed in.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ - description: Option strategy id obtained from response when creating option
+ strategy object
+ explode: false
+ in: path
+ name: optionStrategyId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StrategyQuotes'
+ description: Order Quotes
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Get options strategy quotes
+ tags:
+ - Options
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--accounts-accountId-optionStrategy-optionStrategyId
+ x-accepts: application/json
+ /accounts/{accountId}/optionStrategy/{optionStrategyId}/execute:
+ post:
+ description: Places the option strategy order and returns the order record received
+ from the brokerage.
+ operationId: Options_placeOptionStrategy
+ parameters:
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ - description: The ID of the account to execute the strategy in.
+ explode: false
+ in: path
+ name: accountId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ - description: Option strategy id obtained from response when creating option
+ strategy object
+ explode: false
+ in: path
+ name: optionStrategyId
+ required: true
+ schema:
+ $ref: '#/components/schemas/Id'
+ style: simple
+ requestBody:
+ $ref: '#/components/requestBodies/OrderStrategyExecuteBody'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StrategyOrderRecord'
+ description: Status of strategy order placed
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/500UnexpectedExceptionResponse'
+ description: Unexpected error
+ x-do-not-generate: true
+ summary: Place an option strategy order
+ tags:
+ - Options
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--accounts-accountId-optionStrategy-optionStrategyId-execute
+ x-content-type: application/json
+ x-accepts: application/json
+ /brokerages:
+ get:
+ description: Returns a list of all defined Brokerage objects.
+ operationId: ReferenceData_listAllBrokerages
+ parameters: []
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Brokerage'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all defined Brokerage objects.
+ default:
+ description: Unexpected error.
+ summary: Get brokerages
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--brokerages
+ x-accepts: application/json
+ /brokerageAuthorizationTypes:
+ get:
+ description: Returns a list of all defined Brokerage authorization Type objects.
+ operationId: ReferenceData_listAllBrokerageAuthorizationType
+ parameters:
+ - description: Comma separated value of brokerage slugs
+ explode: true
+ in: query
+ name: brokerage
+ required: false
+ schema:
+ example: "QUESTRADE,ALPACA"
+ type: string
+ x-konfig-original-example: "QUESTRADE,ALPACA"
+ x-konfig-generated-schema: konfig-generated-schema-paths--brokerageAuthorizationTypes-get-parameters-0-schema
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/BrokerageAuthorizationTypeReadOnly'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all defined Brokerage Authorization Type objects.
+ default:
+ description: Unexpected error.
+ summary: Get all brokerage authorization types
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--brokerageAuthorizationTypes
+ x-accepts: application/json
+ /currencies:
+ get:
+ description: Returns a list of all defined Currency objects.
+ operationId: ReferenceData_listAllCurrencies
+ parameters: []
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Currency'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all currencies.
+ default:
+ description: Unexpected error.
+ summary: Get currencies
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--currencies
+ x-accepts: application/json
+ /currencies/rates:
+ get:
+ description: Returns a list of all Exchange Rate Pairs for all supported Currencies.
+ operationId: ReferenceData_listAllCurrenciesRates
+ parameters: []
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/ExchangeRatePairs'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all exchange rates pairs for supported currencies
+ summary: Get currency exchange rates
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--currencies-rates
+ x-accepts: application/json
+ /currencies/rates/{currencyPair}:
+ get:
+ description: Returns an Exchange Rate Pair object for the specified Currency
+ Pair.
+ operationId: ReferenceData_getCurrencyExchangeRatePair
+ parameters:
+ - description: "A currency pair based on currency code for example, {CAD-USD}"
+ explode: false
+ in: path
+ name: currencyPair
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ExchangeRatePairs'
+ description: A list of all exchange rates pairs for supported currencies
+ summary: Get exchange rate of a currency pair
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--currencies-rates-currencyPair
+ x-accepts: application/json
+ /exchanges:
+ get:
+ description: Returns a list of all supported Exchanges.
+ operationId: ReferenceData_getStockExchanges
+ parameters: []
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/Exchange'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all supported stock exchanges
+ summary: Get exchanges
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--exchanges
+ x-accepts: application/json
+ /securityTypes:
+ get:
+ description: List security types available on SnapTrade.
+ operationId: ReferenceData_getSecurityTypes
+ parameters: []
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/SecurityType'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of all defined Security Type objects.
+ default:
+ description: Unexpected error.
+ summary: List of all security types
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--securityTypes
+ x-accepts: application/json
+ /symbols:
+ post:
+ description: |
+ Returns a list of Universal Symbol objects that match a defined string.
+
+ Matches on ticker or name.
+ operationId: ReferenceData_getSymbols
+ parameters: []
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SymbolQuery'
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/UniversalSymbol'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: A list of UniversalSymbol objects which match the specified
+ substring
+ default:
+ description: Unexpected error.
+ summary: Search for symbols
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-post--symbols
+ x-content-type: application/json
+ x-accepts: application/json
+ /symbols/{query}:
+ get:
+ description: Returns the Universal Symbol object specified by the ticker or
+ the universal_symbol_id.
+ operationId: ReferenceData_getSymbolsByTicker
+ parameters:
+ - description: The ticker or universal_symbol_id of the UniversalSymbol to get.
+ explode: false
+ in: path
+ name: query
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/UniversalSymbol'
+ description: Successfully gets a symbol
+ "404":
+ description: No symbol with the specified ticker found.
+ default:
+ description: Unexpected error
+ summary: Get details of a symbol
+ tags:
+ - Reference Data
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--symbols-query
+ x-accepts: '*/*'
+ /activities:
+ get:
+ description: Returns activities (transactions) for a user. Specifying start
+ and end date is highly recommended for better performance
+ operationId: TransactionsAndReporting_getActivities
+ parameters:
+ - explode: true
+ in: query
+ name: startDate
+ required: false
+ schema:
+ $ref: '#/components/schemas/ReportingDate'
+ style: form
+ - explode: true
+ in: query
+ name: endDate
+ required: false
+ schema:
+ $ref: '#/components/schemas/ReportingDate'
+ style: form
+ - description: Optional comma seperated list of account IDs used to filter the
+ request on specific accounts
+ explode: true
+ in: query
+ name: accounts
+ required: false
+ schema:
+ $ref: '#/components/schemas/AccountIDs'
+ style: form
+ - description: Optional comma seperated list of brokerage authorization IDs
+ used to filter the request on only accounts that belong to those authorizations
+ explode: true
+ in: query
+ name: brokerageAuthorizations
+ required: false
+ schema:
+ $ref: '#/components/schemas/BrokerageAuthIDs'
+ style: form
+ - description: "Optional comma seperated list of types to filter activities\
+ \ by. This is not an exhaustive list, if we fail to match to these types,\
+ \ we will return the raw description from the brokerage. Potential values\
+ \ include - DIVIDEND - BUY - SELL - CONTRIBUTION - WITHDRAWAL - EXTERNAL_ASSET_TRANSFER_IN\
+ \ - EXTERNAL_ASSET_TRANSFER_OUT - INTERNAL_CASH_TRANSFER_IN - INTERNAL_CASH_TRANSFER_OUT\
+ \ - INTERNAL_ASSET_TRANSFER_IN - INTERNAL_ASSET_TRANSFER_OUT - INTEREST\
+ \ - REBATE - GOV_GRANT - TAX - FEE - REI - FXT"
+ explode: true
+ in: query
+ name: type
+ required: false
+ schema:
+ example: DIVIDEND
+ type: string
+ x-konfig-original-example: DIVIDEND
+ x-konfig-generated-schema: konfig-generated-schema-paths--activities-get-parameters-4-schema
+ style: form
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/UniversalActivity'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ description: Successfully retrieved transaction history
+ default:
+ description: Unexpected error
+ summary: Get transaction history for a user
+ tags:
+ - Transactions And Reporting
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--activities
+ x-accepts: application/json
+ /performance/custom:
+ get:
+ deprecated: true
+ description: "Returns performance information (contributions, dividends, rate\
+ \ of return, etc) for a specific timeframe. Please note that Total Equity\
+ \ Timeframe and Rate of Returns are experimental features. Please contact\
+ \ support@snaptrade.com if you notice any inconsistencies."
+ operationId: TransactionsAndReporting_getReportingCustomRange
+ parameters:
+ - explode: true
+ in: query
+ name: startDate
+ required: true
+ schema:
+ $ref: '#/components/schemas/ReportingDate'
+ style: form
+ - explode: true
+ in: query
+ name: endDate
+ required: true
+ schema:
+ $ref: '#/components/schemas/ReportingDate'
+ style: form
+ - description: Optional comma seperated list of account IDs used to filter the
+ request on specific accounts
+ explode: true
+ in: query
+ name: accounts
+ required: false
+ schema:
+ $ref: '#/components/schemas/AccountIDs'
+ style: form
+ - description: "Optional, increases frequency of data points for the total value\
+ \ and contribution charts if set to true"
+ explode: true
+ in: query
+ name: detailed
+ required: false
+ schema:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-paths--performance-custom-get-parameters-3-schema
+ style: form
+ - description: "Optional frequency for the rate of return chart (defaults to\
+ \ monthly). Possible values are daily, weekly, monthly, quarterly, yearly."
+ explode: true
+ in: query
+ name: frequency
+ required: false
+ schema:
+ $ref: '#/components/schemas/ReportingFrequency'
+ style: form
+ - explode: true
+ in: query
+ name: userId
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserID'
+ style: form
+ - explode: true
+ in: query
+ name: userSecret
+ required: true
+ schema:
+ $ref: '#/components/schemas/UserSecret'
+ style: form
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PerformanceCustom'
+ description: Successfully retrieved performance data
+ default:
+ description: Unexpected error
+ summary: Get performance information for a specific timeframe
+ tags:
+ - Transactions And Reporting
+ x-konfig-operation-can-have-single-parameter: true
+ x-konfig-single-parameter-schema: konfig-generated-schema-single-parameter-schema-get--performance-custom
+ x-accepts: application/json
+components:
+ requestBodies:
+ RegisterUserRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SnapTradeRegisterUserRequestBody'
+ required: true
+ ResetUserSecretRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserIDandSecret'
+ required: true
+ SnapTradeLoginUserRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SnapTradeLoginUserRequestBody'
+ LoginRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserIDandSecret'
+ required: true
+ DeleteUserRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserIDandSecret'
+ required: true
+ RedeemTokenRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RedirectTokenandPin'
+ required: true
+ PortfolioGroup:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PortfolioGroup'
+ required: true
+ TargetAsset:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TargetAsset'
+ required: true
+ ManualTradeFormRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ManualTradeForm'
+ required: true
+ ValidatedTradeRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ValidatedTradeBody'
+ required: false
+ CancelOrderRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Trading_cancelUserAccountOrder_request'
+ description: The Order ID to be canceled
+ required: true
+ OptionStrategyRequestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Options_getOptionStrategy_request'
+ required: true
+ OrderStrategyExecuteBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Options_placeOptionStrategy_request'
+ required: true
+ SnapTradeAPIDisclaimerAcceptRequestBody:
+ content:
+ application/json:
+ schema:
+ additionalProperties: true
+ properties:
+ accepted:
+ description: A boolean that indicates whether this user has accepted
+ the disclaimer or not.
+ type: boolean
+ type: object
+ required: true
+ schemas:
+ "400FailedRequestResponse":
+ additionalProperties: true
+ description: Example for failed request response
+ properties:
+ default_detail:
+ example: Unable to verify data sent
+ x-konfig-original-example: Unable to verify data sent
+ default_code:
+ example: 1076
+ x-konfig-original-example: 1076
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "401FailedRequestResponse":
+ additionalProperties: true
+ description: Example for failed request response
+ properties:
+ default_detail:
+ example: Unable to verify signature sent
+ x-konfig-original-example: Unable to verify signature sent
+ default_code:
+ example: 1076
+ x-konfig-original-example: 1076
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "402BrokerageAuthDisabledResponse":
+ additionalProperties: true
+ description: Cannot perform action because connection is disabled
+ properties:
+ detail:
+ example: Unable to sync with brokerage account because the connection is
+ disabled.
+ x-konfig-original-example: Unable to sync with brokerage account because
+ the connection is disabled.
+ code:
+ example: 3003
+ x-konfig-original-example: 3003
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "402BrokerageAuthAlreadyDisabledException":
+ additionalProperties: true
+ description: This connection is already disabled.
+ properties:
+ detail:
+ example: This connection is already disabled.
+ x-konfig-original-example: This connection is already disabled.
+ code:
+ example: 3011
+ x-konfig-original-example: 3011
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "403FailedRequestResponse":
+ additionalProperties: true
+ description: Example for failed request response
+ properties:
+ default_detail:
+ example: User does not have permission to access this resource
+ x-konfig-original-example: User does not have permission to access this
+ resource
+ default_code:
+ example: 1066
+ x-konfig-original-example: 1066
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "403FeatureNotEnabledResponse":
+ additionalProperties: true
+ description: Example for failed request response
+ properties:
+ detail:
+ example: Feature is not enabled for this customer or this connection
+ x-konfig-original-example: Feature is not enabled for this customer or this
+ connection
+ default_code:
+ example: 1141
+ x-konfig-original-example: 1141
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "404FailedRequestResponse":
+ additionalProperties: true
+ description: Example for failed request response
+ properties:
+ default_detail:
+ example: The requested resource does not exist.
+ x-konfig-original-example: The requested resource does not exist.
+ default_code:
+ example: 1011
+ x-konfig-original-example: 1011
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ "500UnexpectedExceptionResponse":
+ additionalProperties: true
+ description: Example for a response that failed for unexpected reasons
+ properties:
+ detail:
+ example: Encountered an unexpected exception.
+ x-konfig-original-example: Encountered an unexpected exception.
+ status_code:
+ example: 500
+ x-konfig-original-example: 500
+ code:
+ example: 1000
+ x-konfig-original-example: 1000
+ type: object
+ x-konfig-is-used-in-non-successful-response: true
+ x-do-not-generate: true
+ CashRestriction:
+ additionalProperties: true
+ description: Cash restriction rules that apply to this account when undergoing
+ portfolio rebalance calculations.
+ example:
+ amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ account:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ currency:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ type:
+ enum:
+ - ALLOCATE_MAX
+ - RETAIN_MIN
+ type: string
+ amount:
+ example: 100
+ type: number
+ x-konfig-original-example: 100
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-CashRestriction-properties-amount
+ type: object
+ AccountSyncStatus:
+ description: Status of account
+ example:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ properties:
+ transactions:
+ $ref: '#/components/schemas/TransactionsStatus'
+ holdings:
+ $ref: '#/components/schemas/HoldingsStatus'
+ TransactionsStatus:
+ description: Status of account transaction sync
+ example:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ properties:
+ initial_sync_completed:
+ type: boolean
+ last_successful_sync:
+ description: Date in YYYY-MM-DD format or null
+ example: 2022-01-24
+ format: date
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SyncStatusDate
+ first_transaction_date:
+ description: Date in YYYY-MM-DD format or null
+ example: 2022-01-24
+ format: date
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SyncStatusDate
+ HoldingsStatus:
+ description: Status of account holdings sync
+ example:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ properties:
+ initial_sync_completed:
+ type: boolean
+ last_successful_sync:
+ description: Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
+ example: 2024-06-28 18:42:46.561408+00:00
+ format: datetime
+ nullable: true
+ type: string
+ x-konfig-original-example: 2024-06-28 18:42:46.561408+00:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-HoldingsSyncStatusDate
+ AccountBalance:
+ description: Contains balance related information for the account.
+ example:
+ total:
+ amount: 15363.23
+ currency: USD
+ properties:
+ total:
+ $ref: '#/components/schemas/AmountNullable'
+ Amount:
+ description: "Total value of the account, as reported by the brokerage"
+ properties:
+ amount:
+ description: Total value denominated in the currency of the `currency` field.
+ example: 15363.23
+ type: number
+ x-konfig-original-example: 15363.23
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Amount-properties-amount
+ currency:
+ description: The ISO-4217 currency code for the amount.
+ example: USD
+ type: string
+ x-konfig-original-example: USD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Amount-properties-currency
+ Account:
+ additionalProperties: true
+ description: SnapTradeUser Investment Account
+ example:
+ number: Q6542138443
+ balance:
+ total:
+ amount: 15363.23
+ currency: USD
+ brokerage_authorization: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2021-06-04T16:26:46.523Z
+ institution_name: Alpaca
+ cash_restrictions:
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ brokerage_authorization:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ portfolio_group:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: Registered Retirement Savings Account
+ type: string
+ x-konfig-original-example: Registered Retirement Savings Account
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Account-properties-name
+ number:
+ example: Q6542138443
+ type: string
+ x-konfig-original-example: Q6542138443
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Account-properties-number
+ institution_name:
+ example: Alpaca
+ type: string
+ x-konfig-original-example: Alpaca
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Account-properties-institution_name
+ created_date:
+ example: 2021-06-04T16:26:46.523Z
+ type: string
+ x-konfig-original-example: 2021-06-04T16:26:46.523Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Account-properties-created_date
+ meta:
+ additionalProperties: true
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ type: object
+ x-konfig-original-example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Account-properties-meta
+ cash_restrictions:
+ items:
+ $ref: '#/components/schemas/CashRestriction'
+ type: array
+ sync_status:
+ $ref: '#/components/schemas/AccountSyncStatus'
+ balance:
+ $ref: '#/components/schemas/AccountBalance'
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ AccountSimple:
+ additionalProperties: true
+ description: SnapTradeUser Investment Account
+ example:
+ number: Q6542138443
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: Registered Retirement Savings Account
+ type: string
+ x-konfig-original-example: Registered Retirement Savings Account
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-AccountSimple-properties-name
+ number:
+ example: Q6542138443
+ type: string
+ x-konfig-original-example: Q6542138443
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-AccountSimple-properties-number
+ sync_status:
+ $ref: '#/components/schemas/AccountSyncStatus'
+ type: object
+ AccountID:
+ description: Unique identifier for the connected brokerage account. This is
+ the UUID used to reference the account in SnapTrade.
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-AccountID
+ AccountIDs:
+ description: Comma seperated list of account IDs
+ example: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2"
+ type: string
+ x-konfig-original-example: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-AccountIDs
+ BrokerageAuthID:
+ description: Unique identifier for the connection (brokerage authorization).
+ This is the UUID used to reference the connection in SnapTrade.
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ format: uuid
+ type: string
+ x-konfig-original-example: 87b24961-b51e-4db8-9226-f198f6518a89
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthID
+ BrokerageAuthIDs:
+ description: Comma seperated list of brokerage authorization IDs
+ example: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2"
+ type: string
+ x-konfig-original-example: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthIDs
+ AccountHoldings:
+ additionalProperties: true
+ description: Account Holdings
+ example:
+ total_value:
+ currency: USD
+ value: 32600.71
+ balances:
+ - currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 300.71
+ buying_power: 410.71
+ - currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 300.71
+ buying_power: 410.71
+ positions:
+ - symbol:
+ is_quotable: true
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ is_tradable: true
+ local_id: "3291231"
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ fractional_units: 1.44
+ price: 113.15
+ open_pnl: 0.44
+ units: 40
+ average_purchase_price: 108.3353
+ - symbol:
+ is_quotable: true
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ is_tradable: true
+ local_id: "3291231"
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ fractional_units: 1.44
+ price: 113.15
+ open_pnl: 0.44
+ units: 40
+ average_purchase_price: 108.3353
+ account:
+ number: Q6542138443
+ brokerage_authorization:
+ brokerage:
+ maintenance_mode: true
+ allows_fractional_units: true
+ exchanges:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ description: Questrade is an online brokerage firm and wealth management
+ firm based in Canada. It is Canada's largest discount broker.
+ open_url: https://www.brokerage.com
+ display_name: Questrade
+ url: https://www.questrade.com/
+ enabled: true
+ allows_trading: true
+ has_reporting: true
+ aws_s3_square_logo_url: https://www.snaptrade.com/questrade.logo
+ is_real_time_connection: true
+ name: Questrade
+ allows_trading_through_snaptrade_api: true
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ default_currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ brokerage_type:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ aws_s3_logo_url: https://www.snaptrade.com/questrade.logo
+ slug: QUESTRADE
+ is_scraping_integration: true
+ disabled_date: 2022-01-21T20:11:19.217Z
+ meta:
+ identifier: 123456
+ name: Connection-1
+ disabled: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2022-01-21T20:11:19.217Z
+ updated_date: 2022-01-21T20:11:19.217Z
+ type: trade
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ institution_name: Alpaca
+ properties:
+ account:
+ $ref: '#/components/schemas/SnapTradeHoldingsAccount'
+ balances:
+ items:
+ $ref: '#/components/schemas/Balance'
+ nullable: true
+ type: array
+ positions:
+ items:
+ $ref: '#/components/schemas/Position'
+ nullable: true
+ type: array
+ total_value:
+ $ref: '#/components/schemas/SnapTradeHoldingsTotalValue'
+ type: object
+ AccountHoldingsAccount:
+ additionalProperties: true
+ description: A wrapper object containing holdings information for a single account
+ example:
+ total_value:
+ currency: USD
+ value: 32600.71
+ balances:
+ - currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 300.71
+ buying_power: 410.71
+ - currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 300.71
+ buying_power: 410.71
+ option_positions:
+ - symbol:
+ description: SPY CALL 7/17 200
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ price: 113.15
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ units: 10
+ average_purchase_price: 108.3353
+ - symbol:
+ description: SPY CALL 7/17 200
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ price: 113.15
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ units: 10
+ average_purchase_price: 108.3353
+ positions:
+ - symbol:
+ is_quotable: true
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ is_tradable: true
+ local_id: "3291231"
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ fractional_units: 1.44
+ price: 113.15
+ open_pnl: 0.44
+ units: 40
+ average_purchase_price: 108.3353
+ - symbol:
+ is_quotable: true
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ is_tradable: true
+ local_id: "3291231"
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ fractional_units: 1.44
+ price: 113.15
+ open_pnl: 0.44
+ units: 40
+ average_purchase_price: 108.3353
+ orders:
+ - symbol: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ time_executed: 2022-01-21T20:11:19.217Z
+ time_placed: 2022-01-21T20:11:19.217Z
+ expiry_date: 2022-01-21T20:11:19.217Z
+ brokerage_order_id: brokerage_order_id
+ limit_price: 31.33
+ time_updated: 2022-01-21T20:11:19.217Z
+ canceled_quantity: 1.4658129805029452
+ time_in_force: time_in_force
+ execution_price: 31.33
+ stop_price: 31.33
+ action: action
+ total_quantity: 0.8008281904610115
+ universal_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ filled_quantity: 5.962133916683182
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ order_type: order_type
+ open_quantity: 6.027456183070403
+ status: null
+ - symbol: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ time_executed: 2022-01-21T20:11:19.217Z
+ time_placed: 2022-01-21T20:11:19.217Z
+ expiry_date: 2022-01-21T20:11:19.217Z
+ brokerage_order_id: brokerage_order_id
+ limit_price: 31.33
+ time_updated: 2022-01-21T20:11:19.217Z
+ canceled_quantity: 1.4658129805029452
+ time_in_force: time_in_force
+ execution_price: 31.33
+ stop_price: 31.33
+ action: action
+ total_quantity: 0.8008281904610115
+ universal_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ filled_quantity: 5.962133916683182
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ order_type: order_type
+ open_quantity: 6.027456183070403
+ status: null
+ account:
+ number: Q6542138443
+ balance:
+ total:
+ amount: 15363.23
+ currency: USD
+ brokerage_authorization: 87b24961-b51e-4db8-9226-f198f6518a89
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Robinhood Individual
+ id: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2024-07-23T22:50:22.761Z
+ institution_name: Alpaca
+ cash_restrictions:
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ account:
+ $ref: '#/components/schemas/SnapTradeHoldingsAccountAccountId'
+ balances:
+ description: "List of balances for the account. Each element of the list\
+ \ has a distinct currency. Some brokerages like Questrade [allows holding\
+ \ multiple currencies in the same account](https://www.questrade.com/learning/questrade-basics/balances-and-reports/understanding-your-account-balances)."
+ items:
+ $ref: '#/components/schemas/Balance'
+ nullable: true
+ type: array
+ positions:
+ description: List of stock/ETF/crypto/mutual fund positions in the account.
+ items:
+ $ref: '#/components/schemas/Position'
+ nullable: true
+ type: array
+ option_positions:
+ description: List of option positions in the account.
+ items:
+ $ref: '#/components/schemas/OptionsPosition'
+ nullable: true
+ type: array
+ orders:
+ description: "List of recent orders in the account, including both pending\
+ \ and executed orders."
+ items:
+ $ref: '#/components/schemas/AccountOrderRecord'
+ nullable: true
+ type: array
+ total_value:
+ $ref: '#/components/schemas/SnapTradeHoldingsTotalValue'
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ AccountOrderRecord:
+ additionalProperties: true
+ description: Record of order in brokerageaccount
+ example:
+ symbol: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ time_executed: 2022-01-21T20:11:19.217Z
+ time_placed: 2022-01-21T20:11:19.217Z
+ expiry_date: 2022-01-21T20:11:19.217Z
+ brokerage_order_id: brokerage_order_id
+ limit_price: 31.33
+ time_updated: 2022-01-21T20:11:19.217Z
+ canceled_quantity: 1.4658129805029452
+ time_in_force: time_in_force
+ execution_price: 31.33
+ stop_price: 31.33
+ action: action
+ total_quantity: 0.8008281904610115
+ universal_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ filled_quantity: 5.962133916683182
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ order_type: order_type
+ open_quantity: 6.027456183070403
+ status: null
+ properties:
+ brokerage_order_id:
+ description: Order id returned by brokerage
+ type: string
+ status:
+ $ref: '#/components/schemas/AccountOrderRecordStatus'
+ symbol:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ universal_symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ option_symbol:
+ $ref: '#/components/schemas/OptionsSymbol'
+ action:
+ description: Trade Action potential values include (but are not limited
+ to) - BUY - SELL - BUY_COVER - SELL_SHORT - BUY_OPEN - BUY_CLOSE - SELL_OPEN
+ - SELL_CLOSE
+ type: string
+ total_quantity:
+ description: Trade Units. Cannot work with notional value.
+ nullable: true
+ type: number
+ open_quantity:
+ description: Trade Units
+ nullable: true
+ type: number
+ canceled_quantity:
+ description: Trade Units
+ nullable: true
+ type: number
+ filled_quantity:
+ description: Trade Units
+ nullable: true
+ type: number
+ execution_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ limit_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ stop_price:
+ description: "Stop Price. If stop loss or stop limit order, the price to\
+ \ trigger the stop"
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StopPrice
+ order_type:
+ description: Order Type potential values include (but are not limited to)
+ - Limit - Market - StopLimit - StopLoss
+ nullable: true
+ type: string
+ time_in_force:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ * GTD - Good Til Date
+ type: string
+ time_placed:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ time_updated:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ time_executed:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ expiry_date:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ x-konfig-properties:
+ total_quantity:
+ nullable: true
+ time_updated:
+ nullable: true
+ AccountOrderRecordStatus:
+ enum:
+ - NONE
+ - PENDING
+ - ACCEPTED
+ - FAILED
+ - REJECTED
+ - CANCELED
+ - PARTIAL_CANCELED
+ - CANCEL_PENDING
+ - EXECUTED
+ - PARTIAL
+ - REPLACE_PENDING
+ - REPLACED
+ - STOPPED
+ - SUSPENDED
+ - EXPIRED
+ - QUEUED
+ - TRIGGERED
+ - ACTIVATED
+ - PENDING_RISK_REVIEW
+ - CONTINGENT_ORDER
+ type: string
+ OptionsPosition:
+ additionalProperties: true
+ description: Describes a single option position in an account.
+ example:
+ symbol:
+ description: SPY CALL 7/17 200
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ price: 113.15
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ units: 10
+ average_purchase_price: 108.3353
+ properties:
+ symbol:
+ $ref: '#/components/schemas/OptionBrokerageSymbol'
+ price:
+ description: "Last known market price for the option contract. The freshness\
+ \ of this price depends on the brokerage. Some brokerages provide real-time\
+ \ prices, while others provide delayed prices. It is recommended that\
+ \ you rely on your own third-party market data provider for most up to\
+ \ date prices."
+ example: 113.15
+ nullable: true
+ type: number
+ x-konfig-original-example: 113.15
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsPosition-properties-price
+ units:
+ description: The number of contracts for this option position.
+ example: 10
+ type: number
+ x-konfig-original-example: 10
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsPosition-properties-units
+ currency:
+ $ref: '#/components/schemas/CurrencyNullable'
+ average_purchase_price:
+ description: "Cost basis _per contract_ of this option position. To get\
+ \ the cost basis _per share_, divide this value by the number of shares\
+ \ per contract (usually 100)."
+ example: 108.3353
+ nullable: true
+ type: number
+ x-konfig-original-example: 108.3353
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsPosition-properties-average_purchase_price
+ type: object
+ x-konfig-properties:
+ currency:
+ nullable: true
+ StrategyImpact:
+ additionalProperties: true
+ description: The strategy impact
+ properties:
+ estimatedCommissions:
+ example: 11.95
+ type: number
+ x-konfig-original-example: 11.95
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-estimatedCommissions
+ buyingPowerEffect:
+ example: -156.3435
+ type: number
+ x-konfig-original-example: -156.3435
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-buyingPowerEffect
+ buyingPowerResult:
+ example: 8800.0882
+ type: number
+ x-konfig-original-example: 8800.0882
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-buyingPowerResult
+ maintExcessEffect:
+ example: -46.95
+ type: number
+ x-konfig-original-example: -46.95
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-maintExcessEffect
+ maintExcessResult:
+ example: 2642.669129
+ type: number
+ x-konfig-original-example: 2642.669129
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-maintExcessResult
+ tradeValueCalculation:
+ example: 1 x 0.07 x 100 + 1 x 0.28 x 100 = DR 35.00 CAD
+ type: string
+ x-konfig-original-example: 1 x 0.07 x 100 + 1 x 0.28 x 100 = DR 35.00 CAD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-tradeValueCalculation
+ legs:
+ items:
+ $ref: '#/components/schemas/StrategyImpact_legs_inner'
+ type: array
+ side:
+ example: Buy
+ type: string
+ x-konfig-original-example: Buy
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-side
+ effect:
+ example: Debit
+ type: string
+ x-konfig-original-example: Debit
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-effect
+ price:
+ example: 0.35
+ type: number
+ x-konfig-original-example: 0.35
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-price
+ strategy:
+ example: Strangle
+ type: string
+ x-konfig-original-example: Strangle
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-strategy
+ type: object
+ StrategyOrderQuotes:
+ description: The quotes for the strategy requested
+ StrategyOrderPlace:
+ additionalProperties: true
+ description: The reponse for a correctly placed order
+ properties:
+ orderId:
+ example: 1069605761
+ format: int32
+ type: integer
+ x-konfig-original-example: 1069605761
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orderId
+ orders:
+ items:
+ $ref: '#/components/schemas/StrategyOrderPlace_orders_inner'
+ type: array
+ type: object
+ OptionStrategy:
+ additionalProperties: true
+ example:
+ number_of_legs: 2
+ legs:
+ - quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ - quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ strategy_type: BUTTERFLY
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ underlying_symbol_id:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ underlying_symbol_id:
+ $ref: '#/components/schemas/UniversalSymbol'
+ strategy_type:
+ example: BUTTERFLY
+ type: string
+ x-konfig-original-example: BUTTERFLY
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionStrategy-properties-strategy_type
+ number_of_legs:
+ example: 2
+ type: number
+ x-konfig-original-example: 2
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionStrategy-properties-number_of_legs
+ legs:
+ items:
+ $ref: '#/components/schemas/OptionStrategy_legs_inner'
+ type: array
+ type: object
+ StrategyQuotes:
+ additionalProperties: true
+ example:
+ greek:
+ delta: 0.1
+ rho: 0.1
+ theta: 0.1
+ gamma: 0.1
+ vega: 0.1
+ volatility: 0.141
+ strategy:
+ number_of_legs: 2
+ legs:
+ - quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ - quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ strategy_type: BUTTERFLY
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ underlying_symbol_id:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ open_price: 31.33
+ bid_price: 31.33
+ ask_price: 31.33
+ properties:
+ strategy:
+ $ref: '#/components/schemas/OptionStrategy'
+ open_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ bid_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ ask_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ volatility:
+ example: 0.141
+ type: number
+ x-konfig-original-example: 0.141
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyQuotes-properties-volatility
+ greek:
+ $ref: '#/components/schemas/StrategyQuotes_greek'
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ StrategyOrderRecord:
+ additionalProperties: true
+ description: Strategy order record
+ example:
+ time_in_force: time_in_force
+ execution_price: 31.33
+ time_placed: 2022-01-21T20:11:19.217Z
+ strategy:
+ number_of_legs: 2
+ legs:
+ - quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ - quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ strategy_type: BUTTERFLY
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ underlying_symbol_id:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ filled_quantity: 10
+ order_type: order_type
+ limit_price: 31.33
+ open_quantity: 10
+ closed_quantity: 10
+ time_updated: 2022-01-21T20:11:19.217Z
+ status: PENDING
+ properties:
+ strategy:
+ $ref: '#/components/schemas/OptionStrategy'
+ status:
+ enum:
+ - PENDING
+ - ACCEPTED
+ - FAILED
+ - REJECTED
+ - CANCELED
+ - PARTIAL_CANCELED
+ - CANCEL_PENDING
+ - EXECUTED
+ - PARTIAL
+ - REPLACE_PENDING
+ - REPLACED
+ - STOPPED
+ - SUSPENDED
+ - EXPIRED
+ - QUEUED
+ - TRIGGERED
+ - ACTIVATED
+ - PENDING_RISK_REVIEW
+ - CONTINGENT_ORDER
+ type: string
+ filled_quantity:
+ example: 10
+ type: number
+ x-konfig-original-example: 10
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderRecord-properties-filled_quantity
+ open_quantity:
+ example: 10
+ type: number
+ x-konfig-original-example: 10
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderRecord-properties-open_quantity
+ closed_quantity:
+ example: 10
+ type: number
+ x-konfig-original-example: 10
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderRecord-properties-closed_quantity
+ order_type:
+ description: Order Type potential values include (but are not limited to)
+ - Limit - Market - StopLimit - StopLoss
+ nullable: true
+ type: string
+ time_in_force:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ * GTD - Good Til Date
+ type: string
+ limit_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ execution_price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ time_placed:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ time_updated:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ SnapTradeHoldingsAccount:
+ additionalProperties: true
+ description: SnapTradeUser Investment Account
+ example:
+ number: Q6542138443
+ brokerage_authorization:
+ brokerage:
+ maintenance_mode: true
+ allows_fractional_units: true
+ exchanges:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ description: Questrade is an online brokerage firm and wealth management
+ firm based in Canada. It is Canada's largest discount broker.
+ open_url: https://www.brokerage.com
+ display_name: Questrade
+ url: https://www.questrade.com/
+ enabled: true
+ allows_trading: true
+ has_reporting: true
+ aws_s3_square_logo_url: https://www.snaptrade.com/questrade.logo
+ is_real_time_connection: true
+ name: Questrade
+ allows_trading_through_snaptrade_api: true
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ default_currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ brokerage_type:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ aws_s3_logo_url: https://www.snaptrade.com/questrade.logo
+ slug: QUESTRADE
+ is_scraping_integration: true
+ disabled_date: 2022-01-21T20:11:19.217Z
+ meta:
+ identifier: 123456
+ name: Connection-1
+ disabled: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2022-01-21T20:11:19.217Z
+ updated_date: 2022-01-21T20:11:19.217Z
+ type: trade
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ institution_name: Alpaca
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ brokerage_authorization:
+ $ref: '#/components/schemas/BrokerageAuthorization'
+ portfolio_group:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: Registered Retirement Savings Account
+ nullable: true
+ type: string
+ x-konfig-original-example: Registered Retirement Savings Account
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-name
+ number:
+ example: Q6542138443
+ type: string
+ x-konfig-original-example: Q6542138443
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-number
+ institution_name:
+ example: Alpaca
+ type: string
+ x-konfig-original-example: Alpaca
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-institution_name
+ sync_status:
+ $ref: '#/components/schemas/AccountSyncStatus'
+ meta:
+ additionalProperties: true
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ type: object
+ x-konfig-original-example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-meta
+ type: object
+ SnapTradeHoldingsAccountAccountId:
+ additionalProperties: true
+ description: A single brokerage account at a financial institution.
+ example:
+ number: Q6542138443
+ balance:
+ total:
+ amount: 15363.23
+ currency: USD
+ brokerage_authorization: 87b24961-b51e-4db8-9226-f198f6518a89
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Robinhood Individual
+ id: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2024-07-23T22:50:22.761Z
+ institution_name: Alpaca
+ cash_restrictions:
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ description: Unique identifier for the connected brokerage account. This
+ is the UUID used to reference the account in SnapTrade.
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-AccountID
+ brokerage_authorization:
+ description: Unique identifier for the connection (brokerage authorization).
+ This is the UUID used to reference the connection in SnapTrade.
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ format: uuid
+ type: string
+ x-konfig-original-example: 87b24961-b51e-4db8-9226-f198f6518a89
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthID
+ portfolio_group:
+ deprecated: true
+ description: Portfolio Group ID. Portfolio Groups have been deprecated.
+ Please contact support if you have a usecase for it.
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupID
+ name:
+ description: "A display name for the account. Either assigned by the user\
+ \ or by the financial institution itself. For certain institutions, SnapTrade\
+ \ appends the institution name to the account name for clarity."
+ example: Robinhood Individual
+ nullable: true
+ type: string
+ x-konfig-original-example: Robinhood Individual
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-name
+ number:
+ description: The account number assigned by the financial institution.
+ example: Q6542138443
+ type: string
+ x-konfig-original-example: Q6542138443
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-number
+ institution_name:
+ description: The name of the financial institution that holds the account.
+ example: Alpaca
+ type: string
+ x-konfig-original-example: Alpaca
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-institution_name
+ balance:
+ $ref: '#/components/schemas/AccountBalanceNullable'
+ meta:
+ additionalProperties: true
+ deprecated: true
+ description: "Additional information about the account, such as account\
+ \ type, status, etc. This information is specific to the financial institution\
+ \ and there's no standard format for this data. Please use at your own\
+ \ risk."
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ type: object
+ x-konfig-original-example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-meta
+ cash_restrictions:
+ deprecated: true
+ description: This field is deprecated.
+ items:
+ $ref: '#/components/schemas/CashRestriction'
+ type: array
+ created_date:
+ description: "Timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\
+ \ format indicating when the account was created in SnapTrade. This is\
+ \ _not_ the account opening date at the financial institution."
+ example: 2024-07-23T22:50:22.761Z
+ format: date-time
+ type: string
+ x-konfig-original-example: 2024-07-23T22:50:22.761Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-created_date
+ type: object
+ x-konfig-properties:
+ balance:
+ nullable: true
+ SnapTradeHoldingsTotalValue:
+ additionalProperties: true
+ description: "The total market value of the account. Note that this field is\
+ \ calculated based on the sum of the values of account positions and cash\
+ \ balances known to SnapTrade. It may not be accurate if the brokerage account\
+ \ has holdings that SnapTrade is not aware of. For example, if the brokerage\
+ \ account holds assets that SnapTrade does not support, the total value may\
+ \ be underreported. To get the brokerage reported total market value of the\
+ \ account, refer to `account.balance.total`."
+ example:
+ currency: USD
+ value: 32600.71
+ properties:
+ value:
+ description: Total value denominated in the currency of the `currency` field.
+ example: 32600.71
+ nullable: true
+ type: number
+ x-konfig-original-example: 32600.71
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsTotalValue-properties-value
+ currency:
+ description: The ISO-4217 currency code for the amount.
+ example: USD
+ nullable: true
+ type: string
+ x-konfig-original-example: USD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeHoldingsTotalValue-properties-currency
+ type: object
+ Balance:
+ additionalProperties: true
+ description: Holds balance information for a single currency in an account.
+ example:
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 300.71
+ buying_power: 410.71
+ properties:
+ currency:
+ $ref: '#/components/schemas/Currency'
+ cash:
+ description: The amount of available cash in the account denominated in
+ the currency of the `currency` field.
+ example: 300.71
+ nullable: true
+ type: number
+ x-konfig-original-example: 300.71
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Balance-properties-cash
+ buying_power:
+ description: "Buying power only applies to margin accounts. For non-margin\
+ \ accounts, buying power should be the same as cash. Please note that\
+ \ this field is not always available for all brokerages."
+ example: 410.71
+ nullable: true
+ type: number
+ x-konfig-original-example: 410.71
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Balance-properties-buying_power
+ type: object
+ ConsumerKey:
+ description: Shared key used to sign requests
+ example: UxrFb4cHdRWlmJKNuJjA6hoaN8uVa6jPGFVUl2UKHuKmurCnaU
+ type: string
+ x-konfig-original-example: UxrFb4cHdRWlmJKNuJjA6hoaN8uVa6jPGFVUl2UKHuKmurCnaU
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ConsumerKey
+ Currency:
+ additionalProperties: true
+ description: Describes a currency object.
+ example:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ properties:
+ id:
+ description: Unique identifier for the currency. This is the UUID used to
+ reference the currency in SnapTrade.
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ format: uuid
+ type: string
+ x-konfig-original-example: 87b24961-b51e-4db8-9226-f198f6518a89
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Currency-properties-id
+ code:
+ description: The ISO-4217 currency code for the currency.
+ example: USD
+ type: string
+ x-konfig-original-example: USD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Currency-properties-code
+ name:
+ description: A human-friendly name of the currency.
+ example: US Dollar
+ type: string
+ x-konfig-original-example: US Dollar
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Currency-properties-name
+ type: object
+ Exchange:
+ additionalProperties: true
+ description: Stock Exchange
+ example:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ code:
+ example: TSX
+ type: string
+ x-konfig-original-example: TSX
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-code
+ mic_code:
+ example: XTSE
+ type: string
+ x-konfig-original-example: XTSE
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-mic_code
+ name:
+ example: Toronto Stock Exchange
+ type: string
+ x-konfig-original-example: Toronto Stock Exchange
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-name
+ timezone:
+ example: America/New_York
+ type: string
+ x-konfig-original-example: America/New_York
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-timezone
+ start_time:
+ example: 09:30:00
+ type: string
+ x-konfig-original-example: 09:30:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-start_time
+ close_time:
+ example: "57600"
+ type: string
+ x-konfig-original-example: 57600
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-close_time
+ suffix:
+ example: .TO
+ nullable: true
+ type: string
+ x-konfig-original-example: .TO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Exchange-properties-suffix
+ type: object
+ USExchange:
+ additionalProperties: true
+ description: US Stock Exchange
+ example:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ code:
+ example: ARCX
+ type: string
+ x-konfig-original-example: ARCX
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-code
+ mic_code:
+ example: ARCA
+ type: string
+ x-konfig-original-example: ARCA
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-mic_code
+ name:
+ example: NYSE ARCA
+ type: string
+ x-konfig-original-example: NYSE ARCA
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-name
+ timezone:
+ example: America/New_York
+ type: string
+ x-konfig-original-example: America/New_York
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-timezone
+ start_time:
+ example: 09:30:00
+ type: string
+ x-konfig-original-example: 09:30:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-start_time
+ close_time:
+ example: "57600"
+ type: string
+ x-konfig-original-example: 57600
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-close_time
+ suffix:
+ example: None
+ nullable: true
+ type: string
+ x-konfig-original-example: None
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-suffix
+ allows_cryptocurrency_symbols:
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-USExchange-properties-allows_cryptocurrency_symbols
+ type: object
+ JWT:
+ additionalProperties: true
+ description: JWT Token. Used to acess resources in private endpoints available
+ only through the Passiv app
+ properties:
+ token:
+ example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImZSbUdsbWFyU1dtZDY5RDkyeGZWbVdCWUxCS0x0QiIsImV4cCI6MTU0MDA1NTMxOSwiZW1haWwiOiJ3b29kQHN5bmNocm92ZXJnZS5jb20iLCJvcmlnX2lhdCI6MTUzNzM3NjkxOX0.ZSn85i3kSBvEP5wuhWOE8_w903N1G1AfiVlD3fmri78
+ format: jwt
+ type: string
+ x-konfig-original-example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImZSbUdsbWFyU1dtZDY5RDkyeGZWbVdCWUxCS0x0QiIsImV4cCI6MTU0MDA1NTMxOSwiZW1haWwiOiJ3b29kQHN5bmNocm92ZXJnZS5jb20iLCJvcmlnX2lhdCI6MTUzNzM3NjkxOX0.ZSn85i3kSBvEP5wuhWOE8_w903N1G1AfiVlD3fmri78
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-JWT-properties-token
+ type: object
+ LoginRedirectURI:
+ description: Redirect uri upon successful login
+ properties:
+ redirectURI:
+ example: https://app.snaptrade.com/snapTrade/redeemToken?token=this$token1does2ntactu4allyexist==&clientId=example
+ x-konfig-original-example: https://app.snaptrade.com/snapTrade/redeemToken?token=this$token1does2ntactu4allyexist==&clientId=example
+ sessionId:
+ type: string
+ type: object
+ ClientID:
+ description: SnapTrade Client ID (generated and provided to partner by SnapTrade)
+ example: SNAPTRADETEST
+ type: string
+ x-konfig-original-example: SNAPTRADETEST
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ClientID
+ UserID:
+ description: "SnapTrade User ID. This is chosen by the API partner and can be\
+ \ any string that is a) unique to the user, and b) immutable for the user.\
+ \ It is recommended to NOT use email addresses for this property because they\
+ \ are usually not immutable."
+ example: snaptrade-user-123
+ type: string
+ x-konfig-original-example: snaptrade-user-123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserID
+ UserSecret:
+ description: SnapTrade User Secret (generated when registering user)
+ example: USERSECRET123
+ type: string
+ x-konfig-original-example: USERSECRET123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSecret
+ PerformanceCustom:
+ additionalProperties: true
+ description: Performance Custom Response Object
+ example:
+ fees: 2.72
+ detailedMode: true
+ dividendIncome: 135.97
+ returnRateTimeframe:
+ - rateOfReturn: 0.012312367452
+ periodStart: 2022-01-24T00:00:00.000+00:00
+ periodEnd: 2022-01-24T00:00:00.000+00:00
+ - rateOfReturn: 0.012312367452
+ periodStart: 2022-01-24T00:00:00.000+00:00
+ periodEnd: 2022-01-24T00:00:00.000+00:00
+ forexFees: 5.26
+ totalEquityTimeframe:
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ rateOfReturn: 0.082312367452
+ contributionTimeframeCumulative:
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ contributionTotalMonths: 13
+ contributions:
+ date: 2022-01-24T00:00:00.000+00:00
+ contributions: 524.74
+ currency: CAD
+ withdrawalTimeframe:
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ commissions: 3.26
+ dividends:
+ - symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ amount: 165.05
+ currency: USD
+ - symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ amount: 165.05
+ currency: USD
+ contributionStreak: 5
+ contributionMonthsContributed: 10
+ badTickers:
+ - MAW105
+ - MAW105
+ monthlyDividends: 26.37
+ dividendTimeline:
+ - date: 2022-01-24T00:00:00.000+00:00
+ dividends:
+ - symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ - symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ - date: 2022-01-24T00:00:00.000+00:00
+ dividends:
+ - symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ - symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ contributionTimeframe:
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ - date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ properties:
+ totalEquityTimeframe:
+ items:
+ $ref: '#/components/schemas/PastValue'
+ type: array
+ contributions:
+ $ref: '#/components/schemas/NetContributions'
+ contributionTimeframe:
+ items:
+ $ref: '#/components/schemas/PastValue'
+ type: array
+ contributionTimeframeCumulative:
+ items:
+ $ref: '#/components/schemas/PastValue'
+ type: array
+ withdrawalTimeframe:
+ items:
+ $ref: '#/components/schemas/PastValue'
+ type: array
+ contributionStreak:
+ description: Current streak of cosecutive months where contributions were
+ made
+ example: 5
+ nullable: true
+ type: number
+ x-konfig-original-example: 5
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-contributionStreak
+ contributionMonthsContributed:
+ description: Number of months in the timeframe with contributions
+ example: 10
+ nullable: true
+ type: number
+ x-konfig-original-example: 10
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-contributionMonthsContributed
+ contributionTotalMonths:
+ description: Total months in timeframe
+ example: 13
+ nullable: true
+ type: number
+ x-konfig-original-example: 13
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-contributionTotalMonths
+ dividends:
+ items:
+ $ref: '#/components/schemas/NetDividend'
+ type: array
+ dividendIncome:
+ description: Total dividends received over the timeframe
+ example: 135.97
+ nullable: true
+ type: number
+ x-konfig-original-example: 135.97
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-dividendIncome
+ monthlyDividends:
+ description: Average dividends received per month over the timeframe
+ example: 26.37
+ nullable: true
+ type: number
+ x-konfig-original-example: 26.37
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-monthlyDividends
+ badTickers:
+ description: list of tickers which may not be supported or may not have
+ accurate price data
+ items:
+ example: MAW105
+ nullable: true
+ type: string
+ x-konfig-original-example: MAW105
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-badTickers-items
+ type: array
+ dividendTimeline:
+ items:
+ $ref: '#/components/schemas/MonthlyDividends'
+ type: array
+ commissions:
+ description: commissions incurred during the timeframe
+ example: 3.26
+ nullable: true
+ type: number
+ x-konfig-original-example: 3.26
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-commissions
+ forexFees:
+ description: forex fees incurred during the timeframe
+ example: 5.26
+ nullable: true
+ type: number
+ x-konfig-original-example: 5.26
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-forexFees
+ fees:
+ description: other fees incurred during the timeframe
+ example: 2.72
+ nullable: true
+ type: number
+ x-konfig-original-example: 2.72
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-fees
+ rateOfReturn:
+ description: The return rate over the timeframe. Annualized if timeframe
+ is longer than 1 year
+ example: 0.082312367452
+ nullable: true
+ type: number
+ x-konfig-original-example: 0.082312367452
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PerformanceCustom-properties-rateOfReturn
+ returnRateTimeframe:
+ items:
+ $ref: '#/components/schemas/SubPeriodReturnRate'
+ type: array
+ detailedMode:
+ description: Whether the user has detailed mode enabled (more frequent data
+ points for totalEquity and contribution timeframes)
+ type: boolean
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ SubPeriodReturnRate:
+ additionalProperties: true
+ example:
+ rateOfReturn: 0.012312367452
+ periodStart: 2022-01-24T00:00:00.000+00:00
+ periodEnd: 2022-01-24T00:00:00.000+00:00
+ properties:
+ periodStart:
+ description: Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ example: 2022-01-24
+ format: date
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingDate
+ periodEnd:
+ description: Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ example: 2022-01-24
+ format: date
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingDate
+ rateOfReturn:
+ description: The return rate for the given period
+ example: 0.012312367452
+ nullable: true
+ type: number
+ x-konfig-original-example: 0.012312367452
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SubPeriodReturnRate-properties-rateOfReturn
+ type: object
+ DividendAtDate:
+ additionalProperties: true
+ example:
+ symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ properties:
+ symbol:
+ description: The ticker of the symbol that the dividend came from
+ example: AAPL
+ nullable: true
+ type: string
+ x-konfig-original-example: AAPL
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-DividendAtDate-properties-symbol
+ amount:
+ description: The amount received from the dividend
+ example: 6.82
+ nullable: true
+ type: number
+ x-konfig-original-example: 6.82
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-DividendAtDate-properties-amount
+ currency:
+ description: The currency of the amount
+ example: CAD
+ type: string
+ x-konfig-original-example: CAD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-DividendAtDate-properties-currency
+ type: object
+ PartnerData:
+ additionalProperties: true
+ description: SnapTrade Partner metadata
+ example:
+ can_access_trades: true
+ can_access_holdings: true
+ pin_required: false
+ can_access_account_history: true
+ can_access_orders: true
+ logo_url: https://example.com/logo.png
+ can_access_reference_data: true
+ name: Wealthy Chimpmunk
+ can_access_portfolio_management: true
+ redirect_uri: https://example.com/oauth/snaptrade
+ slug: WEALTHYCHIPMUNK
+ allowed_brokerages:
+ - maintenance_mode: true
+ allows_fractional_units: true
+ exchanges:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ description: Questrade is an online brokerage firm and wealth management
+ firm based in Canada. It is Canada's largest discount broker.
+ open_url: https://www.brokerage.com
+ display_name: Questrade
+ url: https://www.questrade.com/
+ enabled: true
+ allows_trading: true
+ has_reporting: true
+ aws_s3_square_logo_url: https://www.snaptrade.com/questrade.logo
+ is_real_time_connection: true
+ name: Questrade
+ allows_trading_through_snaptrade_api: true
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ default_currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ brokerage_type:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ aws_s3_logo_url: https://www.snaptrade.com/questrade.logo
+ slug: QUESTRADE
+ is_scraping_integration: true
+ - maintenance_mode: true
+ allows_fractional_units: true
+ exchanges:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ description: Questrade is an online brokerage firm and wealth management
+ firm based in Canada. It is Canada's largest discount broker.
+ open_url: https://www.brokerage.com
+ display_name: Questrade
+ url: https://www.questrade.com/
+ enabled: true
+ allows_trading: true
+ has_reporting: true
+ aws_s3_square_logo_url: https://www.snaptrade.com/questrade.logo
+ is_real_time_connection: true
+ name: Questrade
+ allows_trading_through_snaptrade_api: true
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ default_currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ brokerage_type:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ aws_s3_logo_url: https://www.snaptrade.com/questrade.logo
+ slug: QUESTRADE
+ is_scraping_integration: true
+ properties:
+ redirect_uri:
+ description: URI to redirect user back to after user is done adding brokerage
+ connections
+ example: https://example.com/oauth/snaptrade
+ type: string
+ x-konfig-original-example: https://example.com/oauth/snaptrade
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-redirect_uri
+ allowed_brokerages:
+ description: Brokerages that can be accessed by partners
+ items:
+ $ref: '#/components/schemas/Brokerage'
+ type: array
+ name:
+ description: Name of Snaptrade Partner
+ example: Wealthy Chimpmunk
+ type: string
+ x-konfig-original-example: Wealthy Chimpmunk
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-name
+ slug:
+ description: Slug of Snaptrade Partner
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-slug
+ logo_url:
+ description: URL to partner's logo
+ example: https://example.com/logo.png
+ type: string
+ x-konfig-original-example: https://example.com/logo.png
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-logo_url
+ pin_required:
+ description: Shows if pin is required by users to access connection page
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-pin_required
+ can_access_trades:
+ description: Shows if users of Snaptrade partners can access trade endpoints
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-can_access_trades
+ can_access_holdings:
+ description: Shows if Snaptrade partners can get user holdings data
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-can_access_holdings
+ can_access_account_history:
+ description: Shows if Snaptrade partners can get users account history data
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-can_access_account_history
+ can_access_reference_data:
+ description: Shows if Snaptrade partners can get users holdings data
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-can_access_reference_data
+ can_access_portfolio_management:
+ description: Shows if users Snaptrade partners can access portfolio group
+ management features
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-can_access_portfolio_management
+ can_access_orders:
+ description: Shows if Snaptrade partners can get users account order history
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PartnerData-properties-can_access_orders
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ Position:
+ additionalProperties: true
+ description: Describes a single stock/ETF/crypto/mutual fund position in an
+ account.
+ example:
+ symbol:
+ is_quotable: true
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ is_tradable: true
+ local_id: "3291231"
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ fractional_units: 1.44
+ price: 113.15
+ open_pnl: 0.44
+ units: 40
+ average_purchase_price: 108.3353
+ properties:
+ symbol:
+ $ref: '#/components/schemas/PositionSymbol'
+ units:
+ description: The number of shares of the position. This can be fractional
+ or integer units.
+ example: 40
+ nullable: true
+ type: number
+ x-konfig-original-example: 40
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Position-properties-units
+ price:
+ description: "Last known market price for the symbol. The freshness of this\
+ \ price depends on the brokerage. Some brokerages provide real-time prices,\
+ \ while others provide delayed prices. It is recommended that you rely\
+ \ on your own third-party market data provider for most up to date prices."
+ example: 113.15
+ nullable: true
+ type: number
+ x-konfig-original-example: 113.15
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Position-properties-price
+ open_pnl:
+ description: "The profit or loss on the position since it was opened. This\
+ \ is calculated as the difference between the current market value of\
+ \ the position and the total cost of the position. It is recommended to\
+ \ calculate this value using the average purchase price and the current\
+ \ market price yourself, instead of relying on this field."
+ example: 0.44
+ nullable: true
+ type: number
+ x-konfig-original-example: 0.44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Position-properties-open_pnl
+ fractional_units:
+ deprecated: true
+ description: "Deprecated, use the `units` field for both fractional and\
+ \ integer units going forward"
+ example: 1.44
+ nullable: true
+ type: number
+ x-konfig-original-example: 1.44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Position-properties-fractional_units
+ average_purchase_price:
+ description: Cost basis _per share_ of this position.
+ example: 108.3353
+ nullable: true
+ type: number
+ x-konfig-original-example: 108.3353
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Position-properties-average_purchase_price
+ type: object
+ RedirectTokenandPin:
+ additionalProperties: true
+ description: Response when register user is successful
+ properties:
+ token:
+ example: myDAIBCP/EYqSmMByhMRB65aMa%2BdYhu2xRsGQe0sDd9SgZXMbdRh3eBaTh/bLViVGQoil6p9ytUUVhkqWalejOqCNVkXXTk/iNPTPaFCeh9%2B
+ type: string
+ x-konfig-original-example: myDAIBCP/EYqSmMByhMRB65aMa%2BdYhu2xRsGQe0sDd9SgZXMbdRh3eBaTh/bLViVGQoil6p9ytUUVhkqWalejOqCNVkXXTk/iNPTPaFCeh9%2B
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-RedirectTokenandPin-properties-token
+ pin:
+ example: usERdeFiP@1in9
+ type: string
+ x-konfig-original-example: usERdeFiP@1in9
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-RedirectTokenandPin-properties-pin
+ type: object
+ Signature:
+ description: |
+ Steps to generate a signature
+ * Prepare signed content (see SignedContent schema)
+ * Sign content prepared above with HMAC-SHA256 using the UTF-8 encoding
+ * Return base64 encoding of sign content along with headers
+ Note: Use the shared consumer key provided by SnapTrade to signed the request
+ Example python code
+ ```
+ import hmac
+ import json
+ from base64 import b64encode
+ from hashlib import sha256
+ from urllib.parse import urlencode
+ consumer_key = "UxrFb4cHdRWlmJKNuJjA6hoaN8uVa6jPGFVUl2UKHuKmurCnaU".encode()
+ request_data = {'userId': 'snaptrade-user-123', 'userSecret': 'CHRIS.P.BACON'}
+ request_path = "/api/v1/snapTrade/mockSignature"
+ request_query = "clientId=SNAPTRADETEST×tamp=1635790389"
+ sig_object = {"content": request_data, "path": request_path, "query": request_query}
+ sig_content = json.dumps(sig_object, separators=(",", ":"), sort_keys=True)
+ sig_digest = hmac.new(consumer_key, sig_content.encode(), sha256).digest()
+ signature = b64encode(sig_digest).decode()
+ ```
+ example: QJPQgW0Y8mWbG9Whw/fhCYofIgSo/UAo2AIc1bBPMnY=
+ type: string
+ x-konfig-original-example: QJPQgW0Y8mWbG9Whw/fhCYofIgSo/UAo2AIc1bBPMnY=
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Signature
+ SignedContent:
+ description: |
+ Signed content requires 3 key-value pairs
+ * content -> Content included in request body, set to null if no content is included. Sort keys in content alphabetically
+ * path -> Url path of request submitted
+ * query -> Query params included in requests
+ After preparing the key-value pairs, sort them alphabetically and convert them
+ into a string.
+ Note:
+ Remove any extra whitespace characters and delimiters from the signed content.
+ For example, some JSON rendering engines will produce output like this:
+ -- `{"blue": "moon", "hello": "world"}`
+ To produce the correct signature, the JSON should be processed to look like this:
+ -- `{"blue":"moon","hello":"world"}`
+ example: "{\"content\":{\"userId\":\"snaptrade-user-123\",\"userSecret\":\"\
+ CHRIS.P.BACON\"},\"path\":\"/api/v1/snapTrade/mockSignature\",\"query\":\"\
+ clientId=SNAPTRADETEST×tamp=1635790389\"}"
+ type: string
+ x-konfig-original-example: "{\"content\":{\"userId\":\"snaptrade-user-123\"\
+ ,\"userSecret\":\"CHRIS.P.BACON\"},\"path\":\"/api/v1/snapTrade/mockSignature\"\
+ ,\"query\":\"clientId=SNAPTRADETEST×tamp=1635790389\"}"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SignedContent
+ SnapTradeRegisterUserRequestBody:
+ description: Data required to register a user via SnapTrade Partner
+ example:
+ userId: snaptrade-user-123
+ properties:
+ userId:
+ description: "SnapTrade User ID. This is chosen by the API partner and can\
+ \ be any string that is a) unique to the user, and b) immutable for the\
+ \ user. It is recommended to NOT use email addresses for this property\
+ \ because they are usually not immutable."
+ example: snaptrade-user-123
+ type: string
+ x-konfig-original-example: snaptrade-user-123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserID
+ type: object
+ SnapTradeLoginUserRequestBody:
+ description: Data to login a user via SnapTrade Partner
+ example:
+ connectionPortalVersion: v2
+ reconnect: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ immediateRedirect: true
+ customRedirect: https://snaptrade.com
+ broker: ALPACA
+ connectionType: read
+ properties:
+ broker:
+ description: "Slug of the brokerage to connect the user to. See [this document](https://snaptrade.notion.site/SnapTrade-Brokerage-Integrations-f83946a714a84c3caf599f6a945f0ead)\
+ \ for a list of supported brokerages and their slugs."
+ example: ALPACA
+ type: string
+ x-konfig-original-example: ALPACA
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-broker
+ immediateRedirect:
+ description: "When set to True, user will be redirected back to the partner's\
+ \ site instead of the connection portal"
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-immediateRedirect
+ customRedirect:
+ description: URL to redirect the user to after the user connects their brokerage
+ account
+ example: https://snaptrade.com
+ type: string
+ x-konfig-original-example: https://snaptrade.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-customRedirect
+ reconnect:
+ description: The UUID of the brokerage connection to be reconnected. This
+ parameter should be left empty unless you are reconnecting a disabled
+ connection. See ‘Reconnecting Accounts’ for more information.
+ example: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ type: string
+ x-konfig-original-example: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-reconnect
+ connectionType:
+ description: Sets whether the connection should be read or trade
+ enum:
+ - read
+ - trade
+ type: string
+ connectionPortalVersion:
+ description: "Sets the version of the connection portal to render, with\
+ \ a default to 'v3'"
+ enum:
+ - v2
+ - v3
+ type: string
+ type: object
+ SnapTradeUserID:
+ description: "SnapTrade User ID. This is chosen by the API partner and can be\
+ \ any string that is a) unique to the user, and b) immutable for the user.\
+ \ It is recommended to NOT use email addresses for this property because they\
+ \ are usually not immutable."
+ example: snaptrade-user-123
+ type: string
+ x-konfig-original-example: snaptrade-user-123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserID
+ SnapTradeUserSecret:
+ description: "SnapTrade User Secret randomly generated by SnapTrade. This is\
+ \ privileged information and if compromised, should be rotated via the SnapTrade\
+ \ API."
+ example: h81@cx1lkalablakwjaltkejraj11=
+ type: string
+ x-konfig-original-example: h81@cx1lkalablakwjaltkejraj11=
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserSecret
+ Symbol:
+ additionalProperties: true
+ description: Symbol
+ example:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ name: Vanguard Canadian Aggregate Bond Index ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ symbol:
+ example: VAB.TO
+ type: string
+ x-konfig-original-example: VAB.TO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Symbol-properties-symbol
+ raw_symbol:
+ example: VAB
+ type: string
+ x-konfig-original-example: VAB
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Symbol-properties-raw_symbol
+ name:
+ example: Vanguard Canadian Aggregate Bond Index ETF
+ type: string
+ x-konfig-original-example: Vanguard Canadian Aggregate Bond Index ETF
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Symbol-properties-name
+ currency:
+ $ref: '#/components/schemas/Currency'
+ exchange:
+ $ref: '#/components/schemas/Exchange'
+ type:
+ $ref: '#/components/schemas/SecurityType'
+ figi_code:
+ example: BBG000B9XRY4
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG000B9XRY4
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Symbol-properties-figi_code
+ figi_instrument:
+ $ref: '#/components/schemas/FigiInstrumentNullable'
+ type: object
+ x-konfig-properties:
+ figi_instrument:
+ nullable: true
+ Timestamp:
+ description: Unix Epoch time
+ example: 1635790389
+ externalDocs:
+ url: https://en.wikipedia.org/wiki/Unix_time
+ type: integer
+ x-konfig-original-example: 1635790389
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Timestamp
+ UserIDandSecret:
+ description: Response when register user is successful
+ example:
+ userSecret: h81@cx1lkalablakwjaltkejraj11=
+ userId: snaptrade-user-123
+ properties:
+ userId:
+ description: "SnapTrade User ID. This is chosen by the API partner and can\
+ \ be any string that is a) unique to the user, and b) immutable for the\
+ \ user. It is recommended to NOT use email addresses for this property\
+ \ because they are usually not immutable."
+ example: snaptrade-user-123
+ type: string
+ x-konfig-original-example: snaptrade-user-123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserID
+ userSecret:
+ description: "SnapTrade User Secret randomly generated by SnapTrade. This\
+ \ is privileged information and if compromised, should be rotated via\
+ \ the SnapTrade API."
+ example: h81@cx1lkalablakwjaltkejraj11=
+ type: string
+ x-konfig-original-example: h81@cx1lkalablakwjaltkejraj11=
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserSecret
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ UserList:
+ description: List of registered SnapTrade users
+ example:
+ - user1
+ - user2
+ - user3
+ items:
+ type: string
+ type: array
+ x-konfig-original-example:
+ - user1
+ - user2
+ - user3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserList
+ x-konfig-is-used-in-successful-response: true
+ DeleteUserResponse:
+ additionalProperties: true
+ description: Response when delete user is successful
+ example:
+ userId: snaptrade-user-123
+ status: deleted
+ properties:
+ status:
+ description: Delete status
+ example: deleted
+ type: string
+ x-konfig-original-example: deleted
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-DeleteUserResponse-properties-status
+ userId:
+ description: "SnapTrade User ID. This is chosen by the API partner and can\
+ \ be any string that is a) unique to the user, and b) immutable for the\
+ \ user. It is recommended to NOT use email addresses for this property\
+ \ because they are usually not immutable."
+ example: snaptrade-user-123
+ type: string
+ x-konfig-original-example: snaptrade-user-123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserID
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ BrokerageAuthorizationType:
+ additionalProperties: true
+ properties:
+ type:
+ enum:
+ - read
+ - trade
+ type: string
+ type: object
+ BrokerageAuthorizationTypeReadOnly:
+ additionalProperties: true
+ example:
+ brokerage:
+ name: Questrade
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ slug: QUESTRADE
+ auth_type: OAUTH
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: read
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ type:
+ enum:
+ - read
+ - trade
+ type: string
+ auth_type:
+ enum:
+ - OAUTH
+ - SCRAPE
+ - UNOFFICIAL_API
+ - TOKEN
+ type: string
+ brokerage:
+ $ref: '#/components/schemas/BrokerageAuthorizationTypeReadOnly_brokerage'
+ type: object
+ Brokerage:
+ additionalProperties: true
+ example:
+ maintenance_mode: true
+ allows_fractional_units: true
+ exchanges:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ description: Questrade is an online brokerage firm and wealth management firm
+ based in Canada. It is Canada's largest discount broker.
+ open_url: https://www.brokerage.com
+ display_name: Questrade
+ url: https://www.questrade.com/
+ enabled: true
+ allows_trading: true
+ has_reporting: true
+ aws_s3_square_logo_url: https://www.snaptrade.com/questrade.logo
+ is_real_time_connection: true
+ name: Questrade
+ allows_trading_through_snaptrade_api: true
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ default_currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ brokerage_type:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ aws_s3_logo_url: https://www.snaptrade.com/questrade.logo
+ slug: QUESTRADE
+ is_scraping_integration: true
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ description: Full name of the brokerage.
+ example: Questrade
+ type: string
+ x-konfig-original-example: Questrade
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-name
+ display_name:
+ description: A display-friendly name of the brokerage.
+ example: Questrade
+ type: string
+ x-konfig-original-example: Questrade
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-display_name
+ description:
+ example: Questrade is an online brokerage firm and wealth management firm
+ based in Canada. It is Canada's largest discount broker.
+ type: string
+ x-konfig-original-example: Questrade is an online brokerage firm and wealth
+ management firm based in Canada. It is Canada's largest discount broker.
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-description
+ aws_s3_logo_url:
+ example: https://www.snaptrade.com/questrade.logo
+ format: url
+ type: string
+ x-konfig-original-example: https://www.snaptrade.com/questrade.logo
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-aws_s3_logo_url
+ aws_s3_square_logo_url:
+ example: https://www.snaptrade.com/questrade.logo
+ format: url
+ nullable: true
+ type: string
+ x-konfig-original-example: https://www.snaptrade.com/questrade.logo
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-aws_s3_square_logo_url
+ open_url:
+ example: https://www.brokerage.com
+ format: url
+ nullable: true
+ type: string
+ x-konfig-original-example: https://www.brokerage.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-open_url
+ slug:
+ description: A unique identifier for that brokerage. It is usually the name
+ of the brokerage in capital letters and will never change.
+ example: QUESTRADE
+ type: string
+ x-konfig-original-example: QUESTRADE
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-slug
+ url:
+ example: https://www.questrade.com/
+ format: url
+ type: string
+ x-konfig-original-example: https://www.questrade.com/
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-url
+ enabled:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-enabled
+ maintenance_mode:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-maintenance_mode
+ allows_fractional_units:
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-allows_fractional_units
+ allows_trading:
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-allows_trading
+ has_reporting:
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-has_reporting
+ is_real_time_connection:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-is_real_time_connection
+ allows_trading_through_snaptrade_api:
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-allows_trading_through_snaptrade_api
+ is_scraping_integration:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-is_scraping_integration
+ default_currency:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ brokerage_type:
+ $ref: '#/components/schemas/BrokerageType'
+ exchanges:
+ description: List of exchange ID supported by brokerage
+ example:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ items: {}
+ type: array
+ x-konfig-original-example:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Brokerage-properties-exchanges
+ type: object
+ BrokerageAuthorization:
+ additionalProperties: true
+ example:
+ brokerage:
+ maintenance_mode: true
+ allows_fractional_units: true
+ exchanges:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ description: Questrade is an online brokerage firm and wealth management
+ firm based in Canada. It is Canada's largest discount broker.
+ open_url: https://www.brokerage.com
+ display_name: Questrade
+ url: https://www.questrade.com/
+ enabled: true
+ allows_trading: true
+ has_reporting: true
+ aws_s3_square_logo_url: https://www.snaptrade.com/questrade.logo
+ is_real_time_connection: true
+ name: Questrade
+ allows_trading_through_snaptrade_api: true
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ default_currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ brokerage_type:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ aws_s3_logo_url: https://www.snaptrade.com/questrade.logo
+ slug: QUESTRADE
+ is_scraping_integration: true
+ disabled_date: 2022-01-21T20:11:19.217Z
+ meta:
+ identifier: 123456
+ name: Connection-1
+ disabled: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2022-01-21T20:11:19.217Z
+ updated_date: 2022-01-21T20:11:19.217Z
+ type: trade
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ created_date:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ updated_date:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ brokerage:
+ $ref: '#/components/schemas/Brokerage'
+ name:
+ description: Connection Name
+ example: Connection-1
+ type: string
+ x-konfig-original-example: Connection-1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-name
+ type:
+ example: trade
+ type: string
+ x-konfig-original-example: trade
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-type
+ disabled:
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-disabled
+ disabled_date:
+ description: Disabled date
+ example: 2022-01-21T20:11:19.217Z
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-disabled_date
+ meta:
+ additionalProperties: true
+ description: Additional data about brokerage authorization
+ example:
+ identifier: 123456
+ type: object
+ x-konfig-original-example:
+ identifier: 123456
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-meta
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ BrokerageAuthorizationRefreshConfirmation:
+ additionalProperties: true
+ example:
+ detail: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf scheduled for refresh
+ properties:
+ detail:
+ description: Refresh confirmation details
+ example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf scheduled for refresh
+ type: string
+ x-konfig-original-example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf
+ scheduled for refresh
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorizationRefreshConfirmation-properties-detail
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ BrokerageAuthorizationDisabledConfirmation:
+ additionalProperties: true
+ example:
+ detail: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf has been disabled
+ properties:
+ detail:
+ description: Connection disabled confirmation
+ example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf has been disabled
+ type: string
+ x-konfig-original-example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf
+ has been disabled
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorizationDisabledConfirmation-properties-detail
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ SessionEvent:
+ additionalProperties: true
+ example:
+ session_event_type: OAUTH_REDIRECT
+ user_id: snaptrade-user-123
+ brokerage_status_code: 400
+ session_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2022-01-21T20:11:19.217Z
+ brokerage_authorization_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ session_event_type:
+ enum:
+ - OAUTH_REDIRECT
+ - DISCLAIMER_ACCEPTED
+ - BROKERAGE_CONNECTION_INITIATED
+ - BROKERAGE_RECONNECT_INITIATED
+ - BROKERAGE_AUTHENTICATION
+ - OAUTH_BROKERAGE_AUTHENTICATION
+ - MFA_REQUESTED
+ - MFA_SUBMITTED
+ - MFA_CHOICE_REQUESTED
+ - MFA_CHOICE_SUBMITTED
+ - CONNECTION_SUCCESSFUL
+ - CONNECTION_FAILED
+ - PARTNER_REDIRECT
+ - CONNECTION_ABORTED
+ - SESSION_STARTED
+ type: string
+ session_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ user_id:
+ description: "SnapTrade User ID. This is chosen by the API partner and can\
+ \ be any string that is a) unique to the user, and b) immutable for the\
+ \ user. It is recommended to NOT use email addresses for this property\
+ \ because they are usually not immutable."
+ example: snaptrade-user-123
+ type: string
+ x-konfig-original-example: snaptrade-user-123
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeUserID
+ created_date:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ brokerage_status_code:
+ example: 400
+ nullable: true
+ type: integer
+ x-konfig-original-example: 400
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SessionEvent-properties-brokerage_status_code
+ brokerage_authorization_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ type: object
+ BrokerageSymbol:
+ additionalProperties: true
+ description: Brokerage symbol
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbolNullable'
+ brokerage_authorization:
+ $ref: '#/components/schemas/BrokerageAuthorization'
+ description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ type: string
+ x-konfig-original-example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageSymbol-properties-description
+ allows_fractional_units:
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageSymbol-properties-allows_fractional_units
+ option_symbol:
+ $ref: '#/components/schemas/OptionsSymbolNullable'
+ type: object
+ x-konfig-properties:
+ symbol:
+ nullable: true
+ option_symbol:
+ nullable: true
+ OptionBrokerageSymbol:
+ additionalProperties: true
+ description: Option Brokerage symbol
+ example:
+ description: SPY CALL 7/17 200
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ description:
+ example: SPY CALL 7/17 200
+ type: string
+ x-konfig-original-example: SPY CALL 7/17 200
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionBrokerageSymbol-properties-description
+ option_symbol:
+ $ref: '#/components/schemas/OptionsSymbol'
+ type: object
+ PositionSymbol:
+ additionalProperties: true
+ description: Symbol returned in position object
+ example:
+ is_quotable: true
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ is_tradable: true
+ local_id: "3291231"
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ type: string
+ x-konfig-original-example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PositionSymbol-properties-description
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ local_id:
+ example: "3291231"
+ nullable: true
+ type: string
+ x-konfig-original-example: "3291231"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PositionSymbol-properties-local_id
+ is_quotable:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PositionSymbol-properties-is_quotable
+ is_tradable:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PositionSymbol-properties-is_tradable
+ type: object
+ CalculatedTrade:
+ additionalProperties: true
+ description: Array of trades to make to rebalance portfolio
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ trades:
+ items:
+ $ref: '#/components/schemas/Trade'
+ type: array
+ type: object
+ OptionChain:
+ description: chain of options
+ items:
+ $ref: '#/components/schemas/OptionChain_inner'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ Email:
+ example: ops@snaptrade.com
+ format: email
+ type: string
+ x-konfig-original-example: ops@snaptrade.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Email
+ ExchangeRatePairs:
+ additionalProperties: true
+ description: The exchange rate of a pair of currencies
+ example:
+ dst:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange_rate: 1.32
+ src:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ properties:
+ src:
+ $ref: '#/components/schemas/Currency'
+ dst:
+ $ref: '#/components/schemas/Currency'
+ exchange_rate:
+ example: 1.32
+ type: number
+ x-konfig-original-example: 1.32
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ExchangeRatePairs-properties-exchange_rate
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ ExcludedAsset:
+ additionalProperties: true
+ description: An excluded asset in a portfolio group
+ properties:
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ type: object
+ Id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ ModelAssetClass:
+ additionalProperties: true
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: Bonds
+ type: string
+ x-konfig-original-example: Bonds
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ModelAssetClass-properties-name
+ type: object
+ ModelAssetClassDetails:
+ additionalProperties: true
+ properties:
+ model_asset_class:
+ $ref: '#/components/schemas/ModelAssetClass'
+ model_asset_class_target:
+ items:
+ $ref: '#/components/schemas/ModelAssetClassTarget'
+ type: array
+ type: object
+ ModelAssetClassTarget:
+ additionalProperties: true
+ properties:
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ type: object
+ ModelPortfolio:
+ additionalProperties: true
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: SnapTrade 5x Aggressive Growth Fund
+ type: string
+ x-konfig-original-example: SnapTrade 5x Aggressive Growth Fund
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ModelPortfolio-properties-name
+ model_type:
+ default: -1
+ description: "Enum definitions -> [-1: Unassigned, 0: Security Model Portfolio,\
+ \ 1: Asset Class Portfolio]"
+ enum:
+ - -1
+ - 0
+ - 1
+ example: -1
+ type: integer
+ x-konfig-original-example: -1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ModelPortfolio-properties-model_type
+ type: object
+ ModelPortfolioAssetClass:
+ additionalProperties: true
+ properties:
+ model_asset_class:
+ $ref: '#/components/schemas/ModelAssetClass'
+ percent:
+ example: 100
+ maximum: 100
+ minimum: 0
+ type: integer
+ x-konfig-original-example: 100
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ModelPortfolioAssetClass-properties-percent
+ type: object
+ ModelPortfolioDetails:
+ additionalProperties: true
+ properties:
+ model_portfolio:
+ $ref: '#/components/schemas/ModelPortfolio'
+ model_portfolio_security:
+ items:
+ $ref: '#/components/schemas/ModelPortfolioSecurity'
+ type: array
+ model_portfolio_asset_class:
+ items:
+ $ref: '#/components/schemas/ModelPortfolioAssetClass'
+ type: array
+ type: object
+ ModelPortfolioSecurity:
+ additionalProperties: true
+ properties:
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ percent:
+ example: 100
+ maximum: 100
+ minimum: 0
+ type: integer
+ x-konfig-original-example: 100
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ModelPortfolioSecurity-properties-percent
+ type: object
+ MonthlyDividends:
+ additionalProperties: true
+ example:
+ date: 2022-01-24T00:00:00.000+00:00
+ dividends:
+ - symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ - symbol: AAPL
+ amount: 6.82
+ currency: CAD
+ properties:
+ date:
+ description: Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ example: 2022-01-24
+ format: date
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingDate
+ dividends:
+ items:
+ $ref: '#/components/schemas/DividendAtDate'
+ type: array
+ type: object
+ NetContributions:
+ additionalProperties: true
+ example:
+ date: 2022-01-24T00:00:00.000+00:00
+ contributions: 524.74
+ currency: CAD
+ properties:
+ date:
+ description: Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ example: 2022-01-24
+ format: date
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingDate
+ contributions:
+ example: 524.74
+ nullable: true
+ type: number
+ x-konfig-original-example: 524.74
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-NetContributions-properties-contributions
+ currency:
+ example: CAD
+ type: string
+ x-konfig-original-example: CAD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-NetContributions-properties-currency
+ type: object
+ NetDividend:
+ additionalProperties: true
+ description: Object representing total dividends received during a timeframe
+ example:
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ amount: 165.05
+ currency: USD
+ properties:
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ amount:
+ example: 165.05
+ nullable: true
+ type: number
+ x-konfig-original-example: 165.05
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-NetDividend-properties-amount
+ currency:
+ example: USD
+ type: string
+ x-konfig-original-example: USD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-NetDividend-properties-currency
+ type: object
+ PastValue:
+ additionalProperties: true
+ example:
+ date: 2022-01-24T00:00:00.000+00:00
+ currency: CAD
+ value: 52.74
+ properties:
+ date:
+ description: Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ example: 2022-01-24
+ format: date
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingDate
+ value:
+ example: 52.74
+ type: number
+ x-konfig-original-example: 52.74
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PastValue-properties-value
+ currency:
+ example: CAD
+ type: string
+ x-konfig-original-example: CAD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PastValue-properties-currency
+ type: object
+ Percent:
+ example: 90
+ maximum: 100
+ minimum: 0
+ type: number
+ x-konfig-original-example: 90
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Percent
+ PortfolioGroupID:
+ deprecated: true
+ description: Portfolio Group ID. Portfolio Groups have been deprecated. Please
+ contact support if you have a usecase for it.
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupID
+ PortfolioGroup:
+ additionalProperties: true
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: Combined Retirement Portfolio
+ type: string
+ x-konfig-original-example: Combined Retirement Portfolio
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroup-properties-name
+ type: object
+ PortfolioGroupInfo:
+ additionalProperties: true
+ description: Summary of all relevant information about a portfolio group.
+ properties:
+ symbols:
+ items:
+ $ref: '#/components/schemas/UniversalSymbol'
+ type: array
+ quotable_symbols:
+ items:
+ $ref: '#/components/schemas/UniversalSymbol'
+ type: array
+ balances:
+ items:
+ $ref: '#/components/schemas/Balance'
+ type: array
+ positions:
+ items:
+ $ref: '#/components/schemas/Position'
+ type: array
+ target_positions:
+ items:
+ $ref: '#/components/schemas/TargetAsset'
+ type: array
+ ideal_positions:
+ items:
+ $ref: '#/components/schemas/Position'
+ type: array
+ excluded_positions:
+ items:
+ $ref: '#/components/schemas/ExcludedAsset'
+ type: array
+ calculated_trades:
+ items:
+ $ref: '#/components/schemas/CalculatedTrade'
+ type: array
+ brokerage_authorizations:
+ items:
+ $ref: '#/components/schemas/BrokerageAuthorization'
+ type: array
+ accuracy:
+ example: 0.962
+ type: number
+ x-konfig-original-example: 0.962
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupInfo-properties-accuracy
+ settings:
+ $ref: '#/components/schemas/PortfolioGroupSettings'
+ type: object
+ PortfolioGroupPosition:
+ additionalProperties: true
+ description: Details of a security held
+ properties:
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ price:
+ description: Last known market price for the symbol
+ example: 24.81
+ nullable: true
+ type: number
+ x-konfig-original-example: 24.81
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupPosition-properties-price
+ units:
+ example: 15
+ type: integer
+ x-konfig-original-example: 15
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupPosition-properties-units
+ type: object
+ PortfolioGroupSettings:
+ additionalProperties: true
+ properties:
+ buyOnly:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupSettings-properties-buyOnly
+ cash_optimizer:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupSettings-properties-cash_optimizer
+ notifyFrequency:
+ example: 7 00:00:00
+ type: string
+ x-konfig-original-example: 7 00:00:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-PortfolioGroupSettings-properties-notifyFrequency
+ driftThreshold:
+ example: 90
+ maximum: 100
+ minimum: 0
+ type: number
+ x-konfig-original-example: 90
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Percent
+ preferred_currency:
+ $ref: '#/components/schemas/Currency'
+ type: object
+ ReportingDate:
+ description: Date used to specify timeframe for a reporting call (in YYYY-MM-DD
+ format)
+ example: 2022-01-24
+ format: date
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingDate
+ ReportingFrequency:
+ description: "Optional frequency for the rate of return chart (defaults to monthly).\
+ \ Possible values are weekly, monthly, quarterly, yearly."
+ example: monthly
+ type: string
+ x-konfig-original-example: monthly
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ReportingFrequency
+ Status:
+ additionalProperties: true
+ description: Status of API
+ example:
+ online: true
+ version: 151
+ timestamp: 2022-11-04T01:47:00.377Z
+ properties:
+ version:
+ example: 151
+ type: integer
+ x-konfig-original-example: 151
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Status-properties-version
+ timestamp:
+ example: 2022-11-04T01:47:00.377Z
+ type: string
+ x-konfig-original-example: 2022-11-04T01:47:00.377Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Status-properties-timestamp
+ online:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Status-properties-online
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ SymbolQuery:
+ description: Symbol query for searching for symbols
+ example:
+ substring: apple
+ properties:
+ substring:
+ example: apple
+ type: string
+ x-konfig-original-example: apple
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolQuery-properties-substring
+ type: object
+ SyncStatusDate:
+ description: Date in YYYY-MM-DD format or null
+ example: 2022-01-24
+ format: date
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-24
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SyncStatusDate
+ HoldingsSyncStatusDate:
+ description: Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
+ example: 2024-06-28 18:42:46.561408+00:00
+ format: datetime
+ nullable: true
+ type: string
+ x-konfig-original-example: 2024-06-28 18:42:46.561408+00:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-HoldingsSyncStatusDate
+ TargetAsset:
+ additionalProperties: true
+ description: Target percentage of a certain asset
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ percent:
+ example: 90
+ maximum: 100
+ minimum: 0
+ type: number
+ x-konfig-original-example: 90
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Percent
+ is_supported:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TargetAsset-properties-is_supported
+ is_excluded:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TargetAsset-properties-is_excluded
+ meta:
+ additionalProperties: true
+ nullable: true
+ type: object
+ type: object
+ TargetAssetList:
+ description: Target percentage of a certain asset
+ items:
+ $ref: '#/components/schemas/TargetAsset'
+ type: array
+ Trade:
+ additionalProperties: true
+ description: A trade object
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ account:
+ $ref: '#/components/schemas/Account'
+ symbol:
+ $ref: '#/components/schemas/BrokerageSymbol'
+ universal_symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ action:
+ enum:
+ - BUY
+ - SELL
+ example: BUY
+ type: string
+ x-konfig-original-example: BUY
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Trade-properties-action
+ units:
+ example: 6
+ type: integer
+ x-konfig-original-example: 6
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Trade-properties-units
+ price:
+ example: 24.81
+ type: number
+ x-konfig-original-example: 24.81
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Trade-properties-price
+ sequence:
+ example: 1
+ type: integer
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Trade-properties-sequence
+ type: object
+ TradeExecutionStatus:
+ additionalProperties: true
+ description: Execution status of a trade
+ properties:
+ symbol:
+ $ref: '#/components/schemas/BrokerageSymbol'
+ universal_symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ trade:
+ $ref: '#/components/schemas/Trade'
+ state:
+ description: Execution state of a trade
+ enum:
+ - Executed
+ - Canceled
+ - Rejected
+ - Failed
+ - Not Executed
+ example: Executed
+ type: string
+ x-konfig-original-example: Executed
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-state
+ filled_units:
+ description: Number of filled units
+ example: 3
+ type: integer
+ x-konfig-original-example: 3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-filled_units
+ action:
+ description: Action of executed trade
+ enum:
+ - BUY
+ - SELL
+ example: SELL
+ type: string
+ x-konfig-original-example: SELL
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-action
+ price:
+ description: Price of execution
+ example: 23.44
+ type: number
+ x-konfig-original-example: 23.44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-price
+ commissions:
+ description: Fees paid from executing trade
+ example: 23.44
+ type: number
+ x-konfig-original-example: 23.44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-commissions
+ meta:
+ additionalProperties: true
+ description: Other misc. data
+ example:
+ canceledUnits: 2
+ type: object
+ x-konfig-original-example:
+ canceledUnits: 2
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-meta
+ type: object
+ TradeImpact:
+ additionalProperties: true
+ description: Impact of a group of trade
+ properties:
+ account:
+ $ref: '#/components/schemas/Account'
+ currency:
+ $ref: '#/components/schemas/Currency'
+ remaining_cash:
+ description: Remaining balance after executing all trades
+ example: 1.01
+ type: number
+ x-konfig-original-example: 1.01
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeImpact-properties-remaining_cash
+ estimated_commissions:
+ description: Total estimated commissions across all trades to make
+ example: 10.05
+ type: number
+ x-konfig-original-example: 10.05
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeImpact-properties-estimated_commissions
+ forex_fees:
+ description: Estimated forex fees to pay to excute trades
+ example: 2.01
+ type: number
+ x-konfig-original-example: 2.01
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-TradeImpact-properties-forex_fees
+ type: object
+ ManualTrade:
+ additionalProperties: true
+ description: A manual trade object
+ example:
+ symbol:
+ universal_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ symbol: MVGP.U.TO
+ brokerage_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ local_id: "1048101"
+ description: Metaverse Global ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ time_in_force: time_in_force
+ price: 31.33
+ action: null
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ units: 0.8008281904610115
+ order_type: null
+ account: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ account:
+ example: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ManualTrade-properties-account
+ order_type:
+ $ref: '#/components/schemas/OrderTypeStrict'
+ time_in_force:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ * GTD - Good Til Date
+ type: string
+ symbol:
+ $ref: '#/components/schemas/ManualTradeSymbol'
+ action:
+ $ref: '#/components/schemas/ActionStrict'
+ units:
+ description: Trade Units. Cannot work with notional value.
+ nullable: true
+ type: number
+ price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ type: object
+ ManualTradeSymbol:
+ additionalProperties: true
+ description: Manual trade symbol object
+ example:
+ universal_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ symbol: MVGP.U.TO
+ brokerage_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ local_id: "1048101"
+ description: Metaverse Global ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ properties:
+ brokerage_symbol_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ universal_symbol_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ currency:
+ $ref: '#/components/schemas/Currency'
+ local_id:
+ example: "1048101"
+ type: string
+ x-konfig-original-example: "1048101"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ManualTradeSymbol-properties-local_id
+ description:
+ example: Metaverse Global ETF
+ nullable: true
+ type: string
+ x-konfig-original-example: Metaverse Global ETF
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ManualTradeSymbol-properties-description
+ symbol:
+ example: MVGP.U.TO
+ type: string
+ x-konfig-original-example: MVGP.U.TO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ManualTradeSymbol-properties-symbol
+ type: object
+ ManualTradeBalance:
+ additionalProperties: true
+ description: Balance
+ example:
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 1.11
+ account:
+ number: Q6542138443
+ balance:
+ total:
+ amount: 15363.23
+ currency: USD
+ brokerage_authorization: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2021-06-04T16:26:46.523Z
+ institution_name: Alpaca
+ cash_restrictions:
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ account:
+ $ref: '#/components/schemas/Account'
+ currency:
+ $ref: '#/components/schemas/Currency'
+ cash:
+ description: Cash
+ example: 1.11
+ nullable: true
+ type: number
+ x-konfig-original-example: 1.11
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Cash
+ type: object
+ ManualTradeAndImpact:
+ additionalProperties: true
+ description: Manual Trade and Impact object
+ example:
+ trade:
+ symbol:
+ universal_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ symbol: MVGP.U.TO
+ brokerage_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ local_id: "1048101"
+ description: Metaverse Global ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ time_in_force: time_in_force
+ price: 31.33
+ action: null
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ units: 0.8008281904610115
+ order_type: null
+ account: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ trade_impacts:
+ - symbol:
+ universal_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ symbol: MVGP.U.TO
+ brokerage_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ local_id: "1048101"
+ description: Metaverse Global ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ time_in_force: time_in_force
+ price: 31.33
+ action: null
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ units: 0.8008281904610115
+ order_type: null
+ account: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ - symbol:
+ universal_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ symbol: MVGP.U.TO
+ brokerage_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ local_id: "1048101"
+ description: Metaverse Global ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ time_in_force: time_in_force
+ price: 31.33
+ action: null
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ units: 0.8008281904610115
+ order_type: null
+ account: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ combined_remaining_balance:
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ cash: 1.11
+ account:
+ number: Q6542138443
+ balance:
+ total:
+ amount: 15363.23
+ currency: USD
+ brokerage_authorization: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ meta:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ portfolio_group: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ created_date: 2021-06-04T16:26:46.523Z
+ institution_name: Alpaca
+ cash_restrictions:
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - amount: 100
+ currency: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: ALLOCATE_MAX
+ account: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ trade:
+ $ref: '#/components/schemas/ManualTrade'
+ trade_impacts:
+ items:
+ $ref: '#/components/schemas/ManualTrade'
+ type: array
+ combined_remaining_balance:
+ $ref: '#/components/schemas/ManualTradeBalance'
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ SymbolsQuotes:
+ description: Symbols and Tickers Quotes object
+ items:
+ $ref: '#/components/schemas/SymbolsQuotes_inner'
+ type: array
+ x-konfig-is-used-in-successful-response: true
+ ManualTradeForm:
+ description: Manual Trade Form
+ example:
+ universal_symbol_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ time_in_force: null
+ account_id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ stop: 31.33
+ price: 31.33
+ notional_value: ""
+ action: null
+ units: 0.8008281904610115
+ order_type: null
+ properties:
+ account_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ action:
+ $ref: '#/components/schemas/ActionStrict'
+ order_type:
+ $ref: '#/components/schemas/OrderTypeStrict'
+ price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ stop:
+ description: "Stop Price. If stop loss or stop limit order, the price to\
+ \ trigger the stop"
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StopPrice
+ time_in_force:
+ $ref: '#/components/schemas/TimeInForceStrict'
+ units:
+ description: Trade Units. Cannot work with notional value.
+ nullable: true
+ type: number
+ universal_symbol_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ notional_value: {}
+ type: object
+ x-konfig-properties:
+ notional_value:
+ nullable: true
+ ValidatedTradeBody:
+ description: Validated Trade Form
+ example:
+ wait_to_confirm: true
+ properties:
+ wait_to_confirm:
+ description: "Optional, defaults to true. Determines if a wait is performed\
+ \ to check on order status. If false, latency will be reduced but orders\
+ \ returned will be more likely to be of status PENDING as we will not\
+ \ wait to check on the status before responding to the request"
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ValidatedTradeBody-properties-wait_to_confirm
+ type: object
+ Cash:
+ description: Cash
+ example: 1.11
+ nullable: true
+ type: number
+ x-konfig-original-example: 1.11
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Cash
+ OrderTypeStrict:
+ description: Order Type
+ enum:
+ - Limit
+ - Market
+ - StopLimit
+ - StopLoss
+ type: string
+ OrderType:
+ description: Order Type potential values include (but are not limited to) -
+ Limit - Market - StopLimit - StopLoss
+ nullable: true
+ type: string
+ SnapTradeAPIDisclaimerAcceptStatus:
+ additionalProperties: true
+ description: Status of user acceptance of SnapTrade API disclaimer
+ properties:
+ accepted:
+ type: boolean
+ timestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeAPIDisclaimerAcceptStatus-properties-timestamp
+ type: object
+ TimeInForceStrict:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ enum:
+ - FOK
+ - Day
+ - GTC
+ type: string
+ TimeInForce:
+ description: |
+ Trade time in force examples:
+ * FOK - Fill Or Kill
+ * Day - Day
+ * GTC - Good Til Canceled
+ * GTD - Good Til Date
+ type: string
+ ActionStrict:
+ description: Trade Action
+ enum:
+ - BUY
+ - SELL
+ type: string
+ Action:
+ description: Trade Action potential values include (but are not limited to)
+ - BUY - SELL - BUY_COVER - SELL_SHORT - BUY_OPEN - BUY_CLOSE - SELL_OPEN -
+ SELL_CLOSE
+ type: string
+ Units:
+ description: Trade Units. Cannot work with notional value.
+ type: number
+ OpenUnits:
+ description: Trade Units
+ nullable: true
+ type: number
+ CancelledUnits:
+ description: Trade Units
+ nullable: true
+ type: number
+ FilledUnits:
+ description: Trade Units
+ nullable: true
+ type: number
+ Price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ NotionalValue: {}
+ StopPrice:
+ description: "Stop Price. If stop loss or stop limit order, the price to trigger\
+ \ the stop"
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StopPrice
+ UniversalActivity:
+ additionalProperties: true
+ description: A transaction or activity from an institution
+ example:
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ name: Vanguard Canadian Aggregate Bond Index ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ amount: 263.82
+ settlement_date: 2022-01-06T05:00:00.000Z
+ option_type: BUY_TO_OPEN
+ fee: 0
+ description: WALT DISNEY UNIT DIST ON 21 SHS REC 12/31/21 PAY 01/06/22
+ external_reference_id: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ units: 5
+ type: type
+ trade_date: 2022-01-06T05:00:00.000Z
+ institution: SnapTrade Investr
+ price: 0.4
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ fx_rate: 1.032
+ option_symbol:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ account:
+ number: Q6542138443
+ name: Registered Retirement Savings Account
+ sync_status:
+ holdings:
+ last_successful_sync: 2024-06-28 18:42:46.561408+00:00
+ initial_sync_completed: true
+ transactions:
+ last_successful_sync: 2022-01-24T00:00:00.000+00:00
+ initial_sync_completed: true
+ first_transaction_date: 2022-01-24T00:00:00.000+00:00
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ type: string
+ x-konfig-original-example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-id
+ account:
+ $ref: '#/components/schemas/AccountSimple'
+ amount:
+ example: 263.82
+ nullable: true
+ type: number
+ x-konfig-original-example: 263.82
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-amount
+ currency:
+ $ref: '#/components/schemas/Currency'
+ description:
+ example: WALT DISNEY UNIT DIST ON 21 SHS REC 12/31/21 PAY 01/06/22
+ type: string
+ x-konfig-original-example: WALT DISNEY UNIT DIST ON 21 SHS REC 12/31/21
+ PAY 01/06/22
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-description
+ fee:
+ example: 0
+ type: number
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-fee
+ fx_rate:
+ description: "The forex conversion rate involved in the transaction if provided\
+ \ by the brokerage. Used in cases where securities of one currency are\
+ \ purchased in a different currency, and the forex conversion is automatic.\
+ \ In those cases, price, amount and fee will be in the top level currency\
+ \ (activity -> currency)"
+ example: 1.032
+ nullable: true
+ type: number
+ x-konfig-original-example: 1.032
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-fx_rate
+ institution:
+ example: SnapTrade Investr
+ type: string
+ x-konfig-original-example: SnapTrade Investr
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-institution
+ option_type:
+ description: "If an option transaction, then it's type (BUY_TO_OPEN, SELL_TO_CLOSE,\
+ \ etc), otherwise empty string"
+ example: BUY_TO_OPEN
+ type: string
+ x-konfig-original-example: BUY_TO_OPEN
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-option_type
+ price:
+ example: 0.4
+ type: number
+ x-konfig-original-example: 0.4
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-price
+ settlement_date:
+ example: 2022-01-06T05:00:00.000Z
+ type: string
+ x-konfig-original-example: 2022-01-06T05:00:00.000Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-settlement_date
+ external_reference_id:
+ description: "Reference ID from brokerage used to identify related transactions.\
+ \ For example if an order comprises of several transactions (buy, fee,\
+ \ fx), they can be grouped if they share the same external_reference_id"
+ example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ nullable: true
+ type: string
+ x-konfig-original-example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-external_reference_id
+ symbol:
+ $ref: '#/components/schemas/Symbol'
+ option_symbol:
+ $ref: '#/components/schemas/OptionsSymbol'
+ trade_date:
+ example: 2022-01-06T05:00:00.000Z
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-06T05:00:00.000Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-trade_date
+ type:
+ description: Potential values include (but are not limited to) - DIVIDEND
+ - BUY - SELL - CONTRIBUTION - WITHDRAWAL - EXTERNAL_ASSET_TRANSFER_IN
+ - EXTERNAL_ASSET_TRANSFER_OUT - INTERNAL_CASH_TRANSFER_IN - INTERNAL_CASH_TRANSFER_OUT
+ - INTERNAL_ASSET_TRANSFER_IN - INTERNAL_ASSET_TRANSFER_OUT - INTEREST
+ - REBATE - GOV_GRANT - TAX - FEE - REI - FXT
+ type: string
+ units:
+ description: Usually but not necessarily an integer
+ example: 5
+ type: number
+ x-konfig-original-example: 5
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalActivity-properties-units
+ type: object
+ FigiInstrument:
+ additionalProperties: true
+ description: Open FIGI Identifiers
+ properties:
+ figi_code:
+ example: BBG000B9Y5X2
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG000B9Y5X2
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-FigiInstrument-properties-figi_code
+ figi_share_class:
+ example: BBG001S5N8V8
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG001S5N8V8
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-FigiInstrument-properties-figi_share_class
+ type: object
+ UniversalSymbol:
+ additionalProperties: true
+ description: Universal symbol
+ example:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ symbol:
+ example: VAB.TO
+ type: string
+ x-konfig-original-example: VAB.TO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-symbol
+ raw_symbol:
+ example: VAB
+ type: string
+ x-konfig-original-example: VAB
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-raw_symbol
+ description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ nullable: true
+ type: string
+ x-konfig-original-example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-description
+ currency:
+ $ref: '#/components/schemas/Currency'
+ exchange:
+ $ref: '#/components/schemas/Exchange'
+ type:
+ $ref: '#/components/schemas/SecurityType'
+ currencies:
+ items:
+ $ref: '#/components/schemas/Currency'
+ type: array
+ figi_code:
+ example: BBG000B9XRY4
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG000B9XRY4
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-figi_code
+ figi_instrument:
+ $ref: '#/components/schemas/FigiInstrumentNullable'
+ required:
+ - currencies
+ - currency
+ - id
+ - raw_symbol
+ - symbol
+ - type
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ UnderlyingSymbol:
+ additionalProperties: true
+ description: Underlying Symbol
+ example:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ symbol:
+ example: SPY
+ type: string
+ x-konfig-original-example: SPY
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UnderlyingSymbol-properties-symbol
+ description:
+ example: SPDR S&P 500 ETF Trust
+ nullable: true
+ type: string
+ x-konfig-original-example: SPDR S&P 500 ETF Trust
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UnderlyingSymbol-properties-description
+ currency:
+ $ref: '#/components/schemas/Currency'
+ exchange:
+ $ref: '#/components/schemas/USExchange'
+ type:
+ $ref: '#/components/schemas/SecurityType'
+ currencies:
+ items:
+ $ref: '#/components/schemas/Currency'
+ type: array
+ figi_code:
+ example: BBG000B9XRY4
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG000B9XRY4
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UnderlyingSymbol-properties-figi_code
+ figi_instrument:
+ $ref: '#/components/schemas/FigiInstrumentNullable'
+ type: object
+ OptionsSymbol:
+ additionalProperties: true
+ description: Options Symbol
+ example:
+ ticker: SPY 220819P00200000
+ exchange_id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
+ local_id: "40817960"
+ is_mini_option: false
+ option_type: CALL
+ underlying_symbol:
+ figi_code: BBG000B9XRY4
+ symbol: SPY
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ description: SPDR S&P 500 ETF Trust
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: ARCA
+ code: ARCX
+ timezone: America/New_York
+ name: NYSE ARCA
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: None
+ allows_cryptocurrency_symbols: false
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ expiration_date: 2017-07-17T15:13:07.177712+00:00
+ strike_price: 200
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ ticker:
+ example: SPY 220819P00200000
+ type: string
+ x-konfig-original-example: SPY 220819P00200000
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-ticker
+ option_type:
+ enum:
+ - CALL
+ - PUT
+ example: CALL
+ type: string
+ x-konfig-original-example: CALL
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-option_type
+ strike_price:
+ example: 200
+ type: number
+ x-konfig-original-example: 200
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-strike_price
+ expiration_date:
+ example: 2017-07-17T15:13:07.177712+00:00
+ format: datetime
+ type: string
+ x-konfig-original-example: 2017-07-17T15:13:07.177712+00:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-expiration_date
+ is_mini_option:
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-is_mini_option
+ underlying_symbol:
+ $ref: '#/components/schemas/UnderlyingSymbol'
+ local_id:
+ example: "40817960"
+ type: string
+ x-konfig-original-example: "40817960"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-local_id
+ exchange_id:
+ format: uuid
+ type: string
+ required:
+ - expiration_date
+ - id
+ - option_type
+ - strike_price
+ - ticker
+ - underlying_symbol
+ type: object
+ OptionLeg:
+ additionalProperties: true
+ description: Option Leg
+ properties:
+ action:
+ enum:
+ - BUY_TO_OPEN
+ - BUY_TO_CLOSE
+ - SELL_TO_OPEN
+ - SELL_TO_CLOSE
+ type: string
+ option_symbol_id:
+ description: Obtained from calling options chain endpoint (option_id)
+ example: SPY220819P00200000
+ type: string
+ x-konfig-original-example: SPY220819P00200000
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionLeg-properties-option_symbol_id
+ quantity:
+ example: 1
+ type: number
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionLeg-properties-quantity
+ type: object
+ SecurityType:
+ additionalProperties: true
+ description: Security Type
+ example:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ code:
+ example: cs
+ type: string
+ x-konfig-original-example: cs
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SecurityType-properties-code
+ description:
+ example: Common Stock
+ type: string
+ x-konfig-original-example: Common Stock
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SecurityType-properties-description
+ is_supported:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SecurityType-properties-is_supported
+ type: object
+ UserSettings:
+ additionalProperties: true
+ description: User account settings
+ properties:
+ email:
+ example: ops@snaptrade.com
+ format: email
+ type: string
+ x-konfig-original-example: ops@snaptrade.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Email
+ name:
+ example: James Bond
+ type: string
+ x-konfig-original-example: James Bond
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-name
+ receive_cash_notification:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-receive_cash_notification
+ receive_drift_notification:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-receive_drift_notification
+ user_trial_activated:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-user_trial_activated
+ activated_trial_date:
+ example: 2017-07-17T15:13:07.177712+00:00
+ format: dateTime
+ type: string
+ x-konfig-original-example: 2017-07-17T15:13:07.177712+00:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-activated_trial_date
+ demo:
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-demo
+ api_enabled:
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-api_enabled
+ drift_threshold:
+ example: 95
+ type: number
+ x-konfig-original-example: 95
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserSettings-properties-drift_threshold
+ preferred_currency:
+ $ref: '#/components/schemas/Currency'
+ type: object
+ Time:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ BrokerageType:
+ additionalProperties: true
+ description: Type of brokerage
+ example:
+ name: Traditional Brokerage
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ example: Traditional Brokerage
+ type: string
+ x-konfig-original-example: Traditional Brokerage
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageType-properties-name
+ type: object
+ UserErrorLog:
+ additionalProperties: true
+ description: An API error log for a specific SnapTrade user.
+ properties:
+ requestedAt:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserErrorLog-properties-requestedAt
+ response:
+ type: string
+ statusCode:
+ example: 200
+ type: number
+ x-konfig-original-example: 200
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserErrorLog-properties-statusCode
+ queryParams:
+ type: string
+ httpMethod:
+ example: POST
+ type: string
+ x-konfig-original-example: POST
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserErrorLog-properties-httpMethod
+ endpoint:
+ example: api/v1/snapTrade
+ type: string
+ x-konfig-original-example: api/v1/snapTrade
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UserErrorLog-properties-endpoint
+ type: object
+ rsaPublicKey:
+ description: Open SSH RSA public key
+ example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
+ type: string
+ x-konfig-original-example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-rsaPublicKey
+ encryptedResponse:
+ additionalProperties: false
+ description: |
+ This response consists of 2 different components that must be decrypted to obtain the decrypted message
+
+ * Decrypting the encryptedSharedKey
+
+ The encrypted shared key is a shared key that was randomly generated by SnapTrade and encrypted using the users SSH public key provided when registering the user
+ It is needed to decrypt the message in step 2.
+
+ To decrypt the shared key, the user should have access to their SSH private key stored locally in their device
+
+ An example Python code on how to decrypt the shared key is shown below
+
+ ```
+ def decrypt_rsa_message(self, encrypted_message):
+ from Crypto.Cipher import PKCS1_OAEP
+ from Crypto.PublicKey import RSA
+ from base64 import b64decode
+
+ f = open('private.pem', 'r')
+ private_key = RSA.import_key(f.read())
+ cipher = PKCS1_OAEP.new(private_key)
+
+ return cipher.decrypt(b64decode(encrypted_message.encode())).decode()
+ ```
+
+ * Decrypting the encryptedMessageData
+
+ The data meant to be returned by an endpoint can be obtained by decrypting the encrypted message
+
+ An encrypted message is a message that is encrypted using AES - MODE OCB with the shared key obtained in step one
+
+ An example code to decrypt the encrypted message is shown below
+
+ ```
+ def decrypt_aes_message(self, shared_key, encrypted_message):
+ from Crypto.Cipher import AES
+ from base64 import b64decode
+
+ encrypted_msg = b64decode(encrypted_message["encryptedMessage"].encode())
+ tag = b64decode(encrypted_message["tag"].encode())
+ nonce = b64decode(encrypted_message["nonce"].encode())
+ cipher = AES.new(shared_key.encode(), AES.MODE_OCB, nonce=nonce)
+
+ return cipher.decrypt_and_verify(encrypted_msg, tag).decode()
+ ```
+ properties:
+ encryptedSharedKey:
+ example: 5UEaY9QGzcNTr8y2jGDUI79jY1OdfK9x
+ type: string
+ x-konfig-original-example: 5UEaY9QGzcNTr8y2jGDUI79jY1OdfK9x
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedSharedKey
+ encryptedMessageData:
+ $ref: '#/components/schemas/encryptedResponse_encryptedMessageData'
+ type: object
+ konfig-generated-schema-paths--holdings-get-parameters-2-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-get-parameters-2-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-balances-get-parameters-2-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-positions-get-parameters-2-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-orders-get-parameters-3-schema:
+ example: 30
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-orders-get-parameters-4-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-quotes-get-parameters-4-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-orders-cancel-post-parameters-2-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--accounts-accountId-symbols-post-parameters-2-schema:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--brokerageAuthorizationTypes-get-parameters-0-schema:
+ example: "QUESTRADE,ALPACA"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--activities-get-parameters-4-schema:
+ example: DIVIDEND
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-paths--performance-custom-get-parameters-3-schema:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-requestBodies-MockSignatureRequestBody-content-application-json-schema:
+ additionalProperties: true
+ example:
+ userId: snaptrade-user-123
+ userSecret: CHRIS.P.BACON
+ properties:
+ userId:
+ example: snaptrade-user-123
+ type: string
+ userSecret:
+ example: CHRIS.P.BACON
+ type: string
+ type: object
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-CashRestriction-properties-amount:
+ example: 100
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Amount-properties-amount:
+ example: 15363.23
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Amount-properties-currency:
+ example: USD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Account-properties-name:
+ example: Registered Retirement Savings Account
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Account-properties-number:
+ example: Q6542138443
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Account-properties-institution_name:
+ example: Alpaca
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Account-properties-created_date:
+ example: 2021-06-04T16:26:46.523Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Account-properties-meta:
+ additionalProperties: true
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ properties:
+ type:
+ example: Margin
+ type: string
+ status:
+ example: ACTIVE
+ type: string
+ institution_name:
+ example: Alpaca
+ type: string
+ type: object
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-AccountSimple-properties-name:
+ example: Registered Retirement Savings Account
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-AccountSimple-properties-number:
+ example: Q6542138443
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-AccountID:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-AccountIDs:
+ example: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthID:
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthIDs:
+ example: "917c8734-8470-4a3e-a18f-57c3f2ee6631,65e839a3-9103-4cfb-9b72-2071ef80c5f2"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsPosition-properties-price:
+ example: 113.15
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsPosition-properties-units:
+ example: 10
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsPosition-properties-average_purchase_price:
+ example: 108.3353
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-estimatedCommissions:
+ example: 11.95
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-buyingPowerEffect:
+ example: -156.3435
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-buyingPowerResult:
+ example: 8800.0882
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-maintExcessEffect:
+ example: -46.95
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-maintExcessResult:
+ example: 2642.669129
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-tradeValueCalculation:
+ example: 1 x 0.07 x 100 + 1 x 0.28 x 100 = DR 35.00 CAD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-legId:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-symbol:
+ example: AC21Oct22C30.00.MX
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-symbolId:
+ example: 41790511
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-legRatioQuantity:
+ example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-side:
+ example: BTO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-side:
+ example: Buy
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-effect:
+ example: Debit
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-price:
+ example: 0.35
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyImpact-properties-strategy:
+ example: Strangle
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orderId:
+ example: 1069605761
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-id:
+ example: 1069605761
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-symbol:
+ example: AC.TO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-symbolId:
+ example: 7960447
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-totalQuantity:
+ example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-openQuantity:
+ example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-filledQuantity:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-canceledQuantity:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-side:
+ example: Buy
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-orderType:
+ example: Market
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-avgExecPrice:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-source:
+ example: TradingAPI
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-timeInForce:
+ example: Day
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-state:
+ example: Pending
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-rejectionReason:
+ example: None
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-chainId:
+ example: 1069605761
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-creationTime:
+ example: 2022-07-19T19:53:47.915Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-updateTime:
+ example: 2022-07-19T19:53:47.939Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-notes:
+ example: None
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-primaryRoute:
+ example: AUTO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-secondaryRoute:
+ example: AUTO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-orderRoute:
+ example: MX
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-venueHoldingOrder:
+ example: None
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-comissionCharged:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-exchangeOrderId:
+ example: None
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-userId:
+ example: 514603
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-legId:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-symbol:
+ example: AC21Oct22C30.00.MX
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-symbolId:
+ example: 41790511
+ type: number
+ x-do-not-generate: true
+ ? konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-legRatioQuantity
+ : example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-side:
+ example: BTO
+ type: string
+ x-do-not-generate: true
+ ? konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-avgExecPrice
+ : example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-strategyType:
+ example: Strangle
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-orderGroupId:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionStrategy-properties-strategy_type:
+ example: BUTTERFLY
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionStrategy-properties-number_of_legs:
+ example: 2
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-option_symbol_id:
+ example: AAPLC20221111
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-index:
+ example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-action:
+ example: BUY_TO_OPEN
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-quantity:
+ example: 10
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyQuotes-properties-volatility:
+ example: 0.141
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-delta:
+ example: 0.1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-gamma:
+ example: 0.1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-theta:
+ example: 0.1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-vega:
+ example: 0.1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-rho:
+ example: 0.1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderRecord-properties-filled_quantity:
+ example: 10
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderRecord-properties-open_quantity:
+ example: 10
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StrategyOrderRecord-properties-closed_quantity:
+ example: 10
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-name:
+ example: Registered Retirement Savings Account
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-number:
+ example: Q6542138443
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-institution_name:
+ example: Alpaca
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccount-properties-meta:
+ additionalProperties: true
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ properties:
+ type:
+ example: Margin
+ type: string
+ status:
+ example: ACTIVE
+ type: string
+ institution_name:
+ example: Alpaca
+ type: string
+ type: object
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-name:
+ example: Robinhood Individual
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-number:
+ example: Q6542138443
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-institution_name:
+ example: Alpaca
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-meta:
+ additionalProperties: true
+ example:
+ type: Margin
+ status: ACTIVE
+ institution_name: Alpaca
+ properties:
+ type:
+ example: Margin
+ type: string
+ status:
+ example: ACTIVE
+ type: string
+ institution_name:
+ example: Alpaca
+ type: string
+ type: object
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsAccountAccountId-properties-created_date:
+ example: 2024-07-23T22:50:22.761Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsTotalValue-properties-value:
+ example: 32600.71
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeHoldingsTotalValue-properties-currency:
+ example: USD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Balance-properties-cash:
+ example: 300.71
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Balance-properties-buying_power:
+ example: 410.71
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ConsumerKey:
+ example: UxrFb4cHdRWlmJKNuJjA6hoaN8uVa6jPGFVUl2UKHuKmurCnaU
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Currency-properties-id:
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Currency-properties-code:
+ example: USD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Currency-properties-name:
+ example: US Dollar
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-code:
+ example: TSX
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-mic_code:
+ example: XTSE
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-name:
+ example: Toronto Stock Exchange
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-timezone:
+ example: America/New_York
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-start_time:
+ example: 09:30:00
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-close_time:
+ example: "57600"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Exchange-properties-suffix:
+ example: .TO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-code:
+ example: ARCX
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-mic_code:
+ example: ARCA
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-name:
+ example: NYSE ARCA
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-timezone:
+ example: America/New_York
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-start_time:
+ example: 09:30:00
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-close_time:
+ example: "57600"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-suffix:
+ example: None
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-USExchange-properties-allows_cryptocurrency_symbols:
+ example: false
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-JWT-properties-token:
+ example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImZSbUdsbWFyU1dtZDY5RDkyeGZWbVdCWUxCS0x0QiIsImV4cCI6MTU0MDA1NTMxOSwiZW1haWwiOiJ3b29kQHN5bmNocm92ZXJnZS5jb20iLCJvcmlnX2lhdCI6MTUzNzM3NjkxOX0.ZSn85i3kSBvEP5wuhWOE8_w903N1G1AfiVlD3fmri78
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ClientID:
+ example: SNAPTRADETEST
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserID:
+ example: snaptrade-user-123
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSecret:
+ example: USERSECRET123
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-contributionStreak:
+ example: 5
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-contributionMonthsContributed:
+ example: 10
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-contributionTotalMonths:
+ example: 13
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-dividendIncome:
+ example: 135.97
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-monthlyDividends:
+ example: 26.37
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-badTickers-items:
+ example: MAW105
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-commissions:
+ example: 3.26
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-forexFees:
+ example: 5.26
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-fees:
+ example: 2.72
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PerformanceCustom-properties-rateOfReturn:
+ example: 0.082312367452
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SubPeriodReturnRate-properties-rateOfReturn:
+ example: 0.012312367452
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-DividendAtDate-properties-symbol:
+ example: AAPL
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-DividendAtDate-properties-amount:
+ example: 6.82
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-DividendAtDate-properties-currency:
+ example: CAD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-redirect_uri:
+ example: https://example.com/oauth/snaptrade
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-name:
+ example: Wealthy Chimpmunk
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-slug:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-logo_url:
+ example: https://example.com/logo.png
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-pin_required:
+ example: false
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-can_access_trades:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-can_access_holdings:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-can_access_account_history:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-can_access_reference_data:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-can_access_portfolio_management:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PartnerData-properties-can_access_orders:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Position-properties-units:
+ example: 40
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Position-properties-price:
+ example: 113.15
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Position-properties-open_pnl:
+ example: 0.44
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Position-properties-fractional_units:
+ example: 1.44
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Position-properties-average_purchase_price:
+ example: 108.3353
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-RedirectTokenandPin-properties-token:
+ example: myDAIBCP/EYqSmMByhMRB65aMa%2BdYhu2xRsGQe0sDd9SgZXMbdRh3eBaTh/bLViVGQoil6p9ytUUVhkqWalejOqCNVkXXTk/iNPTPaFCeh9%2B
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-RedirectTokenandPin-properties-pin:
+ example: usERdeFiP@1in9
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Signature:
+ example: QJPQgW0Y8mWbG9Whw/fhCYofIgSo/UAo2AIc1bBPMnY=
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SignedContent:
+ example: "{\"content\":{\"userId\":\"snaptrade-user-123\",\"userSecret\":\"\
+ CHRIS.P.BACON\"},\"path\":\"/api/v1/snapTrade/mockSignature\",\"query\":\"\
+ clientId=SNAPTRADETEST×tamp=1635790389\"}"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-broker:
+ example: ALPACA
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-immediateRedirect:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-customRedirect:
+ example: https://snaptrade.com
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-reconnect:
+ example: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeUserID:
+ example: snaptrade-user-123
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeUserSecret:
+ example: h81@cx1lkalablakwjaltkejraj11=
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Symbol-properties-symbol:
+ example: VAB.TO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Symbol-properties-raw_symbol:
+ example: VAB
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Symbol-properties-name:
+ example: Vanguard Canadian Aggregate Bond Index ETF
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Symbol-properties-figi_code:
+ example: BBG000B9XRY4
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Timestamp:
+ example: 1635790389
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserList:
+ example:
+ - user1
+ - user2
+ - user3
+ items:
+ example: user1
+ type: string
+ type: array
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-DeleteUserResponse-properties-status:
+ example: deleted
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorizationTypeReadOnly-properties-brokerage-properties-name:
+ example: Questrade
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorizationTypeReadOnly-properties-brokerage-properties-slug:
+ example: QUESTRADE
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-name:
+ example: Questrade
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-display_name:
+ example: Questrade
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-description:
+ example: Questrade is an online brokerage firm and wealth management firm based
+ in Canada. It is Canada's largest discount broker.
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-aws_s3_logo_url:
+ example: https://www.snaptrade.com/questrade.logo
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-aws_s3_square_logo_url:
+ example: https://www.snaptrade.com/questrade.logo
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-open_url:
+ example: https://www.brokerage.com
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-slug:
+ example: QUESTRADE
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-url:
+ example: https://www.questrade.com/
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-enabled:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-maintenance_mode:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-allows_fractional_units:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-allows_trading:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-has_reporting:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-is_real_time_connection:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-allows_trading_through_snaptrade_api:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-is_scraping_integration:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Brokerage-properties-exchanges:
+ example:
+ - 2bcd7cc3-e922-4976-bce1-9858296801c3
+ - 4bcd8cc3-c122-4974-dc21-1858296801f4
+ items:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: string
+ type: array
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-name:
+ example: Connection-1
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-type:
+ example: trade
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-disabled:
+ example: false
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-disabled_date:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorization-properties-meta:
+ additionalProperties: true
+ example:
+ identifier: 123456
+ properties:
+ identifier:
+ example: 123456
+ type: number
+ type: object
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorizationRefreshConfirmation-properties-detail:
+ example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf scheduled for refresh
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageAuthorizationDisabledConfirmation-properties-detail:
+ example: Connection 0b3ebefb-ed47-43df-cd8f-729a4420b5cf has been disabled
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SessionEvent-properties-brokerage_status_code:
+ example: 400
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageSymbol-properties-description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageSymbol-properties-allows_fractional_units:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionBrokerageSymbol-properties-description:
+ example: SPY CALL 7/17 200
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PositionSymbol-properties-description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PositionSymbol-properties-local_id:
+ example: "3291231"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PositionSymbol-properties-is_quotable:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PositionSymbol-properties-is_tradable:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionChain-items-properties-expiryDate:
+ example: 2022-07-08T04:00:00.000Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionChain-items-properties-description:
+ example: APPLE INC
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionChain-items-properties-listingExchange:
+ example: OPRA
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionChain-items-properties-optionExerciseType:
+ example: American
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-optionRoot:
+ example: AAPL
+ type: string
+ x-do-not-generate: true
+ ? konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-chainPerStrikePrice-items-properties-strikePrice
+ : example: 70
+ type: number
+ x-do-not-generate: true
+ ? konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-chainPerStrikePrice-items-properties-callSymbolId
+ : example: 42816081
+ type: number
+ x-do-not-generate: true
+ ? konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-chainPerStrikePrice-items-properties-putSymbolId
+ : example: 42816129
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-multiplier:
+ example: 100
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Email:
+ example: ops@snaptrade.com
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ExchangeRatePairs-properties-exchange_rate:
+ example: 1.32
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ModelAssetClass-properties-name:
+ example: Bonds
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ModelPortfolio-properties-name:
+ example: SnapTrade 5x Aggressive Growth Fund
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ModelPortfolio-properties-model_type:
+ example: -1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ModelPortfolioAssetClass-properties-percent:
+ example: 100
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ModelPortfolioSecurity-properties-percent:
+ example: 100
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-NetContributions-properties-contributions:
+ example: 524.74
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-NetContributions-properties-currency:
+ example: CAD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-NetDividend-properties-amount:
+ example: 165.05
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-NetDividend-properties-currency:
+ example: USD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PastValue-properties-value:
+ example: 52.74
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PastValue-properties-currency:
+ example: CAD
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Percent:
+ example: 90
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupID:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroup-properties-name:
+ example: Combined Retirement Portfolio
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupInfo-properties-accuracy:
+ example: 0.962
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupPosition-properties-price:
+ example: 24.81
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupPosition-properties-units:
+ example: 15
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupSettings-properties-buyOnly:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupSettings-properties-cash_optimizer:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-PortfolioGroupSettings-properties-notifyFrequency:
+ example: 7 00:00:00
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ReportingDate:
+ example: 2022-01-24
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ReportingFrequency:
+ example: monthly
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Status-properties-version:
+ example: 151
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Status-properties-timestamp:
+ example: 2022-11-04T01:47:00.377Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Status-properties-online:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SymbolQuery-properties-substring:
+ example: apple
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SyncStatusDate:
+ example: 2022-01-24
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-HoldingsSyncStatusDate:
+ example: 2024-06-28 18:42:46.561408+00:00
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TargetAsset-properties-is_supported:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TargetAsset-properties-is_excluded:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Trade-properties-action:
+ example: BUY
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Trade-properties-units:
+ example: 6
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Trade-properties-price:
+ example: 24.81
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Trade-properties-sequence:
+ example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-state:
+ example: Executed
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-filled_units:
+ example: 3
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-action:
+ example: SELL
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-price:
+ example: 23.44
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-commissions:
+ example: 23.44
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeExecutionStatus-properties-meta:
+ additionalProperties: true
+ example:
+ canceledUnits: 2
+ properties:
+ canceledUnits:
+ example: 2
+ type: number
+ type: object
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeImpact-properties-remaining_cash:
+ example: 1.01
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeImpact-properties-estimated_commissions:
+ example: 10.05
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-TradeImpact-properties-forex_fees:
+ example: 2.01
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ManualTrade-properties-account:
+ example: 2bcd7cc3-e922-4976-bce1-9855556801c3
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ManualTradeSymbol-properties-local_id:
+ example: "1048101"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ManualTradeSymbol-properties-description:
+ example: Metaverse Global ETF
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ManualTradeSymbol-properties-symbol:
+ example: MVGP.U.TO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-bid_price:
+ example: 8.43
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-ask_price:
+ example: 8.43
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-last_trade_price:
+ example: 8.74
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-bid_size:
+ example: 260
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-ask_size:
+ example: 344
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-ValidatedTradeBody-properties-wait_to_confirm:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Cash:
+ example: 1.11
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradeAPIDisclaimerAcceptStatus-properties-timestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Price:
+ example: 31.33
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-StopPrice:
+ example: 31.33
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-id:
+ example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-amount:
+ example: 263.82
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-description:
+ example: WALT DISNEY UNIT DIST ON 21 SHS REC 12/31/21 PAY 01/06/22
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-fee:
+ example: 0
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-fx_rate:
+ example: 1.032
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-institution:
+ example: SnapTrade Investr
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-option_type:
+ example: BUY_TO_OPEN
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-price:
+ example: 0.4
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-settlement_date:
+ example: 2022-01-06T05:00:00.000Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-external_reference_id:
+ example: 2f7dc9b3-5c33-4668-3440-2b31e056ebe6
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-trade_date:
+ example: 2022-01-06T05:00:00.000Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalActivity-properties-units:
+ example: 5
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-FigiInstrument-properties-figi_code:
+ example: BBG000B9Y5X2
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-FigiInstrument-properties-figi_share_class:
+ example: BBG001S5N8V8
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalSymbol-properties-symbol:
+ example: VAB.TO
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalSymbol-properties-raw_symbol:
+ example: VAB
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalSymbol-properties-description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UniversalSymbol-properties-figi_code:
+ example: BBG000B9XRY4
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UnderlyingSymbol-properties-symbol:
+ example: SPY
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UnderlyingSymbol-properties-description:
+ example: SPDR S&P 500 ETF Trust
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UnderlyingSymbol-properties-figi_code:
+ example: BBG000B9XRY4
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsSymbol-properties-ticker:
+ example: SPY 220819P00200000
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsSymbol-properties-option_type:
+ example: CALL
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsSymbol-properties-strike_price:
+ example: 200
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsSymbol-properties-expiration_date:
+ example: 2017-07-17T15:13:07.177712+00:00
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsSymbol-properties-is_mini_option:
+ example: false
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionsSymbol-properties-local_id:
+ example: "40817960"
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionLeg-properties-option_symbol_id:
+ example: SPY220819P00200000
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-OptionLeg-properties-quantity:
+ example: 1
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SecurityType-properties-code:
+ example: cs
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SecurityType-properties-description:
+ example: Common Stock
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SecurityType-properties-is_supported:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-SnapTradePartnerAPICredential-properties-redirect_uri:
+ example: https://www.example.com/oauth
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-name:
+ example: James Bond
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-receive_cash_notification:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-receive_drift_notification:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-user_trial_activated:
+ example: true
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-activated_trial_date:
+ example: 2017-07-17T15:13:07.177712+00:00
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-demo:
+ example: false
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-api_enabled:
+ example: false
+ type: boolean
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserSettings-properties-drift_threshold:
+ example: 95
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-Time:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-BrokerageType-properties-name:
+ example: Traditional Brokerage
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-WebhookBase-properties-webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-WebhookBase-properties-clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-WebhookBase-properties-userId:
+ example: external_user@test.com
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserErrorLog-properties-requestedAt:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserErrorLog-properties-statusCode:
+ example: 200
+ type: number
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserErrorLog-properties-httpMethod:
+ example: POST
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-UserErrorLog-properties-endpoint:
+ example: api/v1/snapTrade
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-rsaPublicKey:
+ example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedSharedKey:
+ example: 5UEaY9QGzcNTr8y2jGDUI79jY1OdfK9x
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedMessageData-properties-encryptedMessage:
+ example: 9Xy05vqZOfp0OpW5fLAaDw==
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedMessageData-properties-tag:
+ example: mWZPkpQh5ktbcz6N7cTRmQ==
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedMessageData-properties-nonce:
+ example: None
+ type: string
+ x-do-not-generate: true
+ konfig-generated-schema-single-parameter-schema-get--:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--snapTrade-registerUser:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/SnapTradeUserID'
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--snapTrade-login:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ broker:
+ description: "Slug of the brokerage to connect the user to. See [this document](https://snaptrade.notion.site/SnapTrade-Brokerage-Integrations-f83946a714a84c3caf599f6a945f0ead)\
+ \ for a list of supported brokerages and their slugs."
+ example: ALPACA
+ type: string
+ x-konfig-original-example: ALPACA
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-broker
+ immediateRedirect:
+ description: "When set to True, user will be redirected back to the partner's\
+ \ site instead of the connection portal"
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-immediateRedirect
+ customRedirect:
+ description: URL to redirect the user to after the user connects their brokerage
+ account
+ example: https://snaptrade.com
+ type: string
+ x-konfig-original-example: https://snaptrade.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-customRedirect
+ reconnect:
+ description: The UUID of the brokerage connection to be reconnected. This
+ parameter should be left empty unless you are reconnecting a disabled
+ connection. See ‘Reconnecting Accounts’ for more information.
+ example: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ type: string
+ x-konfig-original-example: 8b5f262d-4bb9-365d-888a-202bd3b15fa1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SnapTradeLoginUserRequestBody-properties-reconnect
+ connectionType:
+ description: Sets whether the connection should be read or trade
+ enum:
+ - read
+ - trade
+ type: string
+ connectionPortalVersion:
+ description: "Sets the version of the connection portal to render, with\
+ \ a default to 'v3'"
+ enum:
+ - v2
+ - v3
+ type: string
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-get--snapTrade-listUsers:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-delete--snapTrade-deleteUser:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ required:
+ - userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ konfig-generated-schema-single-parameter-schema-post--snapTrade-resetUserSecret:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/SnapTradeUserID'
+ userSecret:
+ $ref: '#/components/schemas/SnapTradeUserSecret'
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-get--authorizations:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-delete--authorizations-authorizationId:
+ additionalProperties: true
+ properties:
+ authorizationId:
+ $ref: '#/components/schemas/Id'
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - authorizationId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - authorizationId
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-get--authorizations-authorizationId:
+ additionalProperties: true
+ properties:
+ authorizationId:
+ $ref: '#/components/schemas/Id'
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - authorizationId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - authorizationId
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-post--authorizations-authorizationId-refresh:
+ additionalProperties: true
+ properties:
+ authorizationId:
+ $ref: '#/components/schemas/Id'
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - authorizationId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - authorizationId
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-post--authorizations-authorizationId-disable:
+ additionalProperties: true
+ properties:
+ authorizationId:
+ $ref: '#/components/schemas/Id'
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - authorizationId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - authorizationId
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-get--sessionEvents:
+ additionalProperties: true
+ properties:
+ PartnerClientId:
+ $ref: '#/components/schemas/ClientID'
+ userId:
+ $ref: '#/components/schemas/AccountIDs'
+ sessionId:
+ $ref: '#/components/schemas/AccountIDs'
+ required:
+ - PartnerClientId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - PartnerClientId
+ - userId
+ - sessionId
+ konfig-generated-schema-single-parameter-schema-get--accounts:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-get--holdings:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ brokerage_authorizations:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--holdings-get-parameters-2-schema
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - brokerage_authorizations
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-holdings:
+ additionalProperties: true
+ properties:
+ accountId:
+ $ref: '#/components/schemas/AccountID'
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - accountId
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-get-parameters-2-schema
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-put--accounts-accountId:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ format: uuid
+ type: string
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-balances:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-balances-get-parameters-2-schema
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-positions:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-positions-get-parameters-2-schema
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-orders:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ state:
+ enum:
+ - all
+ - open
+ - executed
+ type: string
+ days:
+ example: 30
+ format: int32
+ minimum: 1
+ type: integer
+ x-konfig-original-example: 30
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-orders-get-parameters-3-schema
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-orders-get-parameters-4-schema
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - state
+ - days
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-quotes:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ symbols:
+ type: string
+ use_ticker:
+ type: boolean
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-quotes-get-parameters-4-schema
+ required:
+ - accountId
+ - symbols
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - symbols
+ - use_ticker
+ - accountId
+ konfig-generated-schema-single-parameter-schema-post--trade-impact:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ account_id:
+ $ref: '#/components/schemas/Id'
+ action:
+ $ref: '#/components/schemas/ActionStrict'
+ order_type:
+ $ref: '#/components/schemas/OrderTypeStrict'
+ price:
+ $ref: '#/components/schemas/Price'
+ stop:
+ $ref: '#/components/schemas/StopPrice'
+ time_in_force:
+ $ref: '#/components/schemas/TimeInForceStrict'
+ units:
+ $ref: '#/components/schemas/UnitsNullable'
+ universal_symbol_id:
+ $ref: '#/components/schemas/Id'
+ notional_value:
+ $ref: '#/components/schemas/NotionalValueNullable'
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-post--trade-tradeId:
+ additionalProperties: true
+ properties:
+ tradeId:
+ format: uuid
+ type: string
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ wait_to_confirm:
+ description: "Optional, defaults to true. Determines if a wait is performed\
+ \ to check on order status. If false, latency will be reduced but orders\
+ \ returned will be more likely to be of status PENDING as we will not\
+ \ wait to check on the status before responding to the request"
+ example: true
+ nullable: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-ValidatedTradeBody-properties-wait_to_confirm
+ required:
+ - tradeId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - tradeId
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-post--trade-place:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ account_id:
+ $ref: '#/components/schemas/Id'
+ action:
+ $ref: '#/components/schemas/ActionStrict'
+ order_type:
+ $ref: '#/components/schemas/OrderTypeStrict'
+ price:
+ $ref: '#/components/schemas/Price'
+ stop:
+ $ref: '#/components/schemas/StopPrice'
+ time_in_force:
+ $ref: '#/components/schemas/TimeInForceStrict'
+ units:
+ $ref: '#/components/schemas/UnitsNullable'
+ universal_symbol_id:
+ $ref: '#/components/schemas/Id'
+ notional_value:
+ $ref: '#/components/schemas/NotionalValueNullable'
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-post--accounts-accountId-orders-cancel:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-orders-cancel-post-parameters-2-schema
+ brokerage_order_id:
+ $ref: '#/components/schemas/Id'
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--snapTrade-partners:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--accounts-accountId-symbols:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ format: uuid
+ type: string
+ x-konfig-original-example: 917c8734-8470-4a3e-a18f-57c3f2ee6631
+ x-konfig-generated-schema: konfig-generated-schema-paths--accounts-accountId-symbols-post-parameters-2-schema
+ substring:
+ example: apple
+ type: string
+ x-konfig-original-example: apple
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolQuery-properties-substring
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-options:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ format: uuid
+ type: string
+ required:
+ - accountId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-optionsChain:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ format: uuid
+ type: string
+ symbol:
+ format: uuid
+ type: string
+ required:
+ - accountId
+ - symbol
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ - symbol
+ konfig-generated-schema-single-parameter-schema-post--accounts-accountId-optionStrategy:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ format: uuid
+ type: string
+ underlying_symbol_id:
+ $ref: '#/components/schemas/Id'
+ legs:
+ items:
+ $ref: '#/components/schemas/OptionLeg'
+ type: array
+ strategy_type:
+ enum:
+ - CUSTOM
+ type: string
+ required:
+ - accountId
+ - legs
+ - strategy_type
+ - underlying_symbol_id
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ konfig-generated-schema-single-parameter-schema-get--accounts-accountId-optionStrategy-optionStrategyId:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ format: uuid
+ type: string
+ optionStrategyId:
+ $ref: '#/components/schemas/Id'
+ required:
+ - accountId
+ - optionStrategyId
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ - optionStrategyId
+ konfig-generated-schema-single-parameter-schema-post--accounts-accountId-optionStrategy-optionStrategyId-execute:
+ additionalProperties: true
+ properties:
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ accountId:
+ $ref: '#/components/schemas/Id'
+ optionStrategyId:
+ $ref: '#/components/schemas/Id'
+ order_type:
+ $ref: '#/components/schemas/OrderTypeStrict'
+ time_in_force:
+ $ref: '#/components/schemas/TimeInForceStrict'
+ price:
+ $ref: '#/components/schemas/Price'
+ required:
+ - accountId
+ - optionStrategyId
+ - order_type
+ - time_in_force
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - userId
+ - userSecret
+ - accountId
+ - optionStrategyId
+ konfig-generated-schema-single-parameter-schema-get--brokerages:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-get--brokerageAuthorizationTypes:
+ additionalProperties: true
+ properties:
+ brokerage:
+ example: "QUESTRADE,ALPACA"
+ type: string
+ x-konfig-original-example: "QUESTRADE,ALPACA"
+ x-konfig-generated-schema: konfig-generated-schema-paths--brokerageAuthorizationTypes-get-parameters-0-schema
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - brokerage
+ konfig-generated-schema-single-parameter-schema-get--currencies:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-get--currencies-rates:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-get--currencies-rates-currencyPair:
+ additionalProperties: true
+ properties:
+ currencyPair:
+ type: string
+ required:
+ - currencyPair
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - currencyPair
+ konfig-generated-schema-single-parameter-schema-get--exchanges:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-get--securityTypes:
+ additionalProperties: true
+ properties: {}
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--symbols:
+ additionalProperties: true
+ properties:
+ substring:
+ example: apple
+ type: string
+ x-konfig-original-example: apple
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolQuery-properties-substring
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-get--symbols-query:
+ additionalProperties: true
+ properties:
+ query:
+ type: string
+ required:
+ - query
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - query
+ konfig-generated-schema-single-parameter-schema-get--activities:
+ additionalProperties: true
+ properties:
+ startDate:
+ $ref: '#/components/schemas/ReportingDate'
+ endDate:
+ $ref: '#/components/schemas/ReportingDate'
+ accounts:
+ $ref: '#/components/schemas/AccountIDs'
+ brokerageAuthorizations:
+ $ref: '#/components/schemas/BrokerageAuthIDs'
+ type:
+ example: DIVIDEND
+ type: string
+ x-konfig-original-example: DIVIDEND
+ x-konfig-generated-schema: konfig-generated-schema-paths--activities-get-parameters-4-schema
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - startDate
+ - endDate
+ - accounts
+ - brokerageAuthorizations
+ - type
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-get--performance-custom:
+ additionalProperties: true
+ properties:
+ startDate:
+ $ref: '#/components/schemas/ReportingDate'
+ endDate:
+ $ref: '#/components/schemas/ReportingDate'
+ accounts:
+ $ref: '#/components/schemas/AccountIDs'
+ detailed:
+ example: true
+ type: boolean
+ x-konfig-original-example: true
+ x-konfig-generated-schema: konfig-generated-schema-paths--performance-custom-get-parameters-3-schema
+ frequency:
+ $ref: '#/components/schemas/ReportingFrequency'
+ userId:
+ $ref: '#/components/schemas/UserID'
+ userSecret:
+ $ref: '#/components/schemas/UserSecret'
+ required:
+ - endDate
+ - startDate
+ - userId
+ - userSecret
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter:
+ - startDate
+ - endDate
+ - accounts
+ - detailed
+ - frequency
+ - userId
+ - userSecret
+ konfig-generated-schema-single-parameter-schema-post--connectionAdded:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--connectionDeleted:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--userRegistered:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--userDeleted:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--accountAdded:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--accountDeleted:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ konfig-generated-schema-single-parameter-schema-post--transactionsUpdated:
+ additionalProperties: true
+ properties:
+ webookId:
+ example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ type: string
+ x-konfig-original-example: 06fe1fd7-fc50-43a7-b564-8a2c5f3bab44
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-webookId
+ clientId:
+ example: WEALTHYCHIPMUNK
+ type: string
+ x-konfig-original-example: WEALTHYCHIPMUNK
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-clientId
+ eventTimestamp:
+ example: 2022-01-21T20:11:19.217Z
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-eventTimestamp
+ userId:
+ example: external_user@test.com
+ type: string
+ x-konfig-original-example: external_user@test.com
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-WebhookBase-properties-userId
+ type: object
+ x-do-not-generate: true
+ x-konfig-is-parameter: []
+ AmountNullable:
+ description: "Total value of the account, as reported by the brokerage"
+ example:
+ amount: 15363.23
+ currency: USD
+ nullable: true
+ properties:
+ amount:
+ description: Total value denominated in the currency of the `currency` field.
+ example: 15363.23
+ type: number
+ x-konfig-original-example: 15363.23
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Amount-properties-amount
+ currency:
+ description: The ISO-4217 currency code for the amount.
+ example: USD
+ type: string
+ x-konfig-original-example: USD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Amount-properties-currency
+ UnitsNullable:
+ description: Trade Units. Cannot work with notional value.
+ nullable: true
+ type: number
+ TimeNullable:
+ description: Time
+ example: 2022-01-21T20:11:19.217Z
+ nullable: true
+ type: string
+ x-konfig-original-example: 2022-01-21T20:11:19.217Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Time
+ CurrencyNullable:
+ additionalProperties: true
+ description: Describes a currency object.
+ example:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ nullable: true
+ properties:
+ id:
+ description: Unique identifier for the currency. This is the UUID used to
+ reference the currency in SnapTrade.
+ example: 87b24961-b51e-4db8-9226-f198f6518a89
+ format: uuid
+ type: string
+ x-konfig-original-example: 87b24961-b51e-4db8-9226-f198f6518a89
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Currency-properties-id
+ code:
+ description: The ISO-4217 currency code for the currency.
+ example: USD
+ type: string
+ x-konfig-original-example: USD
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Currency-properties-code
+ name:
+ description: A human-friendly name of the currency.
+ example: US Dollar
+ type: string
+ x-konfig-original-example: US Dollar
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Currency-properties-name
+ type: object
+ AccountBalanceNullable:
+ description: Contains balance related information for the account.
+ example:
+ total:
+ amount: 15363.23
+ currency: USD
+ nullable: true
+ properties:
+ total:
+ $ref: '#/components/schemas/AmountNullable'
+ FigiInstrumentNullable:
+ additionalProperties: true
+ description: Open FIGI Identifiers
+ example:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ nullable: true
+ properties:
+ figi_code:
+ example: BBG000B9Y5X2
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG000B9Y5X2
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-FigiInstrument-properties-figi_code
+ figi_share_class:
+ example: BBG001S5N8V8
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG001S5N8V8
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-FigiInstrument-properties-figi_share_class
+ type: object
+ UniversalSymbolNullable:
+ additionalProperties: true
+ description: Universal symbol
+ nullable: true
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ symbol:
+ example: VAB.TO
+ type: string
+ x-konfig-original-example: VAB.TO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-symbol
+ raw_symbol:
+ example: VAB
+ type: string
+ x-konfig-original-example: VAB
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-raw_symbol
+ description:
+ example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ nullable: true
+ type: string
+ x-konfig-original-example: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-description
+ currency:
+ $ref: '#/components/schemas/Currency'
+ exchange:
+ $ref: '#/components/schemas/Exchange'
+ type:
+ $ref: '#/components/schemas/SecurityType'
+ currencies:
+ items:
+ $ref: '#/components/schemas/Currency'
+ type: array
+ figi_code:
+ example: BBG000B9XRY4
+ nullable: true
+ type: string
+ x-konfig-original-example: BBG000B9XRY4
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-UniversalSymbol-properties-figi_code
+ figi_instrument:
+ $ref: '#/components/schemas/FigiInstrumentNullable'
+ required:
+ - currencies
+ - currency
+ - id
+ - raw_symbol
+ - symbol
+ - type
+ type: object
+ x-konfig-is-used-in-successful-response: true
+ OptionsSymbolNullable:
+ additionalProperties: true
+ description: Options Symbol
+ nullable: true
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ ticker:
+ example: SPY 220819P00200000
+ type: string
+ x-konfig-original-example: SPY 220819P00200000
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-ticker
+ option_type:
+ enum:
+ - CALL
+ - PUT
+ example: CALL
+ type: string
+ x-konfig-original-example: CALL
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-option_type
+ strike_price:
+ example: 200
+ type: number
+ x-konfig-original-example: 200
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-strike_price
+ expiration_date:
+ example: 2017-07-17T15:13:07.177712+00:00
+ format: datetime
+ type: string
+ x-konfig-original-example: 2017-07-17T15:13:07.177712+00:00
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-expiration_date
+ is_mini_option:
+ example: false
+ type: boolean
+ x-konfig-original-example: false
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-is_mini_option
+ underlying_symbol:
+ $ref: '#/components/schemas/UnderlyingSymbol'
+ local_id:
+ example: "40817960"
+ type: string
+ x-konfig-original-example: "40817960"
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionsSymbol-properties-local_id
+ exchange_id:
+ format: uuid
+ type: string
+ required:
+ - expiration_date
+ - id
+ - option_type
+ - strike_price
+ - ticker
+ - underlying_symbol
+ type: object
+ NotionalValueNullable: {}
+ Trading_cancelUserAccountOrder_request:
+ properties:
+ brokerage_order_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ type: object
+ Options_getOptionStrategy_request:
+ properties:
+ underlying_symbol_id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ legs:
+ items:
+ $ref: '#/components/schemas/OptionLeg'
+ type: array
+ strategy_type:
+ enum:
+ - CUSTOM
+ type: string
+ required:
+ - legs
+ - strategy_type
+ - underlying_symbol_id
+ type: object
+ Options_placeOptionStrategy_request:
+ properties:
+ order_type:
+ $ref: '#/components/schemas/OrderTypeStrict'
+ time_in_force:
+ $ref: '#/components/schemas/TimeInForceStrict'
+ price:
+ description: Trade Price if limit or stop limit order
+ example: 31.33
+ nullable: true
+ type: number
+ x-konfig-original-example: 31.33
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Price
+ required:
+ - order_type
+ - time_in_force
+ type: object
+ StrategyImpact_legs_inner:
+ additionalProperties: true
+ properties:
+ legId:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-legId
+ symbol:
+ example: AC21Oct22C30.00.MX
+ type: string
+ x-konfig-original-example: AC21Oct22C30.00.MX
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-symbol
+ symbolId:
+ example: 41790511
+ format: int32
+ type: integer
+ x-konfig-original-example: 41790511
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-symbolId
+ legRatioQuantity:
+ example: 1
+ format: int32
+ type: integer
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-legRatioQuantity
+ side:
+ example: BTO
+ type: string
+ x-konfig-original-example: BTO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyImpact-properties-legs-items-properties-side
+ avgExecPrice:
+ format: nullable
+ type: string
+ lastExecPrice:
+ format: nullable
+ type: string
+ type: object
+ StrategyOrderPlace_orders_inner_legs_inner:
+ additionalProperties: true
+ properties:
+ legId:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-legId
+ symbol:
+ example: AC21Oct22C30.00.MX
+ type: string
+ x-konfig-original-example: AC21Oct22C30.00.MX
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-symbol
+ symbolId:
+ example: 41790511
+ format: int32
+ type: integer
+ x-konfig-original-example: 41790511
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-symbolId
+ legRatioQuantity:
+ example: 1
+ format: int32
+ type: integer
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-legRatioQuantity
+ side:
+ example: BTO
+ type: string
+ x-konfig-original-example: BTO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-side
+ avgExecPrice:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-legs-items-properties-avgExecPrice
+ lastExecPrice:
+ format: nullable
+ type: string
+ type: object
+ StrategyOrderPlace_orders_inner:
+ additionalProperties: true
+ properties:
+ id:
+ example: 1069605761
+ format: int32
+ type: integer
+ x-konfig-original-example: 1069605761
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-id
+ symbol:
+ example: AC.TO
+ type: string
+ x-konfig-original-example: AC.TO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-symbol
+ symbolId:
+ example: 7960447
+ format: int32
+ type: integer
+ x-konfig-original-example: 7960447
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-symbolId
+ totalQuantity:
+ example: 1
+ format: int32
+ type: integer
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-totalQuantity
+ openQuantity:
+ example: 1
+ format: int32
+ type: integer
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-openQuantity
+ filledQuantity:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-filledQuantity
+ canceledQuantity:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-canceledQuantity
+ side:
+ example: Buy
+ type: string
+ x-konfig-original-example: Buy
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-side
+ orderType:
+ example: Market
+ type: string
+ x-konfig-original-example: Market
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-orderType
+ limitPrice:
+ format: nullable
+ type: string
+ stopPrice:
+ format: nullable
+ type: string
+ isAllOrNone:
+ type: boolean
+ isAnonymous:
+ type: boolean
+ icebergQuantity:
+ format: nullable
+ type: string
+ minQuantity:
+ format: nullable
+ type: string
+ avgExecPrice:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-avgExecPrice
+ lastExecPrice:
+ format: nullable
+ type: string
+ source:
+ example: TradingAPI
+ type: string
+ x-konfig-original-example: TradingAPI
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-source
+ timeInForce:
+ example: Day
+ type: string
+ x-konfig-original-example: Day
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-timeInForce
+ gtdDate:
+ format: nullable
+ type: string
+ state:
+ example: Pending
+ type: string
+ x-konfig-original-example: Pending
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-state
+ rejectionReason:
+ example: None
+ type: string
+ x-konfig-original-example: None
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-rejectionReason
+ chainId:
+ example: 1069605761
+ format: int32
+ type: integer
+ x-konfig-original-example: 1069605761
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-chainId
+ creationTime:
+ example: 2022-07-19T19:53:47.915Z
+ type: string
+ x-konfig-original-example: 2022-07-19T19:53:47.915Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-creationTime
+ updateTime:
+ example: 2022-07-19T19:53:47.939Z
+ type: string
+ x-konfig-original-example: 2022-07-19T19:53:47.939Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-updateTime
+ notes:
+ example: None
+ type: string
+ x-konfig-original-example: None
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-notes
+ primaryRoute:
+ example: AUTO
+ type: string
+ x-konfig-original-example: AUTO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-primaryRoute
+ secondaryRoute:
+ example: AUTO
+ type: string
+ x-konfig-original-example: AUTO
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-secondaryRoute
+ orderRoute:
+ example: MX
+ type: string
+ x-konfig-original-example: MX
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-orderRoute
+ venueHoldingOrder:
+ example: None
+ type: string
+ x-konfig-original-example: None
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-venueHoldingOrder
+ comissionCharged:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-comissionCharged
+ exchangeOrderId:
+ example: None
+ type: string
+ x-konfig-original-example: None
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-exchangeOrderId
+ isSignificantShareHolder:
+ type: boolean
+ isInsider:
+ type: boolean
+ isLimitOffsetInDollar:
+ type: boolean
+ userId:
+ example: 514603
+ format: int32
+ type: integer
+ x-konfig-original-example: 514603
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-userId
+ placementCommission:
+ format: nullable
+ type: string
+ legs:
+ items:
+ $ref: '#/components/schemas/StrategyOrderPlace_orders_inner_legs_inner'
+ type: array
+ strategyType:
+ example: Strangle
+ type: string
+ x-konfig-original-example: Strangle
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-strategyType
+ triggerStopPrice:
+ format: nullable
+ type: string
+ orderGroupId:
+ example: 0
+ format: int32
+ type: integer
+ x-konfig-original-example: 0
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyOrderPlace-properties-orders-items-properties-orderGroupId
+ orderClass:
+ format: nullable
+ type: string
+ isCrossZero:
+ type: boolean
+ type: object
+ OptionStrategy_legs_inner:
+ example:
+ quantity: 10
+ index: 1
+ action: BUY_TO_OPEN
+ option_symbol_id: AAPLC20221111
+ properties:
+ option_symbol_id:
+ example: AAPLC20221111
+ type: string
+ x-konfig-original-example: AAPLC20221111
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-option_symbol_id
+ index:
+ example: 1
+ type: number
+ x-konfig-original-example: 1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-index
+ action:
+ example: BUY_TO_OPEN
+ type: string
+ x-konfig-original-example: BUY_TO_OPEN
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-action
+ quantity:
+ example: 10
+ type: number
+ x-konfig-original-example: 10
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionStrategy-properties-legs-items-properties-quantity
+ StrategyQuotes_greek:
+ additionalProperties: true
+ example:
+ delta: 0.1
+ rho: 0.1
+ theta: 0.1
+ gamma: 0.1
+ vega: 0.1
+ properties:
+ delta:
+ example: 0.1
+ type: number
+ x-konfig-original-example: 0.1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-delta
+ gamma:
+ example: 0.1
+ type: number
+ x-konfig-original-example: 0.1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-gamma
+ theta:
+ example: 0.1
+ type: number
+ x-konfig-original-example: 0.1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-theta
+ vega:
+ example: 0.1
+ type: number
+ x-konfig-original-example: 0.1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-vega
+ rho:
+ example: 0.1
+ type: number
+ x-konfig-original-example: 0.1
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-StrategyQuotes-properties-greek-properties-rho
+ type: object
+ BrokerageAuthorizationTypeReadOnly_brokerage:
+ additionalProperties: true
+ example:
+ name: Questrade
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ slug: QUESTRADE
+ properties:
+ id:
+ example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ format: uuid
+ type: string
+ x-konfig-original-example: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-Id
+ name:
+ description: Full name of the brokerage.
+ example: Questrade
+ type: string
+ x-konfig-original-example: Questrade
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorizationTypeReadOnly-properties-brokerage-properties-name
+ slug:
+ description: A unique identifier for that brokerage. It is usually the name
+ of the brokerage in capital letters and will never change.
+ example: QUESTRADE
+ type: string
+ x-konfig-original-example: QUESTRADE
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-BrokerageAuthorizationTypeReadOnly-properties-brokerage-properties-slug
+ type: object
+ OptionChain_inner_chainPerRoot_inner_chainPerStrikePrice_inner:
+ additionalProperties: true
+ example:
+ callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ properties:
+ strikePrice:
+ example: 70
+ format: int32
+ nullable: true
+ type: integer
+ x-konfig-original-example: 70
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-chainPerStrikePrice-items-properties-strikePrice
+ callSymbolId:
+ example: 42816081
+ format: int32
+ nullable: true
+ type: integer
+ x-konfig-original-example: 42816081
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-chainPerStrikePrice-items-properties-callSymbolId
+ putSymbolId:
+ example: 42816129
+ format: int32
+ nullable: true
+ type: integer
+ x-konfig-original-example: 42816129
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-chainPerStrikePrice-items-properties-putSymbolId
+ type: object
+ OptionChain_inner_chainPerRoot_inner:
+ additionalProperties: true
+ example:
+ chainPerStrikePrice:
+ - callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ - callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ multiplier: 100
+ optionRoot: AAPL
+ properties:
+ optionRoot:
+ example: AAPL
+ type: string
+ x-konfig-original-example: AAPL
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-optionRoot
+ chainPerStrikePrice:
+ items:
+ $ref: '#/components/schemas/OptionChain_inner_chainPerRoot_inner_chainPerStrikePrice_inner'
+ type: array
+ multiplier:
+ example: 100
+ format: int32
+ type: integer
+ x-konfig-original-example: 100
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-chainPerRoot-items-properties-multiplier
+ type: object
+ OptionChain_inner:
+ additionalProperties: true
+ example:
+ expiryDate: 2022-07-08T04:00:00.000Z
+ chainPerRoot:
+ - chainPerStrikePrice:
+ - callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ - callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ multiplier: 100
+ optionRoot: AAPL
+ - chainPerStrikePrice:
+ - callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ - callSymbolId: 42816081
+ putSymbolId: 42816129
+ strikePrice: 70
+ multiplier: 100
+ optionRoot: AAPL
+ optionExerciseType: American
+ description: APPLE INC
+ listingExchange: OPRA
+ properties:
+ expiryDate:
+ example: 2022-07-08T04:00:00.000Z
+ type: string
+ x-konfig-original-example: 2022-07-08T04:00:00.000Z
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-expiryDate
+ description:
+ example: APPLE INC
+ type: string
+ x-konfig-original-example: APPLE INC
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-description
+ listingExchange:
+ example: OPRA
+ type: string
+ x-konfig-original-example: OPRA
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-listingExchange
+ optionExerciseType:
+ example: American
+ type: string
+ x-konfig-original-example: American
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-OptionChain-items-properties-optionExerciseType
+ chainPerRoot:
+ items:
+ $ref: '#/components/schemas/OptionChain_inner_chainPerRoot_inner'
+ type: array
+ type: object
+ SymbolsQuotes_inner:
+ example:
+ symbol:
+ figi_code: BBG000B9XRY4
+ symbol: VAB.TO
+ figi_instrument:
+ figi_code: BBG000B9Y5X2
+ figi_share_class: BBG001S5N8V8
+ raw_symbol: VAB
+ description: VANGUARD CDN AGGREGATE BOND INDEX ETF
+ currency:
+ code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ exchange:
+ start_time: 09:30:00
+ mic_code: XTSE
+ code: TSX
+ timezone: America/New_York
+ name: Toronto Stock Exchange
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ close_time: "57600"
+ suffix: .TO
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ type:
+ is_supported: true
+ code: cs
+ description: Common Stock
+ id: 2bcd7cc3-e922-4976-bce1-9858296801c3
+ currencies:
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ - code: USD
+ name: US Dollar
+ id: 87b24961-b51e-4db8-9226-f198f6518a89
+ last_trade_price: 8.74
+ ask_size: 344
+ bid_size: 260
+ bid_price: 8.43
+ ask_price: 8.43
+ properties:
+ symbol:
+ $ref: '#/components/schemas/UniversalSymbol'
+ bid_price:
+ example: 8.43
+ type: number
+ x-konfig-original-example: 8.43
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-bid_price
+ ask_price:
+ example: 8.43
+ type: number
+ x-konfig-original-example: 8.43
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-ask_price
+ last_trade_price:
+ example: 8.74
+ type: number
+ x-konfig-original-example: 8.74
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-last_trade_price
+ bid_size:
+ example: 260
+ type: number
+ x-konfig-original-example: 260
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-bid_size
+ ask_size:
+ example: 344
+ type: number
+ x-konfig-original-example: 344
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-SymbolsQuotes-items-properties-ask_size
+ encryptedResponse_encryptedMessageData:
+ additionalProperties: true
+ properties:
+ encryptedMessage:
+ example: 9Xy05vqZOfp0OpW5fLAaDw==
+ type: string
+ x-konfig-original-example: 9Xy05vqZOfp0OpW5fLAaDw==
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedMessageData-properties-encryptedMessage
+ tag:
+ example: mWZPkpQh5ktbcz6N7cTRmQ==
+ type: string
+ x-konfig-original-example: mWZPkpQh5ktbcz6N7cTRmQ==
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedMessageData-properties-tag
+ nonce:
+ example: None
+ type: string
+ x-konfig-original-example: None
+ x-konfig-generated-schema: konfig-generated-schema-components-schemas-encryptedResponse-properties-encryptedMessageData-properties-nonce
+ type: object
+ securitySchemes:
+ PartnerSignature:
+ in: header
+ name: Signature
+ type: apiKey
+ PartnerClientId:
+ in: query
+ name: clientId
+ type: apiKey
+ PartnerTimestamp:
+ in: query
+ name: timestamp
+ type: apiKey
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/build.gradle b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/build.gradle
new file mode 100644
index 0000000000..8371cd5b2f
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/build.gradle
@@ -0,0 +1,168 @@
+apply plugin: 'idea'
+apply plugin: 'eclipse'
+apply plugin: 'java'
+apply plugin: 'com.diffplug.spotless'
+
+group = 'com.konfigthis'
+version = '5.0.30'
+
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.3.+'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
+ classpath 'com.diffplug.spotless:spotless-plugin-gradle:6.11.0'
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+sourceSets {
+ main.java.srcDirs = ['src/main/java']
+}
+
+if(hasProperty('target') && target == 'android') {
+
+ apply plugin: 'com.android.library'
+ apply plugin: 'com.github.dcendents.android-maven'
+
+ android {
+ compileSdkVersion 25
+ buildToolsVersion '25.0.2'
+ defaultConfig {
+ minSdkVersion 14
+ targetSdkVersion 25
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ // Rename the aar correctly
+ libraryVariants.all { variant ->
+ variant.outputs.each { output ->
+ def outputFile = output.outputFile
+ if (outputFile != null && outputFile.name.endsWith('.aar')) {
+ def fileName = "${project.name}-${variant.baseName}-${version}.aar"
+ output.outputFile = new File(outputFile.parent, fileName)
+ }
+ }
+ }
+
+ dependencies {
+ provided "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
+ }
+ }
+
+ afterEvaluate {
+ android.libraryVariants.all { variant ->
+ def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
+ task.description = "Create jar artifact for ${variant.name}"
+ task.dependsOn variant.javaCompile
+ task.from variant.javaCompile.destinationDir
+ task.destinationDir = project.file("${project.buildDir}/outputs/jar")
+ task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
+ artifacts.add('archives', task)
+ }
+ }
+
+ task sourcesJar(type: Jar) {
+ from android.sourceSets.main.java.srcDirs
+ classifier = 'sources'
+ }
+
+ artifacts {
+ archives sourcesJar
+ }
+
+} else {
+
+ apply plugin: 'java'
+ apply plugin: 'maven-publish'
+
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+
+ publishing {
+ publications {
+ maven(MavenPublication) {
+ artifactId = 'snaptrade-java-sdk'
+ from components.java
+ }
+ }
+ }
+
+ task execute(type:JavaExec) {
+ main = System.getProperty('mainClass')
+ classpath = sourceSets.main.runtimeClasspath
+ }
+}
+
+ext {
+ jakarta_annotation_version = "1.3.5"
+}
+
+dependencies {
+ implementation 'io.swagger:swagger-annotations:1.6.8'
+ implementation "com.google.code.findbugs:jsr305:3.0.2"
+ implementation 'com.squareup.okhttp3:okhttp:4.10.0'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
+ implementation 'com.google.code.gson:gson:2.9.1'
+ implementation 'io.gsonfire:gson-fire:1.8.5'
+ implementation 'javax.ws.rs:jsr311-api:1.1.1'
+ implementation 'javax.ws.rs:javax.ws.rs-api:2.1.1'
+ implementation 'org.openapitools:jackson-databind-nullable:0.2.4'
+ implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0'
+ implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1'
+ testImplementation 'org.mockito:mockito-core:3.12.4'
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1'
+}
+
+javadoc {
+ options.tags = [ "http.response.details:a:Http Response Details" ]
+}
+
+// Use spotless plugin to automatically format code, remove unused import, etc
+// To apply changes directly to the file, run `gradlew spotlessApply`
+// Ref: https://github.com/diffplug/spotless/tree/main/plugin-gradle
+spotless {
+ // comment out below to run spotless as part of the `check` task
+ enforceCheck false
+
+ format 'misc', {
+ // define the files (e.g. '*.gradle', '*.md') to apply `misc` to
+ target '.gitignore'
+
+ // define the steps to apply to those files
+ trimTrailingWhitespace()
+ indentWithSpaces() // Takes an integer argument if you don't like 4
+ endWithNewline()
+ }
+ java {
+ // don't need to set target, it is inferred from java
+
+ // apply a specific flavor of google-java-format
+ googleJavaFormat('1.8').aosp().reflowLongStrings()
+
+ removeUnusedImports()
+ importOrder()
+ }
+}
+
+test {
+ // Enable JUnit 5 (Gradle 4.6+).
+ useJUnitPlatform()
+
+ // Always run tests, even when nothing changed.
+ dependsOn 'cleanTest'
+
+ // Show test results.
+ testLogging {
+ events "passed", "skipped", "failed"
+ }
+
+}
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/build.sbt b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/build.sbt
new file mode 100644
index 0000000000..18e213bfa5
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/build.sbt
@@ -0,0 +1,28 @@
+lazy val root = (project in file(".")).
+ settings(
+ organization := "com.konfigthis",
+ name := "snaptrade-java-sdk",
+ version := "5.0.30",
+ scalaVersion := "2.11.4",
+ scalacOptions ++= Seq("-feature"),
+ javacOptions in compile ++= Seq("-Xlint:deprecation"),
+ publishArtifact in (Compile, packageDoc) := false,
+ resolvers += Resolver.mavenLocal,
+ libraryDependencies ++= Seq(
+ "io.swagger" % "swagger-annotations" % "1.6.5",
+ "com.squareup.okhttp3" % "okhttp" % "4.10.0",
+ "com.squareup.okhttp3" % "logging-interceptor" % "4.10.0",
+ "com.google.code.gson" % "gson" % "2.9.1",
+ "org.apache.commons" % "commons-lang3" % "3.12.0",
+ "javax.ws.rs" % "jsr311-api" % "1.1.1",
+ "javax.ws.rs" % "javax.ws.rs-api" % "2.1.1",
+ "org.openapitools" % "jackson-databind-nullable" % "0.2.4",
+ "io.gsonfire" % "gson-fire" % "1.8.5" % "compile",
+ "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile",
+ "com.google.code.findbugs" % "jsr305" % "3.0.2" % "compile",
+ "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile",
+ "org.junit.jupiter" % "junit-jupiter-api" % "5.9.1" % "test",
+ "com.novocode" % "junit-interface" % "0.10" % "test",
+ "org.mockito" % "mockito-core" % "3.12.4" % "test"
+ )
+ )
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/Account.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/Account.md
new file mode 100644
index 0000000000..b4aa0f6cd2
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/Account.md
@@ -0,0 +1,24 @@
+
+
+# Account
+
+SnapTradeUser Investment Account
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | | [optional] |
+|**brokerageAuthorization** | **UUID** | | [optional] |
+|**portfolioGroup** | **UUID** | | [optional] |
+|**name** | **String** | | [optional] |
+|**number** | **String** | | [optional] |
+|**institutionName** | **String** | | [optional] |
+|**createdDate** | **String** | | [optional] |
+|**meta** | **Map<String, Object>** | | [optional] |
+|**cashRestrictions** | [**List<CashRestriction>**](CashRestriction.md) | | [optional] |
+|**syncStatus** | [**AccountSyncStatus**](AccountSyncStatus.md) | | [optional] |
+|**balance** | [**AccountBalance**](AccountBalance.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountBalance.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountBalance.md
new file mode 100644
index 0000000000..5142333a92
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountBalance.md
@@ -0,0 +1,14 @@
+
+
+# AccountBalance
+
+Contains balance related information for the account.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**total** | [**AmountNullable**](AmountNullable.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountBalanceNullable.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountBalanceNullable.md
new file mode 100644
index 0000000000..2981727732
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountBalanceNullable.md
@@ -0,0 +1,14 @@
+
+
+# AccountBalanceNullable
+
+Contains balance related information for the account.
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**total** | [**AmountNullable**](AmountNullable.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountHoldings.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountHoldings.md
new file mode 100644
index 0000000000..7e40d43de4
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountHoldings.md
@@ -0,0 +1,17 @@
+
+
+# AccountHoldings
+
+Account Holdings
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**account** | [**SnapTradeHoldingsAccount**](SnapTradeHoldingsAccount.md) | | [optional] |
+|**balances** | [**List<Balance>**](Balance.md) | | [optional] |
+|**positions** | [**List<Position>**](Position.md) | | [optional] |
+|**totalValue** | [**SnapTradeHoldingsTotalValue**](SnapTradeHoldingsTotalValue.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountHoldingsAccount.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountHoldingsAccount.md
new file mode 100644
index 0000000000..39f1e9bad8
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountHoldingsAccount.md
@@ -0,0 +1,19 @@
+
+
+# AccountHoldingsAccount
+
+A wrapper object containing holdings information for a single account
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**account** | [**SnapTradeHoldingsAccountAccountId**](SnapTradeHoldingsAccountAccountId.md) | | [optional] |
+|**balances** | [**List<Balance>**](Balance.md) | List of balances for the account. Each element of the list has a distinct currency. Some brokerages like Questrade [allows holding multiple currencies in the same account](https://www.questrade.com/learning/questrade-basics/balances-and-reports/understanding-your-account-balances). | [optional] |
+|**positions** | [**List<Position>**](Position.md) | List of stock/ETF/crypto/mutual fund positions in the account. | [optional] |
+|**optionPositions** | [**List<OptionsPosition>**](OptionsPosition.md) | List of option positions in the account. | [optional] |
+|**orders** | [**List<AccountOrderRecord>**](AccountOrderRecord.md) | List of recent orders in the account, including both pending and executed orders. | [optional] |
+|**totalValue** | [**SnapTradeHoldingsTotalValue**](SnapTradeHoldingsTotalValue.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountInformationApi.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountInformationApi.md
new file mode 100644
index 0000000000..9be1825f4b
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountInformationApi.md
@@ -0,0 +1,816 @@
+# AccountInformationApi
+
+All URIs are relative to *https://api.snaptrade.com/api/v1*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**getAllUserHoldings**](AccountInformationApi.md#getAllUserHoldings) | **GET** /holdings | List all accounts for the user, plus balances, positions, and orders for each account. |
+| [**getUserAccountBalance**](AccountInformationApi.md#getUserAccountBalance) | **GET** /accounts/{accountId}/balances | List account balances |
+| [**getUserAccountDetails**](AccountInformationApi.md#getUserAccountDetails) | **GET** /accounts/{accountId} | Return details of a specific investment account |
+| [**getUserAccountOrders**](AccountInformationApi.md#getUserAccountOrders) | **GET** /accounts/{accountId}/orders | List account orders |
+| [**getUserAccountPositions**](AccountInformationApi.md#getUserAccountPositions) | **GET** /accounts/{accountId}/positions | List account positions |
+| [**getUserHoldings**](AccountInformationApi.md#getUserHoldings) | **GET** /accounts/{accountId}/holdings | List account holdings |
+| [**listUserAccounts**](AccountInformationApi.md#listUserAccounts) | **GET** /accounts | List accounts |
+| [**updateUserAccount**](AccountInformationApi.md#updateUserAccount) | **PUT** /accounts/{accountId} | Update details of an investment account |
+
+
+
+# **getAllUserHoldings**
+> List<AccountHoldings> getAllUserHoldings(userId, userSecret).brokerageAuthorizations(brokerageAuthorizations).execute();
+
+List all accounts for the user, plus balances, positions, and orders for each account.
+
+**Deprecated, please use the account-specific holdings endpoint instead.** List all accounts for the user, plus balances, positions, and orders for each account.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ UUID brokerageAuthorizations = UUID.fromString("917c8734-8470-4a3e-a18f-57c3f2ee6631"); // Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations).
+ try {
+ List result = client
+ .accountInformation
+ .getAllUserHoldings(userId, userSecret)
+ .brokerageAuthorizations(brokerageAuthorizations)
+ .execute();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getAllUserHoldings");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .accountInformation
+ .getAllUserHoldings(userId, userSecret)
+ .brokerageAuthorizations(brokerageAuthorizations)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getAllUserHoldings");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+| **brokerageAuthorizations** | **UUID**| Optional. Comma seperated list of authorization IDs (only use if filtering is needed on one or more authorizations). | [optional] |
+
+### Return type
+
+[**List<AccountHoldings>**](AccountHoldings.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Returns list of accounts and holdings | - |
+| **500** | Unexpected Error | - |
+
+
+# **getUserAccountBalance**
+> List<Balance> getUserAccountBalance(userId, userSecret, accountId).execute();
+
+List account balances
+
+A list of account balances for the specified account (one per currency that the account holds).
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ UUID accountId = UUID.fromString("917c8734-8470-4a3e-a18f-57c3f2ee6631"); // The ID of the account to get balances.
+ try {
+ List result = client
+ .accountInformation
+ .getUserAccountBalance(userId, userSecret, accountId)
+ .execute();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountBalance");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .accountInformation
+ .getUserAccountBalance(userId, userSecret, accountId)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountBalance");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+| **accountId** | **UUID**| The ID of the account to get balances. | |
+
+### Return type
+
+[**List<Balance>**](Balance.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | List of all balances in investment account | - |
+| **0** | Unexpected error | - |
+
+
+# **getUserAccountDetails**
+> Account getUserAccountDetails(userId, userSecret, accountId).execute();
+
+Return details of a specific investment account
+
+Returns an account object with details for the specified account, including the total account market value.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ UUID accountId = UUID.fromString("917c8734-8470-4a3e-a18f-57c3f2ee6631"); // The ID of the account to get detail of.
+ try {
+ Account result = client
+ .accountInformation
+ .getUserAccountDetails(userId, userSecret, accountId)
+ .execute();
+ System.out.println(result);
+ System.out.println(result.getId());
+ System.out.println(result.getBrokerageAuthorization());
+ System.out.println(result.getPortfolioGroup());
+ System.out.println(result.getName());
+ System.out.println(result.getNumber());
+ System.out.println(result.getInstitutionName());
+ System.out.println(result.getCreatedDate());
+ System.out.println(result.getMeta());
+ System.out.println(result.getCashRestrictions());
+ System.out.println(result.getSyncStatus());
+ System.out.println(result.getBalance());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountDetails");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse response = client
+ .accountInformation
+ .getUserAccountDetails(userId, userSecret, accountId)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountDetails");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+| **accountId** | **UUID**| The ID of the account to get detail of. | |
+
+### Return type
+
+[**Account**](Account.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Details of a specific investment account | - |
+| **0** | Unexpected error | - |
+
+
+# **getUserAccountOrders**
+> List<AccountOrderRecord> getUserAccountOrders(userId, userSecret, accountId).state(state).days(days).execute();
+
+List account orders
+
+Fetch all recent orders from a user's account.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ UUID accountId = UUID.fromString("917c8734-8470-4a3e-a18f-57c3f2ee6631"); // The ID of the account to get orders.
+ String state = "all"; // defaults value is set to \"all\"
+ Integer days = 30; // Number of days in the past to fetch the most recent orders. Defaults to the last 30 days if no value is passed in.
+ try {
+ List result = client
+ .accountInformation
+ .getUserAccountOrders(userId, userSecret, accountId)
+ .state(state)
+ .days(days)
+ .execute();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountOrders");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .accountInformation
+ .getUserAccountOrders(userId, userSecret, accountId)
+ .state(state)
+ .days(days)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountOrders");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+| **accountId** | **UUID**| The ID of the account to get orders. | |
+| **state** | **String**| defaults value is set to \"all\" | [optional] [enum: all, open, executed] |
+| **days** | **Integer**| Number of days in the past to fetch the most recent orders. Defaults to the last 30 days if no value is passed in. | [optional] |
+
+### Return type
+
+[**List<AccountOrderRecord>**](AccountOrderRecord.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | List all orders in account | - |
+
+
+# **getUserAccountPositions**
+> List<Position> getUserAccountPositions(userId, userSecret, accountId).execute();
+
+List account positions
+
+Returns a list of positions in the specified account.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ UUID accountId = UUID.fromString("917c8734-8470-4a3e-a18f-57c3f2ee6631"); // The ID of the account to get positions.
+ try {
+ List result = client
+ .accountInformation
+ .getUserAccountPositions(userId, userSecret, accountId)
+ .execute();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountPositions");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .accountInformation
+ .getUserAccountPositions(userId, userSecret, accountId)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserAccountPositions");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+| **accountId** | **UUID**| The ID of the account to get positions. | |
+
+### Return type
+
+[**List<Position>**](Position.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | List all positions in investment account | - |
+| **0** | Unexpected error | - |
+
+
+# **getUserHoldings**
+> AccountHoldingsAccount getUserHoldings(accountId, userId, userSecret).execute();
+
+List account holdings
+
+Lists balances, positions, option positions, and recent orders for the specified account. The data returned is similar to the data returned over the more fine-grained [balances](/reference/Account%20Information/AccountInformation_getUserAccountBalance), [positions](/reference/Account%20Information/AccountInformation_getUserAccountPositions) and [orders](/reference/Account%20Information/AccountInformation_getUserAccountOrders) endpoints. __The finer-grained APIs are preferred. They are easier to work with, faster, and have better error handling than this coarse-grained API.__
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ UUID accountId = UUID.randomUUID();
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ try {
+ AccountHoldingsAccount result = client
+ .accountInformation
+ .getUserHoldings(accountId, userId, userSecret)
+ .execute();
+ System.out.println(result);
+ System.out.println(result.getAccount());
+ System.out.println(result.getBalances());
+ System.out.println(result.getPositions());
+ System.out.println(result.getOptionPositions());
+ System.out.println(result.getOrders());
+ System.out.println(result.getTotalValue());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserHoldings");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse response = client
+ .accountInformation
+ .getUserHoldings(accountId, userId, userSecret)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#getUserHoldings");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **accountId** | **UUID**| | |
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+
+### Return type
+
+[**AccountHoldingsAccount**](AccountHoldingsAccount.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | - |
+| **500** | Unexpected Error | - |
+
+
+# **listUserAccounts**
+> List<Account> listUserAccounts(userId, userSecret).execute();
+
+List accounts
+
+Get a list of all Account objects for the authenticated SnapTrade user.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ try {
+ List result = client
+ .accountInformation
+ .listUserAccounts(userId, userSecret)
+ .execute();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#listUserAccounts");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .accountInformation
+ .listUserAccounts(userId, userSecret)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#listUserAccounts");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+
+### Return type
+
+[**List<Account>**](Account.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | A list of all Account objects for the authenticated user. | - |
+| **0** | Unexpected error. | - |
+
+
+# **updateUserAccount**
+> List<Account> updateUserAccount(userId, userSecret, accountId).execute();
+
+Update details of an investment account
+
+Updates various properties of a specified account.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AccountInformationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ UUID accountId = UUID.randomUUID(); // The ID of the account to update.
+ try {
+ List result = client
+ .accountInformation
+ .updateUserAccount(userId, userSecret, accountId)
+ .execute();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#updateUserAccount");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .accountInformation
+ .updateUserAccount(userId, userSecret, accountId)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AccountInformationApi#updateUserAccount");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+| **userSecret** | **String**| | |
+| **accountId** | **UUID**| The ID of the account to update. | |
+
+### Return type
+
+[**List<Account>**](Account.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successfully updated details of an investment account | - |
+| **0** | Unexpected error | - |
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountOrderRecord.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountOrderRecord.md
new file mode 100644
index 0000000000..82e6fefa96
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountOrderRecord.md
@@ -0,0 +1,32 @@
+
+
+# AccountOrderRecord
+
+Record of order in brokerageaccount
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**brokerageOrderId** | **String** | Order id returned by brokerage | [optional] |
+|**status** | **AccountOrderRecordStatus** | | [optional] |
+|**symbol** | **UUID** | | [optional] |
+|**universalSymbol** | [**UniversalSymbol**](UniversalSymbol.md) | | [optional] |
+|**optionSymbol** | [**OptionsSymbol**](OptionsSymbol.md) | | [optional] |
+|**action** | **String** | Trade Action potential values include (but are not limited to) - BUY - SELL - BUY_COVER - SELL_SHORT - BUY_OPEN - BUY_CLOSE - SELL_OPEN - SELL_CLOSE | [optional] |
+|**totalQuantity** | **Double** | Trade Units. Cannot work with notional value. | [optional] |
+|**openQuantity** | **Double** | Trade Units | [optional] |
+|**canceledQuantity** | **Double** | Trade Units | [optional] |
+|**filledQuantity** | **Double** | Trade Units | [optional] |
+|**executionPrice** | **Double** | Trade Price if limit or stop limit order | [optional] |
+|**limitPrice** | **Double** | Trade Price if limit or stop limit order | [optional] |
+|**stopPrice** | **Double** | Stop Price. If stop loss or stop limit order, the price to trigger the stop | [optional] |
+|**orderType** | **String** | Order Type potential values include (but are not limited to) - Limit - Market - StopLimit - StopLoss | [optional] |
+|**timeInForce** | **String** | Trade time in force examples: * FOK - Fill Or Kill * Day - Day * GTC - Good Til Canceled * GTD - Good Til Date | [optional] |
+|**timePlaced** | **String** | Time | [optional] |
+|**timeUpdated** | **String** | Time | [optional] |
+|**timeExecuted** | **String** | Time | [optional] |
+|**expiryDate** | **String** | Time | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountOrderRecordStatus.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountOrderRecordStatus.md
new file mode 100644
index 0000000000..f80a7433dc
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountOrderRecordStatus.md
@@ -0,0 +1,49 @@
+
+
+# AccountOrderRecordStatus
+
+## Enum
+
+
+* `NONE` (value: `"NONE"`)
+
+* `PENDING` (value: `"PENDING"`)
+
+* `ACCEPTED` (value: `"ACCEPTED"`)
+
+* `FAILED` (value: `"FAILED"`)
+
+* `REJECTED` (value: `"REJECTED"`)
+
+* `CANCELED` (value: `"CANCELED"`)
+
+* `PARTIAL_CANCELED` (value: `"PARTIAL_CANCELED"`)
+
+* `CANCEL_PENDING` (value: `"CANCEL_PENDING"`)
+
+* `EXECUTED` (value: `"EXECUTED"`)
+
+* `PARTIAL` (value: `"PARTIAL"`)
+
+* `REPLACE_PENDING` (value: `"REPLACE_PENDING"`)
+
+* `REPLACED` (value: `"REPLACED"`)
+
+* `STOPPED` (value: `"STOPPED"`)
+
+* `SUSPENDED` (value: `"SUSPENDED"`)
+
+* `EXPIRED` (value: `"EXPIRED"`)
+
+* `QUEUED` (value: `"QUEUED"`)
+
+* `TRIGGERED` (value: `"TRIGGERED"`)
+
+* `ACTIVATED` (value: `"ACTIVATED"`)
+
+* `PENDING_RISK_REVIEW` (value: `"PENDING_RISK_REVIEW"`)
+
+* `CONTINGENT_ORDER` (value: `"CONTINGENT_ORDER"`)
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountSimple.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountSimple.md
new file mode 100644
index 0000000000..2184be0d89
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountSimple.md
@@ -0,0 +1,17 @@
+
+
+# AccountSimple
+
+SnapTradeUser Investment Account
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**id** | **UUID** | | [optional] |
+|**name** | **String** | | [optional] |
+|**number** | **String** | | [optional] |
+|**syncStatus** | [**AccountSyncStatus**](AccountSyncStatus.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountSyncStatus.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountSyncStatus.md
new file mode 100644
index 0000000000..370b5dd1ca
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AccountSyncStatus.md
@@ -0,0 +1,15 @@
+
+
+# AccountSyncStatus
+
+Status of account
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**transactions** | [**TransactionsStatus**](TransactionsStatus.md) | | [optional] |
+|**holdings** | [**HoldingsStatus**](HoldingsStatus.md) | | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/ActionStrict.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/ActionStrict.md
new file mode 100644
index 0000000000..54ed165b46
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/ActionStrict.md
@@ -0,0 +1,13 @@
+
+
+# ActionStrict
+
+## Enum
+
+
+* `BUY` (value: `"BUY"`)
+
+* `SELL` (value: `"SELL"`)
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/Amount.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/Amount.md
new file mode 100644
index 0000000000..7066e7afe2
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/Amount.md
@@ -0,0 +1,15 @@
+
+
+# Amount
+
+Total value of the account, as reported by the brokerage
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**amount** | **Double** | Total value denominated in the currency of the `currency` field. | [optional] |
+|**currency** | **String** | The ISO-4217 currency code for the amount. | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AmountNullable.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AmountNullable.md
new file mode 100644
index 0000000000..df26b1247c
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AmountNullable.md
@@ -0,0 +1,15 @@
+
+
+# AmountNullable
+
+Total value of the account, as reported by the brokerage
+
+## Properties
+
+| Name | Type | Description | Notes |
+|------------ | ------------- | ------------- | -------------|
+|**amount** | **Double** | Total value denominated in the currency of the `currency` field. | [optional] |
+|**currency** | **String** | The ISO-4217 currency code for the amount. | [optional] |
+
+
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/ApiStatusApi.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/ApiStatusApi.md
new file mode 100644
index 0000000000..82f7868281
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/ApiStatusApi.md
@@ -0,0 +1,100 @@
+# ApiStatusApi
+
+All URIs are relative to *https://api.snaptrade.com/api/v1*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**check**](ApiStatusApi.md#check) | **GET** / | Get API Status |
+
+
+
+# **check**
+> Status check().execute();
+
+Get API Status
+
+Check whether the API is operational and verify timestamps.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.ApiStatusApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ try {
+ Status result = client
+ .apiStatus
+ .check()
+ .execute();
+ System.out.println(result);
+ System.out.println(result.getVersion());
+ System.out.println(result.getTimestamp());
+ System.out.println(result.getOnline());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiStatusApi#check");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse response = client
+ .apiStatus
+ .check()
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ApiStatusApi#check");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**Status**](Status.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | API is operational. | - |
+| **0** | Unexpected error. | - |
+
diff --git a/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AuthenticationApi.md b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AuthenticationApi.md
new file mode 100644
index 0000000000..75a7612fca
--- /dev/null
+++ b/generator/konfig-integration-tests/sdks/java-additional-null-property/sdks/java/docs/AuthenticationApi.md
@@ -0,0 +1,503 @@
+# AuthenticationApi
+
+All URIs are relative to *https://api.snaptrade.com/api/v1*
+
+| Method | HTTP request | Description |
+|------------- | ------------- | -------------|
+| [**deleteSnapTradeUser**](AuthenticationApi.md#deleteSnapTradeUser) | **DELETE** /snapTrade/deleteUser | Delete SnapTrade user |
+| [**listSnapTradeUsers**](AuthenticationApi.md#listSnapTradeUsers) | **GET** /snapTrade/listUsers | List SnapTrade users |
+| [**loginSnapTradeUser**](AuthenticationApi.md#loginSnapTradeUser) | **POST** /snapTrade/login | Login user & generate connection link |
+| [**registerSnapTradeUser**](AuthenticationApi.md#registerSnapTradeUser) | **POST** /snapTrade/registerUser | Create SnapTrade user |
+| [**resetSnapTradeUserSecret**](AuthenticationApi.md#resetSnapTradeUserSecret) | **POST** /snapTrade/resetUserSecret | Obtain a new user secret for a user |
+
+
+
+# **deleteSnapTradeUser**
+> DeleteUserResponse deleteSnapTradeUser(userId).execute();
+
+Delete SnapTrade user
+
+Deletes a user you've registered over the SnapTrade API, and any data associated with them or their investment accounts.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AuthenticationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ try {
+ DeleteUserResponse result = client
+ .authentication
+ .deleteSnapTradeUser(userId)
+ .execute();
+ System.out.println(result);
+ System.out.println(result.getStatus());
+ System.out.println(result.getUserId());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AuthenticationApi#deleteSnapTradeUser");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse response = client
+ .authentication
+ .deleteSnapTradeUser(userId)
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AuthenticationApi#deleteSnapTradeUser");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+
+| Name | Type | Description | Notes |
+|------------- | ------------- | ------------- | -------------|
+| **userId** | **String**| | |
+
+### Return type
+
+[**DeleteUserResponse**](DeleteUserResponse.md)
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Delete successful | - |
+| **500** | Unexpected Error | - |
+
+
+# **listSnapTradeUsers**
+> List<String> listSnapTradeUsers().execute();
+
+List SnapTrade users
+
+Returns a list of users you've registered over the SnapTrade API.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AuthenticationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ try {
+ List result = client
+ .authentication
+ .listSnapTradeUsers()
+ .execute();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AuthenticationApi#listSnapTradeUsers");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse> response = client
+ .authentication
+ .listSnapTradeUsers()
+ .executeWithHttpInfo();
+ System.out.println(response.getResponseBody());
+ System.out.println(response.getResponseHeaders());
+ System.out.println(response.getStatusCode());
+ System.out.println(response.getRoundTripTime());
+ System.out.println(response.getRequest());
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AuthenticationApi#listSnapTradeUsers");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+**List<String>**
+
+### Authorization
+
+[PartnerClientId](../README.md#PartnerClientId), [PartnerSignature](../README.md#PartnerSignature), [PartnerTimestamp](../README.md#PartnerTimestamp)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | Successfully retrieved a list of users | - |
+
+
+# **loginSnapTradeUser**
+> Object loginSnapTradeUser(userId, userSecret).snapTradeLoginUserRequestBody(snapTradeLoginUserRequestBody).execute();
+
+Login user & generate connection link
+
+Logs in a SnapTrade user and returns an authenticated connection portal URL for them to use to connect a brokerage account.
+
+### Example
+```java
+import com.konfigthis.client.ApiClient;
+import com.konfigthis.client.ApiException;
+import com.konfigthis.client.ApiResponse;
+import com.konfigthis.client.Snaptrade;
+import com.konfigthis.client.Configuration;
+import com.konfigthis.client.auth.*;
+import com.konfigthis.client.model.*;
+import com.konfigthis.client.api.AuthenticationApi;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ Configuration configuration = new Configuration();
+ configuration.host = "https://api.snaptrade.com/api/v1";
+ configuration.clientId = System.getenv("SNAPTRADE_CLIENT_ID");
+ configuration.consumerKey = System.getenv("SNAPTRADE_CONSUMER_KEY");
+
+ Snaptrade client = new Snaptrade(configuration);
+ String userId = "userId_example";
+ String userSecret = "userSecret_example";
+ String broker = "broker_example"; // Slug of the brokerage to connect the user to. See [this document](https://snaptrade.notion.site/SnapTrade-Brokerage-Integrations-f83946a714a84c3caf599f6a945f0ead) for a list of supported brokerages and their slugs.
+ Boolean immediateRedirect = true; // When set to True, user will be redirected back to the partner's site instead of the connection portal
+ String customRedirect = "customRedirect_example"; // URL to redirect the user to after the user connects their brokerage account
+ String reconnect = "reconnect_example"; // The UUID of the brokerage connection to be reconnected. This parameter should be left empty unless you are reconnecting a disabled connection. See ‘Reconnecting Accounts’ for more information.
+ String connectionType = "read"; // Sets whether the connection should be read or trade
+ String connectionPortalVersion = "v2"; // Sets the version of the connection portal to render, with a default to 'v3'
+ try {
+ Object result = client
+ .authentication
+ .loginSnapTradeUser(userId, userSecret)
+ .broker(broker)
+ .immediateRedirect(immediateRedirect)
+ .customRedirect(customRedirect)
+ .reconnect(reconnect)
+ .connectionType(connectionType)
+ .connectionPortalVersion(connectionPortalVersion)
+ .execute();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling AuthenticationApi#loginSnapTradeUser");
+ System.err.println("Status code: " + e.getStatusCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+
+ // Use .executeWithHttpInfo() to retrieve HTTP Status Code, Headers and Request
+ try {
+ ApiResponse