nautilus-coinapi
NautilusTrader adapter for the CoinAPI Market Data API. API Bricks provides CoinAPI and FinFeedAPI.
The adapter provides authenticated REST and WebSocket access to cryptocurrency market data across multiple exchanges. It supports native venue instrument definitions, live feeds, historical requests, and loaders for downloaded flat files. It is implemented in Rust with optional Python bindings. Order execution and account management are unsupported.
The official CoinAPI API reference can be found at https://www.coinapi.io/products/market-data-api/docs?ref=nautilus.
NautilusTrader
NautilusTrader is an open-source, production-grade, Rust-native trading engine with a deterministic, event-driven architecture for multi-asset, multi-venue systems.
The system spans research, simulation, and live execution, providing research-to-live semantic parity.
Capabilities and limits
| Capability | Support |
|---|---|
| Instruments | Selected spot, perpetuals, and dated futures; native venue IDs |
| Order books | L2/L3 deltas with gap recovery; L2 snapshots up to 50 levels |
| Live feeds | Quotes, trades, and supported external LAST bars |
| History | Trades, quotes, and bars; current REST L2 snapshots only |
| Flat files | Local CSV loading; chunked quote, trade, and book streaming |
The data client preserves prices and sizes at instrument precision. It rejects finer values, with a
bounded exception for OHLCV volume.
Price precision can be overridden for selected instruments; size precision has no override.
Only exchange-reported trade sides set the aggressor; CoinAPI estimates map to NO_AGGRESSOR.
CoinAPI and native adapters must load disjoint instrument sets within a node. Separate client IDs do not isolate definitions or feeds for the same instrument, and the adapter does not detect these conflicts. CoinAPI data resolutions can differ from venue trading increments. See native adapter routing and the capability matrix.
Configuration
See the configuration guide.
Feature flags
Feature flags control code inclusion for Rust builds and Python bindings:
examples: Enables the crate's example binaries.extension-module: Builds as a Python extension module.fuzz: Enables libFuzzer integration for fuzz targets.high-precision(default): Enables high-precision mode to use 128-bit value types.python: Enables Python bindings for identity, configuration, factories, and flat-file loaders through PyO3.simulation: Routes HTTP and WebSocket through deterministic transport when built withcfg(madsim).
Integrator attribution
REST requests and WebSocket handshakes include X-Referrer: nautilus for API Bricks usage attribution.
The fixed header contains no credential or account data.
See attribution details.
Fuzzing
Coverage-guided fuzz targets for WebSocket, book, and REST parsing live in fuzz/.
They require the workspace-pinned cargo-fuzz binary and a Rust nightly toolchain.
Documentation
License
Licensed under the GNU Lesser General Public License v3.0.