Trade your prop account programmatically
A REST API for reading account state and placing orders on a Vanta prop account. Create a key in the dashboard, sign each request with it, and your bot trades the same account you trade by hand.
What it does
Five operations, all scoped to a single prop account.
| Method | Endpoint | What it returns |
|---|---|---|
| GET | /api/v1/trading/account | Account snapshot |
| GET | /api/v1/trading/positions | Open positions |
| GET | /api/v1/trading/orders | Pending orders |
| GET | /api/v1/trading/trades | Trade history |
| POST | /api/v1/trading/orders | Place an order |
Full request and response detail is on the Endpoints page. A generated OpenAPI 3.1 document is available if you would rather import the API into Postman or generate a client.
At a glance
The facts you need before writing any code.
| Base URL | https://app.vantatrading.io |
| Authentication | HMAC-SHA256 request signing. Four headers travel with every request. There are no bearer tokens, no OAuth, and no session cookie. |
| Format | JSON in, JSON out. Success responses are wrapped in { "success": true, "data": … }; failures return { "error": "…" } with a 4xx/5xx status. |
| Account binding | Each key is bound to exactly one prop account at creation. Reads need no account id; writes must name the bound account. Trading several accounts means one key per account. |
| Rate limit | 120 read requests per minute per key. See Errors & rate limits. |
| Keys per account | Up to 3 active keys. Revoke one to create another. |
What you need
Two things, in this order.
- A Vanta prop account. The API trades an account you already have. It cannot create one, and there is no paper trading sandbox.
- An API key and secret, created in the dashboard under Settings → Key Management. The secret is displayed once, at creation.
The Quickstart walks through both and ends with a working signed request.
What it deliberately does not do
Worth knowing before you design around it.
- No market data. There are no price, candle or orderbook endpoints. Source quotes from your own data provider.
- No streaming. Account state is available by REST polling only. There is no WebSocket or SSE feed. Poll within the rate limit rather than in a tight loop.
- No account administration. Keys cannot create accounts, move funds, request payouts, or change settings. They read and they trade, nothing else.
- No trailing stops on order placement. Trailing stops are currently settable from the trading terminal only; the field is not accepted on the API and is ignored if sent.
Challenge rules still apply
Orders placed through the API are ordinary orders on your account. Drawdown limits, leverage caps and every other challenge rule are enforced exactly as they are in the terminal. An automated strategy can breach them just as easily as a manual one, and a good deal faster.
Where to go next
The rest of this documentation, in reading order.
QuickstartCreate an API key in Settings → Key Management, then make your first signed request.AuthenticationThe HMAC signing scheme, the four required headers, and a worked test vector to check your signer against.EndpointsEvery endpoint with its scope, request body, response shape and ready to run samples.Placing ordersExecution types, sizing fields, brackets, editing and cancelling, with the exact payload each one takes.Errors & rate limitsEvery status code the API returns, what causes it, and which ones are safe to retry.Versioning & changelogHow the v1 contract evolves and what has changed so far.Create an API keyOpens Settings → Key Management in the Vanta dashboard.