← Blog

What Rithmic's API actually gives you — and the access trap

Rithmic is the plumbing behind a lot of futures prop firms, and it wears two faces. There’s R|Trader Pro, the desktop GUI a human clicks, and there’s R|Protocol, the programmatic API our bots actually speak (via the async_rithmic library). Most people only ever meet the first one. If you want a bot, you live in the second.

When you are let in, R|Protocol is good. It streams real-time order, fill, and position updates, account P&L, and — the part we care about most — full depth of market, not just the best bid and offer. We build order-flow imbalance (OFI) off those L2 levels. That’s a real, usable signal you simply cannot reconstruct from a delayed REST quote. For a futures bot, the order book is the edge.

Here’s the trap. API access is granted per account, separately from the GUI. You can log into R|Trader Pro, see your account, sign every agreement in front of you, flip the “Allow Plugins” switch ON — and the API will still refuse you. The refusal comes back as rpCode 13, permission denied. Nothing in the UI tells you the API flag is a different switch entirely, one you can’t reach.

We confirmed this the slow way. A Rithmic Paper Trading account: denied. A second paper account: denied. A sim tournament (Tradeify’s Grand Cup): denied. We tried every combination that could possibly matter — different system names, both the public and test gateways, eight different app-name strings including Rithmic’s own documentation sample, several version numbers. Every single one came back rpCode 13.

The pattern that fell out of it: sim, paper, and tournament accounts get the GUI but not the API. The accounts that get programmatic access are the paid combines — the ones you actually fund. Even then, don’t assume; we verify on first connect with a login-only probe before wiring anything else.

One gotcha worth an afternoon of your life: the system name the API wants is not the label in the dropdown. “Tradeify” in the UI is tradesea to R|Protocol. Use the UI label and you get a different error that looks like a typo but isn’t your real problem — sending you off debugging the wrong thing.

The lesson generalizes past Rithmic: before you build an adapter for any gated platform, answer the cheapest question first. Is this account paid or sim? If it’s sim, assume the door is locked until a thirty-second login check proves otherwise. We learned that one receipt at a time.

Activate your code →