# CoinAPI EMS Trading API

One order model over 26 exchange destinations, TWAP and VWAP, priced per account-hour.

*https://cryptomarkets.tools/tools/coinapi-ems · Crypto Trading Bots & Execution SDKs*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | CoinAPI |
| Category | Crypto Trading Bots & Execution SDKs |
| Job | execution_sdk |
| Website | https://www.coinapi.io/products/ems-api |
| Pricing model | subscription |
| Free tier | false |
| Open source | false |
| Licence | none |
| Self-hosted | false |
| KYC required | false |
| Tested hands-on | false |
| Last updated | 2026-09-19 |

### Pricing

| Tier | USD | Period |
| --- | --- | --- |
| Professional | 999 USD | month |
| Enterprise | on request | month |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | spot, perpetuals, futures, options |
| Chains | none |
| Venues | cex, dex, derivatives |
| Data latency | realtime |
| Platforms | library |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | true |
| Webhooks | false |
| Scripting | none |
| MCP server | false |
| Export | api |

### Capabilities

Yes: automation, live_trading, portfolio_tracking

No: charting, screening, backtesting, paper_trading, exchange_import, tax_reporting, alerts, news, onchain_data, wallet_tracking, derivatives_analytics

*Verified: pricing 2026-09-19; capabilities 2026-09-19.*

## What it is

An execution layer with no screen attached. You keep your own exchange accounts, hand their keys
to CoinAPI's managed cloud, and then submit orders, read balances and read positions through one
API instead of nineteen. The thing being sold is the connectivity and its upkeep: one order model,
one set of identifiers, one connection, and somebody else's problem when a venue changes its
authentication scheme.

This is the plumbing under a bot, not a place to trade from. There is no front end of any kind —
the vendor's own description is "Managed Cloud service… You manage the deployment using the REST
API" — so the buyer is whoever would otherwise be writing the tenth exchange connector. If you
want a screen with order entry on it, this is the wrong product and the wrong category.

It is a different purchase from the market data CoinAPI is better known for, priced on a different
meter and sold from a different page. The two share a symbol scheme and nothing else: an EMS
subscription does not include the tape, and a market-data subscription cannot place an order. The
architecture is three components — an Edge process per venue, an API process in front of them, and
your application — and CoinAPI runs the first two.

## Pricing

One published price and one quote. **Professional is $999 a month** on the pricing page's default
monthly setting, or $833.25 a month billed annually; both figures are in the page's own plan data
rather than only in the big type. Enterprise is contact-sales and buys custom SLAs, dedicated
infrastructure, collocated trading sites and latency optimisation.

The unit that actually scales is the **exchange account**, not the request. Professional includes
ten; above the quota they are billed by the hour on a sliding scale — $0.094 an hour each for the
first three, then $0.063, $0.038, $0.0342, and $0.030 an hour above a hundred accounts. At the
first rate an eleventh account is about $68 a month. Usage is denominated in Usage Credits, and the
vendor states that on Pay As You Go one credit is generally one dollar.

**There is no free plan on the pricing page**, and no numbers behind the one the FAQ mentions. The
FAQ says you can move a Free plan up to Professional in the customer portal, that cancelling
Professional drops you back to "a Free trial", and that both the Free and Professional plans
include some number of managed accounts — without saying what that number is. The product page's
call to action is "Start With Free Credits" into the console. Treat it as a trial balance with an
undisclosed size rather than a tier you could plan a year on.

What the SLA table buys is worth reading before Professional is assumed to be the safe choice: 99.9%
uptime applies to Professional, everything under Latency SLA, Dedicated Infrastructure and
Dedicated Interconnects is a dash, and the custom version of all three is Enterprise only.

## Data & coverage

The destination list is the whole product, and CoinAPI publishes it as two support matrices rather
than a marketing count. Twenty-six order destination ids appear: BINANCE, BINANCEUAT, BINANCEJE,
BINANCEUS, BINANCEFTS, BINANCEFTSUAT, BINANCEFTSC, BINANCEFTSCUAT, BINANCEOPTV, BINANCEOPTVUAT,
BITFINEX, BITMEX, BITMEXUAT, BITSTAMP, BLOCKCHAINEXCHANGE, COINBASE, GEMINI, HITBTC, KRAKEN,
KRAKENFTS, POLONIEX, LMAXDIGITAL, LMAXDIGITALUAT, DERIBIT, DERIBITUAT and DYDX.

Read that list twice. **Seven of the twenty-six are UAT environments of venues already counted** —
Binance spot, Binance futures, Binance coin-margined futures, Binance options, BitMEX, LMAX Digital
and Deribit each appear once for production and once for test. Nineteen distinct places remain, and
six of them are Binance. The headline "26 Exchange Integrations" is therefore true and not the
number you want.

Asset classes follow from the destinations rather than from a claim: spot on the retail venues,
linear and coin-margined futures through BINANCEFTS and BINANCEFTSC, Kraken Futures, options
through BINANCEOPTV and Deribit, perpetuals through BitMEX and dYdX. `DYDX` carries no version in
the table, which matters, because dYdX v3 and v4 are different systems with different order books.

Order state is where the normalisation actually shows. Nine statuses — RECEIVED, ROUTING, ROUTED,
NEW, PARTIALLY_FILLED, PENDING_CANCEL, FILLED, CANCELED, REJECTED — with every legal transition
documented and each one labelled by who caused it, including the two that mean "this order was
placed outside the EMS and we are now seeing it". Execution reports stream over WebSocket with
status history attached.

Execution instructions are supported unevenly and the table says so. Maker-or-cancel (post only)
exists nearly everywhere; Auction Only and Indication Of Interest exist only on Gemini, LMAX
Digital, Deribit and dYdX; cancel-on-disconnect, its inverse, and reduce-only appear on a handful
of rows each. If your strategy depends on post-only or reduce-only semantics, check the row for
your venue before you sign.

## Integrations

REST for cloud management, WebSocket for order flow and execution reports, and FIX — 4.4, 5.0 and
FIXT 1.1 — for anyone who already speaks it. The FIX side has one operational quirk worth budgeting
for: each API key holds exactly one session, and establishing a second on the same key disconnects
the first.

Published limits are otherwise unusually generous and unusually vague. The limits table says "No
limits" for both the EMS REST API and the EMS WebSocket API, and applies a per-key concurrency
limit only to the cloud-management API. Multiple keys under one subscription share one quota, and
each key can be capped lower.

Smart order routing is included on Professional rather than sold separately: TWAP, VWAP, iceberg
and volume-participation algorithms that slice a parent order and distribute it across connected
venues, with routing decisions described as a function of depth, live order-book activity and fee
schedules. The child fills come back through the same normalised execution reports.

SDKs and samples are advertised for more than forty languages out of the `api-bricks/api-bricks-sdk`
repository, and the symbol and exchange identifiers are the ones from CoinAPI's market-data
product, so the two fit together if you buy both.

## Limitations

**Only limit orders exist.** The WebSocket message schema lists `LIMIT` as the sole value of
`order_type`, and the documentation devotes a section to reproducing a market order out of a limit
order plus Fill or Kill. The vendor's argument for this — that many destinations implement market
orders as limit orders anyway — is fair, and it still means every caller has to supply a price and
handle the rejection when the book moves away.

**The venue list is a 2019 list.** OKX, Bybit, KuCoin, Bitget, Gate.io, MEXC and Hyperliquid are
absent from the destination tables, and Poloniex, HitBTC, Blockchain Exchange and Binance Jersey are
present. For a product whose entire proposition is "we maintain the connectors so you don't", the
set of connectors it maintains is the thing to check first, and this one does not cover most of
today's perpetual volume.

**No latency number, anywhere.** The pages say low-latency, HFT-ready and colocated; no figure, no
percentile, and no latency SLA below Enterprise.

**No sandbox of CoinAPI's own.** What the destination table offers instead is seven exchange UAT
environments, which means testing depends on holding test credentials at Binance, BitMEX, LMAX
Digital or Deribit rather than on anything CoinAPI runs.

**You cannot see the supported-venue list before you pay.** The endpoint that returns exchange
configuration and the required credential fields per venue is `GET /v1/exchanges` on the management
host, and the vendor's own tutorial says it needs an API key and an active EMS subscription. The
documentation tables above are the only view from outside.

**No MCP server for this product**, despite the vendor's MCP page listing EMS among what its hosted
servers expose to agents. The three endpoints CoinAPI actually publishes are for Market Data,
Indexes and Flat Files.

**The free trial is undated and unquantified.** A plan that appears in the FAQ, is absent from the
pricing page and has no published quota is not something to size a proof of concept against.

## Alternatives

Inside the same vendor, the Market Data API is the other half of this and a separate purchase; the
EMS does not carry the tape and the tape cannot place orders.

Outside it, the honest comparison is against writing the connectors yourself with
[CCXT](https://cryptomarkets.tools/tools/ccxt), which is free, covers far more venues and gives you nothing else — no managed
infrastructure, no FIX, no routing algorithms and no SLA. At $999 a month the question is whether
nineteen destinations, TWAP and VWAP, and somebody else's on-call rota are worth more than the
weeks CCXT saves you and the maintenance it leaves you with. [Hummingbot](https://cryptomarkets.tools/tools/hummingbot) sits
in the same gap from the other side: open source, more venues, and an execution framework rather
than a managed service. The rest of the field is in
[Crypto Trading Bots & Execution SDKs](https://cryptomarkets.tools/categories/trading-bots).

## FAQ

### Can CoinAPI EMS place a market order?

Not as an order type. The WebSocket schema lists exactly one value for order_type — LIMIT — and the documentation's answer to market orders is a workaround: send a limit order with Fill or Kill and set the price to the worst level you will accept.

### Which exchanges can CoinAPI EMS route to?

Twenty-six order destinations are named in the documentation's support tables, but seven of them are UAT test environments of venues already on the list. The nineteen that remain are mostly the 2019-era majors — Binance, Coinbase, Kraken, Bitstamp, Gemini, Bitfinex, BitMEX, Deribit, LMAX Digital, dYdX. OKX, Bybit, KuCoin, Bitget, Gate.io and Hyperliquid are not among them.

### Is there a free tier for the EMS Trading API?

Not a documented one. The pricing page shows Professional and Enterprise only, while the FAQ on the same page refers to a Free trial the account drops back to when a Professional plan is cancelled. No quota, no duration and no feature list for it appear on the pricing page, in that FAQ or in the documentation.

### Does the EMS product have an MCP server?

No. CoinAPI publishes three MCP endpoints — Market Data, Indexes and Flat Files — and none of them is EMS, even though the vendor's MCP page names EMS among the capabilities it exposes to agents.

## Also from CoinAPI

- [CoinAPI Market Data API](https://cryptomarkets.tools/tools/coinapi.md)

## Also worth comparing

- [ccapi](https://cryptomarkets.tools/tools/ccapi.md) — Header-only C++ market data and execution for 30 venues, on a Bloomberg-shaped API.
- [CCXT](https://cryptomarkets.tools/tools/ccxt.md) — One MIT client for 104 crypto exchanges, 76 of them over websocket.
- [dYdX v4 Clients](https://cryptomarkets.tools/tools/dydx-v4-clients.md) — Four language clients for one perp DEX, under a licence that is not the one on the badge.
- [Hyperliquid Python SDK](https://cryptomarkets.tools/tools/hyperliquid-python-sdk.md) — The official Python client for signing and sending orders on one perp DEX.
- [3Commas](https://cryptomarkets.tools/tools/3commas.md) — Hosted DCA, grid and signal bots over nine exchanges, with your keys on their servers.
- [Bitsgap](https://cryptomarkets.tools/tools/bitsgap.md) — Hosted grid, DCA and futures bots on seventeen venues, with no API and no webhooks.
