snaptrade-node

The official NodeJS library for the SnapTrade API.


Keywords
snaptrade, snaptradeapi, snaptradesdk, snaptradenodesdk, api, nodejs, passiv, sdk, typescript
License
ISC
Install
npm install snaptrade-node@1.2.9-deprecated

Documentation


snaptrade

snaptrade-node


NOTE: This SDK has been deprecated and is no longer receiving support. Please use our maintained SDK here: SnapTrade API.


Contact us to schedule a demo and get a consumer key: api@snaptrade.com


NPM Version NPM Downloads

📖 Table of Contents


⚙️ Requirements

  • Node 17 or later
  • You need to have a clientID and a consumerKey. If you don't have one, please send us an email.

🚀 Getting Started

npm install snaptrade-node

Note : Your consumerKey should always remain a secret! Never hard code it!

import { SnapTradeFetch } from 'snaptrade-node';

const snapTrade = new SnapTradeFetch('CLIENT_ID', 'CONSUMER_KEY');

🕵🏼‍♂️ Authentication

register user

Register user with SnapTrade in order to create secure brokerage authorizations.

Signature:
 registerUser(data: {
    userId: string;
    rsaPublicKey?: string;
  }): Promise<RegisterUserResponseType>
Example:
const registerUser = async () => {
  const registeredUser = await snapTrade.registerUser({
    userId: 'USER_ID',
    rsaPublicKey: 'ssh-rsa RSA_PUBLIC_KEY', //only required if RSA is enabled for the partner
  });
  return registeredUser;
};

login user

Generate a redirect URI to securely login a user to the SnapTrade Connection Portal.

  • optional parameters:
    • broker: provide a broker slug to redirect user directly to the broker portal (or show the auth modal)
    • immediateRedirect: if set to true, user gets redirected back to the partner's app immediately after making a connection.
    • customRedirect: if need to use a different redirect url than the default one.
    • reconnect: provide a authorization id of a broken connection to reconnect.
Signature:
generateRedirectURI({
    userId,
    userSecret,
  }: DefaultQueryParams, data?: {broker: string; immediateRedirect: boolean; customRedirect: string, reconnect: string, connectionType: string}): Promise<RedirectURIResponseType>
Example:
const redirectURI = async () => {
  const uri = await snapTrade.generateRedirectURI(
    {
      userId: 'USER_ID',
      userSecret: 'USER_SECRET',
    },
    {
      broker: 'ALPACA',
      immediateRedirect: true,
      customRedirect: 'https://passiv.com',
      reconnect: 'b5f262d-4bb9-365d-888a-202bd3b15fa1', // authorization id
      connectionType: 'read', // 'read' or 'trade'
    }
  );
  return uri;
};

delete user

Delete user from SnapTrade, disabling all brokerage authorizations and permanently deleting all data associated with the user.

Signature:
deleteUser({
    userId,
    userSecret,
  }: DefaultQueryParams): Promise<DeleteUserResponseType>
Example:
const deleteUser = async () => {
  const deletedUser = await snapTrade.deleteUser({
    userId: 'USER_ID',
    userSecret: 'USER_SECRET',
  });
  return deletedUser;
};

list users

Get a list of all SnapTrade users partner has registered on their platform.

Signature:
async listUsers(): Promise<UsersResponseType>
Example:
const listUsersRegistered = async () => {
  const users = await snapTrade.listUsers();
  return users;
};

📑 Full Documentation

Documentations for making requests to other SnapTrade API endpoints using this sdk:


👨🏼‍⚖️ License & copyrights

Licensed under Apache License 2.0.