Financial Data API

Go SDK for Financial Data

Strongly typed, context support, streaming. The Go market data library for high-performance systems.

go get eulerpool.com/sdk/go

Quick start

Three steps to your first data call

1. Install
$ go get eulerpool.com/sdk/go
2. Authenticate
import eulerpool "eulerpool.com/sdk/go"

client := eulerpool.NewClient("ep_live_xxx")
3. Fetch data
profile, err := client.Equity.Profile(ctx, "AAPL")
financials, err := client.Equity.Financials(ctx, "AAPL")

log.Printf("%s: P/E %.2f", profile.Name, financials.PERatio)

Features

Built for Go developers

01

Strongly typed

Structs for every response. No interface{} or dynamic typing.

02

Context support

Cancellation, timeouts, and tracing. Idiomatic Go.

03

Streaming

Real-time streaming via channels. Low memory footprint.

04

Minimal dependencies

Standard library first. No heavy frameworks. Small binaries.

Example

Market scanner

scanner.go
package main

import (
  "context"
  "log"
  eulerpool "eulerpool.com/sdk/go"
)

func main() {
  client := eulerpool.NewClient("ep_live_xxx")
  ctx := context.Background()

  tickers := []string{"AAPL", "MSFT", "GOOGL"}
  financials, err := client.Equity.FinancialsBatch(ctx, tickers)

  for _, f := range financials {
    if f.PERatio > 0 && f.PERatio < 15 {
      log.Printf("%s: P/E %.2f (value)", f.Ticker, f.PERatio)
    }
  }
}

Frequently asked questions

Run go get github.com/eulerpool/sdk-go. The SDK requires Go 1.21+ and uses the standard library for HTTP. It has zero external dependencies beyond the Go standard library.

Yes. All methods accept a context.Context parameter for timeout and cancellation. This integrates naturally with Go's concurrency patterns. Use context.WithTimeout for request-level timeouts or context.WithCancel for manual cancellation.

Yes. The SDK is designed for low-latency, high-throughput use cases. It uses connection pooling, efficient JSON parsing, and minimal allocations. The WebSocket client supports concurrent subscriptions for real-time streaming.

Yes. The SDK returns typed errors (eulerpool.APIError, eulerpool.RateLimitError, eulerpool.AuthError) for precise error handling. Automatic retries with exponential backoff are enabled by default for transient errors. Retry policy is configurable.

Yes. The SDK includes bulk data methods with streaming JSON parsing for large datasets. Pagination is handled automatically. It integrates well with Go data processing tools and is used in production for ETL pipelines, risk systems, and trading infrastructure.

Ready to build?

Get your free API key. 1,000 calls/day. No credit card required.

Get your free API key