Connect ProjectX
Connect TopstepX or another ProjectX firm with an API key: where to generate it, what appears once connected, and the bracket setting worth checking.
Updated
ProjectX firms such as TopstepX connect with an API key, not a password. You generate the key on your firm's dashboard, paste it into OmenSyncer, and your accounts appear.
What you need
| You need | Details |
|---|---|
| Your prop firm | The ProjectX-backed firm your account is held with, for example TopstepX or The Futures Desk. |
| Platform username | The username you sign in to that firm’s platform with. |
| An API key | Generated on your firm’s dashboard. On TopstepX it’s under API Access. |
| A connection name | A label you’ll recognise, such as "TopStep 100k". |
Get your API key
Sign in to your firm's dashboard and open its API access area (on TopstepX, API Access). Generate a key and copy it. The key lets OmenSyncer trade the account, so treat it like a password. You can regenerate it on the firm's side whenever you need to.
Connect the account
- Go to Connections and click Add a connection.
- Name the connection, then pick ProjectX.
- Choose your prop firm from the list. Pick the one your account is actually held with, since each firm uses its own gateway.
- Enter your platform username.
- Paste your API key. Use the Reveal toggle to check it before connecting.
- Click Connect ProjectX account.
What appears after
OmenSyncer signs in with your key and pulls in every account it finds, each ready to set as a leader or a follower. See Managing your accounts for the next step.
Brackets: one setting worth checking
TopstepX has a bracket setting that changes how your stops and targets get placed. You'll find it under Settings → Risk Settings, and it is one of two things:
| Setting | What OmenSyncer does |
|---|---|
| Auto OCO Brackets | Sends your stop and target with the entry, in one go. Slightly faster, and your broker manages the pair even if OmenSyncer goes offline. |
| Position Brackets | Sends the entry, then adds the stop and target separately. Works fine: OmenSyncer manages the pair instead. |
You don't have to change anything. OmenSyncer works out which one you're on the first time it places a bracket, and uses the right approach from then on. Auto OCO Brackets is marginally better if you're choosing.
What a risk limit can and can't promise
If you set a daily loss limit in OmenSyncer, it's worth knowing how tightly it can hold. ProjectX firms don't provide a live price stream to the API, so OmenSyncer prices your open positions from one-second bars, the freshest thing available. Measured against TopstepX, that price runs about 3 to 6 seconds behind the market.
So a limit is enforced within a few seconds rather than instantly, and in a fast market your loss can overshoot the number you set. On MES, that is in the region of $10 per contract. If your prop firm has its own hard limit, set OmenSyncer's a little below it rather than level with it, so the overshoot lands in the gap instead of on the firm's line.
One session at a time
Exchange rules let a ProjectX account hold only one live session, so OmenSyncer and your broker platform compete for it. Opening TopstepX can disconnect OmenSyncer's feed, and connecting OmenSyncer can sign you out of TopstepX. You'll get a Reconnect needed notification when it happens, and OmenSyncer waits rather than fighting you for it. But while its feed is down, trades aren't copying.
So for live trading you have to pick one, and the choice is straightforward once it's stated plainly:
| If you want to… | Do this |
|---|---|
| Copy trades reliably | Keep TopstepX closed. OmenSyncer holds the session and the feed stays up. |
| Watch charts while copying | Use a platform that doesn’t take the session, such as TradingView or your own charting, rather than TopstepX. |
| Trade manually in TopstepX | Expect OmenSyncer’s feed to drop while you’re in there. It reconnects within a minute of you closing it. |
How quickly automatic actions react
On ProjectX, Auto-Breakeven, Daily Profit Target and Daily Loss Limit react about 3 to 5 seconds after the price actually moves. That is a limit of the broker, not of OmenSyncer, and it comes from the same one-session rule above.
A live price feed would need a second connection to your account, and the exchange allows one. OmenSyncer uses that one connection for your orders and fills, and without it nothing copies at all, so prices are fetched separately, in the smallest increment the broker offers. That price is a second or two old before it reaches us, and we can only ask for it so often.
Practically: set breakeven and risk levels with a few seconds of slack rather than at the exact tick you have in mind. On brokers that provide a real-time feed, these react in well under a second.
If it doesn't connect
A rejected key or an empty account list usually means the key was mistyped or the wrong firm was picked. Work through Connection troubleshooting.
