
JAVA & KOTLIN SDK RELEASED
Market Data is now on the JVM. Today we're shipping v1.0.0 of the Market Data Java & Kotlin SDK, and it's not a Java library with Kotlin bolted on. It's
one dependency that's genuinely idiomatic in both languages
: no separate Kotlin module, no kotlin-stdlib
on your classpath, no boilerplate.Here's your first quote, the same SDK in your choice of language — see the Java & Kotlin quickstart for the copy-paste version in both languages.
What you'll notice first
Stocks, options, mutual funds, and live market status. One dependency, built for production from day one. The parts we're proudest of are the ones that quietly keep you out of trouble:
- The compiler catches mistakes the API used to.The options chain has parameters that look combinable but conflict server-side. We model them as sealed types, so picking two by accident is abuild error, not a silent, wrong result you discover in production.
- Your data never turns into silent zeros.The decoder is strict: if the API drops a field you asked for, you get a clearParseError, not a0that quietly flows into your P&L. Fields that are legitimately empty come back as honest nulls.
- One SDK, idiomatic in two languages.Every public type is null-annotated, so Kotlin sees real nullable / non-null types and property syntax. No Kotlin artifact, no coroutines dependency, no platform-type surprises.
- Sync and async on every endpoint.Each call has a blocking form and aCompletableFutureform (bridge it to a Kotlin coroutine withawait()), sharing one async-first path for validation, retries, and rate limiting.
- It handles the heavy requests for you.Ask for years of intraday candles and the SDK auto-splits the range into year-sized slices, fetches them concurrently, and merges them back into one series. Multi-symbol calls are dispatched the optimal way for each endpoint.
- Reliability you don't have to wire up.Automatic retries with exponential backoff,Retry-Afterhonored, a status check before retrying so it won't hammer a service that's already down, and rate-limit tracking at both the client and per-response level.
- Built for the support ticket you hope you never file.Every error extends a sealedMarketDataExceptioncarrying the request ID, URL, status, and timestamp, plus agetSupportInfo()that formats it all, ready to paste.
Zero-config to first call: drop in
MARKETDATA_TOKEN
and go. Output as typed objects, JSON or CSV, trimmed to just the columns you need. Runs on JDK 17, 21, and 25, and it's on Maven Central today as app.marketdata:marketdata-sdk-java
.Also This Month
We're adding server capacity in a second datacenter and preparing our platform to run across both, removing our remaining single point of failure.
- In June, our primary datacenter's network transit provider was hit by a DDoS attack. The second location is our answer: once we're running across both, a network outage at one site won't take down the API.
- This work is in progress now and is expected to come online at some point in July. We'll let you know when it's live.