SSI SDK Overview

Accelerate FastConnect integrations with the official SDKs.

When should you use the SDK?

The SDKs help teams adopt FastConnect faster by standardizing authentication, API calls, WebSocket streaming, and retry behavior across integrations. Instead of manually handling token management, request signing, rate limiting, and error recovery, the SDK handles these concerns so you can focus on business logic.

Client Architecture

All SDKs share the same modular client architecture:

Config → Auth → authenticate(otp) → Data / Trading / Stream
ClientDescriptionOTP Required
AuthAuthentication & token management. Entry point for all other clients.-
DataMarket data — OHLC, indexes, securities info & summary.No
TradingPlace/modify/cancel orders, account info, portfolio, PPMMR.Yes
StreamRealtime WebSocket streaming — market data & trading events.Yes

Available SDKs

SDKRuntimeInstallSource
Python SDKPython 3.10+pip install ssi-sdkGitHub
Go SDKGo 1.22+go get github.com/SSI-Securities-Inc/ssi-sdk-go/v3GitHub
Node.js SDKNode.js 18+npm install @ssi.developer/ssi-sdkGitHub
.NET SDK.NET 8.0+dotnet add package SSIDeveloper.FastConnect.SdkGitHub

Python

Supports both sync and async variants (Auth/AsyncAuth, Data/AsyncData, etc.). Best for data pipelines, automation, and Jupyter notebooks.

from ssi_sdk import Auth, Data, Config

config = Config(
    client_id="YOUR_CLIENT_ID",
    api_key="YOUR_API_KEY",
    api_secret="YOUR_API_SECRET",
)

with Auth(config) as auth:
    auth.authenticate()

    with Data(auth) as data:
        ohlc = data.market_data.get_ohlc_1minute("SSI")
        print(ohlc)

Go

Uses goroutines natively for concurrency — no separate async variants needed. Best for high-throughput realtime services.

import "github.com/SSI-Securities-Inc/ssi-sdk-go/v3/ssi"

config := ssi.NewConfig("YOUR_CLIENT_ID")
config.APIKey    = "YOUR_API_KEY"
config.APISecret = "YOUR_API_SECRET"

auth := ssi.NewAuth(config)
defer auth.Close()

if _, err := auth.Authenticate(""); err != nil {
    log.Fatal(err)
}

data := ssi.NewData(auth)
ohlc, err := data.MarketData.GetOHLC1Minute("SSI")

Node.js

Supports both CommonJS and ES Module (dual CJS/ESM). All methods are async/await. Best for web backends, microservices, and serverless.

import { Auth, Data, Config } from '@ssi.developer/ssi-sdk';

const config = new Config({
  clientId: 'YOUR_CLIENT_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
});

const auth = new Auth(config);
await auth.authenticate();

const data = new Data(auth);
const ohlc = await data.marketData.getOhlc1Minute('SSI');
console.log(ohlc);

.NET

Uses async/await throughout on .NET 8. Business enums (OrderSide, Board, ...) are static classes holding string constants. Best for .NET backend systems and internal enterprise services.

using SsiSdk;

var config = new Config("YOUR_CLIENT_ID")
{
    ApiKey = "YOUR_API_KEY",
    ApiSecret = "YOUR_API_SECRET",
};

using var auth = new AuthClient(config);
await auth.AuthenticateAsync();

var data = new DataClient(auth);
var ohlc = await data.MarketData.GetOhlc1MinuteAsync("SSI");
Console.WriteLine(ohlc);

Feature Comparison

FeaturePythonGoNode.js.NET
REST APIYesYesYesYes
WebSocket StreamingYesYesYesYes
Async supportasync/awaitgoroutinesasync/awaitasync/await
Resource cleanupwith / async withdefermanual disconnect()using/IDisposable
Error handlingException hierarchyType switch on errorinstanceof on Error classException hierarchy
Rate limitingBuilt-inBuilt-inBuilt-inBuilt-in
Auto retryBuilt-inBuilt-inBuilt-inBuilt-in
Token auto-refreshBuilt-inBuilt-inBuilt-inBuilt-in
  1. Install the SDK for your target runtime.
  2. Configure credentials (client_id, api_key, api_secret, private_key).
  3. Authenticate — OTP is optional for market data, required for trading & streaming.
  4. Initialize the client you need (Data, Trading, or Stream).
  5. Call APIs or subscribe to realtime data streams.

Use Case Mapping

Use caseClientOTP
Market data (OHLC, indexes, securities)DataNo
Place/modify/cancel ordersTradingYes
Account info & portfolioTradingYes
Realtime WebSocket streamingStreamYes

On this page