Errors & status codes

StatusMeaningTypical error
200OK—
201Created (instance created, order placed, key created)—
400Bad request — missing/invalid fields, instance not RUNNING, no runner assigned, invalid JSONMissing required fields: symbol, type, volume
401Auth failed — missing/invalid/inactive/expired key, suspended account, no creditsInvalid API key / Account has no credits remaining
403Forbidden — instance limit reached, accessing another account's resourceInstance limit reached (5)
404Not found — instance/order/position/key not found or not yoursInstance not found
409Conflict — instance already exists, connection state conflictAn instance with this account ID already exists
500Internal errorFailed to place order
503Service unavailable — no available runner, or the runner is offlineRunner is not connected
504Gateway timeout — runner accepted the command but didn't respond in time (outcome unknown)Broker request timed out…

Important on 504: for order placement, a 504 means the command reached the runner but no response came back within the timeout. The order may have executed. Do not blindly retry — reconcile via get positions / get orders first, or send every order write with an Idempotency-Key and retry with the same key.