Skip to content

v0.1.0 — first release

Latest

Choose a tag to compare

@sfreiberg sfreiberg released this 05 Sep 04:56
· 3 commits to main since this release
823d9f1

The first release of an independent, MIT-licensed Go SDK for the Webull OpenAPI. Every endpoint the core product documents is implemented, verified against Webull's sandbox wherever the sandbox allows, with each exception recorded and justified in the compatibility matrix.

go get github.com/sfreiberg/webull@v0.1.0

What's in it

  • Trading — accounts, balances, positions, cash activities, and orders across every documented asset class: equities, options (single-leg and multi-leg strategies), futures, crypto, and event contracts, with brackets, OTO/OCO/OTOCO combos, trailing stops, preview, replace, cancel, and batch placement. The SDK never retries a POST: in this API a replayed order is a duplicated order.
  • Market data over HTTP — snapshots, quotes/depth, ticks, bars, footprints, and NOII for stocks; options, futures, crypto, and event-contract data; 23 fundamentals endpoints; screeners; watchlists.
  • Real-time trade events over gRPC — typed order events with automatic reconnect and subscription renewal, verified live.
  • Market data streaming over MQTT — snapshots, quotes, and ticks with reconnect-and-replay, verified live against the sandbox broker.
  • Connect API (OAuth) — the three-legged flow for platforms trading on behalf of their users, with rotating refresh tokens collapsed to one shared refresh under concurrency. Implemented to the documentation; Connect credentials are partner-gated, so it ships Unverified.
  • Authentication — automatic HMAC-SHA256 request signing (reconstructed and verified against the live service, including the gRPC scheme's undocumented quirks), plus access-token creation and checking for deployments that require token auth.
  • Careful numbers — every price, quantity, and amount is a fixed-point decimal, never a float, and absent values are distinguishable from zero.

Reliability posture

Coverage sits at ~98% with an enforced floor, the suite runs race-checked on Go 1.26 and 1.27, every decoder that reads server-controlled bytes is fuzzed, goroutine leaks are verified in the streaming packages, and the README's own code snippets are compiled and drift-checked in CI. A three-way completeness audit against the documentation index and Webull's official Python and Java SDKs is recorded in docs/discovery/completeness-audit.md.

Scope notes

Endpoint paths follow Webull's documented scheme (/trading/...); the /openapi/... aliases used by Webull's own SDKs are not duplicated. News (a Server-Sent Events endpoint with unresolvable documentation), the Broker API, FIX, and the Market Data Display Solution product are out of scope, each with its reasoning in the matrix.

The public API may change without notice until v1.0.0. Full details in the CHANGELOG.

This is an independent open-source project. It is not affiliated with, maintained by, or endorsed by Webull.