Documentation Index
Fetch the complete documentation index at: https://finance.dev/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Install the Aries Go SDK using go get:
go get github.com/aries-exchange/go-sdk
Quick Start
package main
import (
"fmt"
"log"
aries "github.com/aries-exchange/go-sdk"
)
func main() {
// Initialize the client
client := aries.NewClient(
aries.WithClientID("your_client_id"),
aries.WithClientSecret("your_client_secret"),
)
// Get account information
accounts, err := client.Accounts.GetUserAccounts()
if err != nil {
log.Fatal(err)
}
fmt.Println(accounts)
// Place an order
order, err := client.Orders.PlaceOrder(&aries.OrderRequest{
Symbol: "AAPL",
Quantity: 10,
Side: "buy",
OrderType: "market",
})
if err != nil {
log.Fatal(err)
}
fmt.Println(order)
}
Authentication
The Go SDK supports OAuth2 authentication:
import aries "github.com/aries-exchange/go-sdk"
client := aries.NewClient(
aries.WithClientID("your_client_id"),
aries.WithClientSecret("your_client_secret"),
)
// The SDK handles token management automatically
Making API Calls
Get Market Data
// Search for securities
results, err := client.MarketData.Search("AAPL")
if err != nil {
log.Fatal(err)
}
// Get equity details
equity, err := client.MarketData.GetEquityDetails("AAPL")
if err != nil {
log.Fatal(err)
}
Manage Orders
// Place a limit order
order, err := client.Orders.PlaceOrder(&aries.OrderRequest{
Symbol: "AAPL",
Quantity: 10,
Side: "buy",
OrderType: "limit",
LimitPrice: 150.00,
})
if err != nil {
log.Fatal(err)
}
// Cancel an order
err = client.Orders.CancelOrder("order_123")
if err != nil {
log.Fatal(err)
}
WebSocket Support
Stream real-time data using WebSockets:
import (
"log"
aries "github.com/aries-exchange/go-sdk"
)
ws := aries.NewWebSocket(
aries.WithClientID("your_client_id"),
aries.WithClientSecret("your_client_secret"),
)
// Subscribe to market data
ws.OnMarketData(func(data *aries.MarketData) {
log.Printf("Received: %+v", data)
})
ws.SubscribeMarketData([]string{"AAPL", "GOOGL"})
ws.Connect()
Error Handling
import (
"errors"
"log"
aries "github.com/aries-exchange/go-sdk"
)
client := aries.NewClient(
aries.WithClientID("..."),
aries.WithClientSecret("..."),
)
order, err := client.Orders.PlaceOrder(&aries.OrderRequest{...})
if err != nil {
var apiErr *aries.APIError
if errors.As(err, &apiErr) {
log.Printf("API Error: %s", apiErr.Message)
log.Printf("Status Code: %d", apiErr.StatusCode)
} else {
log.Fatal(err)
}
}
Context Support
The SDK supports Go’s context for cancellation and timeouts:
import (
"context"
"time"
)
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
accounts, err := client.Accounts.GetUserAccountsWithContext(ctx)
if err != nil {
log.Fatal(err)
}
Requirements
Additional Resources