Your TradingView alert fires, your automation tool sends the order, and instead of a fill you get a JSON blob with an errorCode field that isn’t 0. That’s the whole problem with ProjectX errors: the API tells you exactly what went wrong, but the message is buried in a field most traders never look at.
Table of Contents
- Where Do ProjectX Error Codes Actually Come From?
- What Are the Most Common ProjectX Authentication Errors?
- HTTP 401: Unauthorized / Session Expired
- “User Lacks Subscription”
- WebSocket Connection Refused
- What Do ProjectX’s Numbered Order and Account Error Codes Mean?
- Why Is ProjectX Rate-Limiting or Dropping My Connection?
- HTTP 429: Too Many Requests
- Account Missing From ProjectX Dashboard
- Frequently Asked Questions
- What does ProjectX errorCode 1 mean?
- Why do I keep getting a ProjectX 401 error?
- Is errorCode 2 (Order Rejected) the same as a rules violation?
- Does PickMyTrade handle ProjectX rate limits for me?
- Where can I find the full, current list of ProjectX error codes?
- Bottom Line
This is a reference, not a story. Find your error code or symptom below, read the cause, apply the fix, move on. Every code and message here comes from ProjectX’s own API responses, Topstep’s help center, or PickMyTrade’s own error-code documentation, checked live on September 5, 2026. Where a fix is based on patterns we see across support tickets rather than an official doc, it’s labeled as such.
Key Takeaways
• ProjectX’s order and account API returns a numericerrorCodefield (0–10) inside a normal 200 response. Success is always 0; anything else is documented in the table below.
• Authentication and rate-limit failures show up differently, as HTTP status codes (401, 429) rather than theerrorCodefield, so you need to check both places.
• JWT session tokens expire after 24 hours. A sudden wave of 401s after a machine has been running unattended overnight is almost always this, not a broken API key.
• The single most common support ticket in this category [PERSONAL EXPERIENCE] isn’t a broken integration, it’serrorCode: 3(Insufficient Funds/Buying Power) hitting after a losing morning, which traders mistake for a platform bug.
• The full code reference this post supports lives at docs.pickmytrade.io/docs/projectx-error-codes-topstepx-fix-guide if you want the bookmarkable version.
Where Do ProjectX Error Codes Actually Come From?
ProjectX’s REST API wraps most responses in a consistent shape: a success boolean, an errorCode integer, and an errorMessage string. When errorCode is 0, the request worked. Any other number points to a specific, documented failure category, from a bad account ID to a contract that’s no longer trading.
That’s separate from standard HTTP status codes. A malformed or expired auth token doesn’t come back as errorCode: 1, it comes back as an HTTP 401 before you ever get an errorCode field to read. Rate limiting works the same way, as an HTTP 429. So when you’re debugging, check the status code first, then the response body.
Citation capsule: The ProjectX authentication endpoint,
POST https://api.topstepx.com/api/Auth/loginKey, returns a JSON response withtoken,success,errorCode, anderrorMessagefields; a successful login showserrorCode: 0. (ProjectX Gateway API Docs)
What Are the Most Common ProjectX Authentication Errors?
HTTP 401: Unauthorized / Session Expired
What it means: Your request didn’t carry a valid session token, or the token you sent has expired or was rejected.
What causes it: ProjectX issues JSON Web Tokens on login, and those tokens are valid for 24 hours. After that window, every subsequent request using the old token comes back unauthorized until you re-authenticate. This also fires if the API key itself was revoked, retyped incorrectly, or if your ProjectX Dashboard subscription lapsed.
How to fix it: Re-run the login request against /api/Auth/loginKey (or your application’s auth flow) to get a fresh token, then retry the failed call. If you’re running your own bot rather than a managed automation tool, build a token-refresh cycle so this never happens mid-session. Don’t wait for a 401 to remind you.
“User Lacks Subscription”
What it means: Your API key is valid, but the account behind it isn’t currently entitled to API trading.
What causes it: This happens when your ProjectX API Access subscription was never linked to your TopstepX profile, lapsed, or was purchased under a different login than the one generating the key. Topstep’s help center lists this exact message as a known failure mode during setup.
How to fix it: Log into your ProjectX Dashboard and confirm Subscriptions shows an active API Access plan, then confirm that subscription is linked back inside TopstepX Settings → API. If it looks correct and still fails, this is a billing-side issue, not a code issue.
Citation capsule: Topstep’s help center documents “User lacks subscription” as a specific setup failure meaning your API subscription isn’t linked to your TopstepX profile, and directs unresolved cases to [email protected]. (Topstep Help Center)
WebSocket Connection Refused
What it means: Your real-time data or order-update connection (built on SignalR over WebSocket) won’t establish or drops immediately.
What causes it: The same JWT that authenticates REST calls has to be valid and unexpired for the WebSocket handshake too. A token that’s still good for REST calls but close to its 24-hour limit can fail the socket connection first, since ProjectX validates it at connect time.
How to fix it: Refresh your token before opening the socket, not after it fails. If you’re on a managed automation platform, this is handled for you; if you’re running a custom script, add token freshness checks to your reconnect logic.
What Do ProjectX’s Numbered Order and Account Error Codes Mean?
These are the numeric errorCode values returned inside the order and account APIs, as documented in PickMyTrade’s ProjectX error-code reference.
| Code | Meaning | Primary Cause | Fix |
|---|---|---|---|
| 0 | Success | N/A | No action needed |
| 1 | Account Not Found | Wrong account ID, or an inactive Topstep account | Verify the account ID in your automation settings; confirm the account is funded and active |
| 2 | Order Rejected | Daily loss limit hit, trading outside allowed hours, a rules violation, or an expired subscription | Check Topstep’s rule dashboard, wait for the next trading day if a limit was hit, and confirm your subscription is current |
| 3 | Insufficient Funds | Low account balance or buying power for the order size | Reduce position size or check available buying power on the ProjectX dashboard before resending |
| 4 | Account Violation | A Topstep rule was broken (commonly a daily loss limit) | Wait for account reset, or open a new evaluation; review which rule triggered it |
| 5 | Outside Trading Hours | Order sent on a weekend, holiday, or outside the instrument’s session | Check Topstep’s published trading schedule for that contract before sending |
| 6 | Order Pending | A limit order is still open and awaiting a fill | Monitor the open order; cancel and resend if it’s stale |
| 7 | Unknown Error | Temporary or unexpected platform issue | Retry after a few minutes; open a support ticket if it persists |
| 8 | Contract Not Found | The contract ID is wrong or misspelled | Pull the correct, current contract ID from your automation tool’s settings |
| 9 | Contract Not Active | The futures contract referenced has expired (rolled) | Map the current front-month contract in your settings |
| 10 | Account Rejected | Subscription is inactive/canceled, or the account isn’t authorized for API trading | Renew your Topstep/ProjectX subscription, or contact Topstep support |
A pattern worth knowing [UNIQUE INSIGHT]: codes 2, 4, and 10 all look like “my automation broke” to a trader watching a rejected order, but all three are actually the platform enforcing account rules or billing status, not an API failure. Before you touch your webhook config or contact support, check your Topstep account status page first. It resolves more of these tickets than anything on the technical side.
Citation capsule: PickMyTrade’s ProjectX error-code guide documents 11
errorCodevalues (0 through 10) returned by the ProjectX order and account APIs, covering account, contract, funding, and rules-based rejections. (PickMyTrade Docs)
Why Is ProjectX Rate-Limiting or Dropping My Connection?
HTTP 429: Too Many Requests
What it means: You’ve exceeded ProjectX’s request rate for a given endpoint.
What causes it: ProjectX enforces per-endpoint limits to protect the gateway. Historical bar requests (POST /api/History/retrieveBars) are capped at 50 requests per 30 seconds. Nearly every other endpoint allows 200 requests per 60 seconds. Polling too aggressively for order status, or re-pulling historical bars in a tight loop, are the two most common triggers.
How to fix it: Back off and retry after a short delay rather than hammering the endpoint again immediately. If you’re building custom polling logic, switch to the WebSocket feed for order and position updates instead of repeated REST polls. That’s what the real-time hubs exist for.
How to fix it if you’re on PickMyTrade: Rate limiting on the ProjectX side is handled inside the automation layer, so this shouldn’t surface to you directly. If it does, it usually means an unusually high volume of alerts firing in a short window; space out test alerts when you’re debugging a strategy.
Citation capsule: ProjectX’s rate limits are documented as 50 requests per 30 seconds for
POST /api/History/retrieveBars, and 200 requests per 60 seconds for all other endpoints, with a429 Too Many Requestsresponse when exceeded. (ProjectX Gateway API Docs)
Account Missing From ProjectX Dashboard
What it means: A TopstepX account you expect to see doesn’t appear in your ProjectX Dashboard, so it can’t be linked or traded via API.
What causes it: This is usually a sync delay between TopstepX and the ProjectX Dashboard, or a pop-up blocker interrupting the linking flow during setup.
How to fix it: Refresh the Dashboard, disable pop-up blockers, and retry the link. If the account still doesn’t appear, Topstep’s help center points unresolved cases to [email protected].
Frequently Asked Questions
What does ProjectX errorCode 1 mean?
It means Account Not Found: the account ID your request references either doesn’t exist, is misspelled, or belongs to an inactive Topstep account. Double-check the account ID in your automation tool’s settings against what’s shown in TopstepX.
Why do I keep getting a ProjectX 401 error?
Almost always an expired or invalid session token. ProjectX JWTs expire after 24 hours, so any long-running script or bot needs to refresh its token before that window closes, not after it fails.
Is errorCode 2 (Order Rejected) the same as a rules violation?
Not exactly. Order Rejected (2) is a broader bucket that includes hitting a loss limit, trading outside session hours, or an expired subscription. Account Violation (4) is specifically for a broken Topstep rule, most often the daily loss limit. Check the specific errorMessage text returned with the code to tell them apart.
Does PickMyTrade handle ProjectX rate limits for me?
Yes. PickMyTrade manages the authentication and request cadence to ProjectX in the background, so individual traders sending webhook alerts don’t typically hit the 429 threshold themselves.
Where can I find the full, current list of ProjectX error codes?
PickMyTrade maintains a dedicated reference at docs.pickmytrade.io/docs/projectx-error-codes-topstepx-fix-guide, covering the same codes in this post plus updates as ProjectX changes its API.
Bottom Line
Most ProjectX errors aren’t mysterious once you know where to look. Check the HTTP status code first for auth and rate-limit problems, then check the errorCode field for anything account-, order-, or contract-related. The majority of tickets trace back to three things: an expired 24-hour token, a Topstep rule that got triggered, or a stale contract ID after a monthly roll. Fix those three habits and you’ll clear most of what’s on this page before it happens.
If you’re setting up the connection for the first time, PickMyTrade’s ProjectX setup guide walks through account creation and linking, and the ProjectX automation overview covers how the platform fits into a broader TradingView-to-broker workflow.
Sources:
- ProjectX Gateway API Docs: Authenticate with API Key
- ProjectX Gateway API Docs: Rate Limits
- ProjectX Gateway API Docs: Real Time Data Overview
- Topstep Help Center: TopstepX API Access
- PickMyTrade Docs: ProjectX Error Codes & Fixes for TopstepX Traders
Connect your alerts with PickMyTrade — automated trade execution, no coding required. Start free →
