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| Client | Description | OTP Required |
|---|---|---|
| Auth | Authentication & token management. Entry point for all other clients. | - |
| Data | Market data — OHLC, indexes, securities info & summary. | No |
| Trading | Place/modify/cancel orders, account info, portfolio, PPMMR. | Yes |
| Stream | Realtime WebSocket streaming — market data & trading events. | Yes |
Available SDKs
| SDK | Runtime | Install | Source |
|---|---|---|---|
| Python SDK | Python 3.10+ | pip install ssi-sdk | GitHub |
| Go SDK | Go 1.22+ | go get github.com/SSI-Securities-Inc/ssi-sdk-go/v3 | GitHub |
| Node.js SDK | Node.js 18+ | npm install @ssi.developer/ssi-sdk | GitHub |
| .NET SDK | .NET 8.0+ | dotnet add package SSIDeveloper.FastConnect.Sdk | GitHub |
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
| Feature | Python | Go | Node.js | .NET |
|---|---|---|---|---|
| REST API | Yes | Yes | Yes | Yes |
| WebSocket Streaming | Yes | Yes | Yes | Yes |
| Async support | async/await | goroutines | async/await | async/await |
| Resource cleanup | with / async with | defer | manual disconnect() | using/IDisposable |
| Error handling | Exception hierarchy | Type switch on error | instanceof on Error class | Exception hierarchy |
| Rate limiting | Built-in | Built-in | Built-in | Built-in |
| Auto retry | Built-in | Built-in | Built-in | Built-in |
| Token auto-refresh | Built-in | Built-in | Built-in | Built-in |
Recommended Integration Flow
- Install the SDK for your target runtime.
- Configure credentials (
client_id,api_key,api_secret,private_key). - Authenticate — OTP is optional for market data, required for trading & streaming.
- Initialize the client you need (
Data,Trading, orStream). - Call APIs or subscribe to realtime data streams.
Use Case Mapping
| Use case | Client | OTP |
|---|---|---|
| Market data (OHLC, indexes, securities) | Data | No |
| Place/modify/cancel orders | Trading | Yes |
| Account info & portfolio | Trading | Yes |
| Realtime WebSocket streaming | Stream | Yes |