Install the client for your language. Each wraps the REST API with typed responses, automatic token refresh, and retry logic. The engine meets you where you are — reluctantly.
| Language | Package | Install |
|---|---|---|
| Node.js | @goltana/sdk | npm install @goltana/sdk |
| Python | goltana | pip install goltana |
| Go | goltana-go | go get github.com/goltana/goltana-go |
| Rust | goltana-rs | cargo add goltana |
| Ruby | goltana | gem install goltana |
| Java | goltana-java | Maven Central: com.goltana:sdk |
| cURL | — | You already have it. It’s always been there. |
| PHP | goltana/sdk | composer require goltana/sdk(we don’t talk about this one) |
import Goltana from '@goltana/sdk';
const client = new Goltana({
token: process.env.GOLTANA_TOKEN,
timeout: 5000,
retries: 2,
honesty: 'brutal'
});
// Single verdict
const spy = await client.evaluate('SPY');
// Batch
const batch = await client.evaluateBatch(['SPY', 'QQQ', 'IWM'], {
timeframe: '0dte',
include_greeks: true
});
// Stream
client.stream(['SPY', 'QQQ'], (verdict) => {
console.log(`[${verdict.symbol}] ${verdict.signal} @ ${verdict.confidence}`);
}); import os
from goltana import Client, BatchRequest
client = Client(
token=os.environ["GOLTANA_TOKEN"],
timeout=5.0,
honesty="brutal"
)
spy = client.evaluate("SPY", timeframe="0dte")
print(f"{spy.signal} — {spy.message}")
batch = client.evaluate_batch(
symbols=["SPY", "QQQ", "IWM"],
include_greeks=True
)
for v in batch.verdicts:
print(f"[{v.symbol}] {v.signal} ({v.confidence:.0%})") package main
import (
"fmt"
"os"
goltana "github.com/goltana/goltana-go"
)
func main() {
client := goltana.NewClient(os.Getenv("GOLTANA_TOKEN"))
verdict, err := client.Evaluate("SPY", &goltana.Options{
Timeframe: "0dte",
IncludeGreeks: true,
Honesty: "brutal",
})
if err != nil {
panic(err)
}
fmt.Printf("%s — %s (%.0f%%)
",
verdict.Symbol, verdict.Signal, verdict.Confidence*100)
}