Vanta Trading API

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.

MethodEndpointWhat it returns
GET/api/v1/trading/accountAccount snapshot
GET/api/v1/trading/positionsOpen positions
GET/api/v1/trading/ordersPending orders
GET/api/v1/trading/tradesTrade history
POST/api/v1/trading/ordersPlace 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 URLhttps://app.vantatrading.io
AuthenticationHMAC-SHA256 request signing. Four headers travel with every request. There are no bearer tokens, no OAuth, and no session cookie.
FormatJSON in, JSON out. Success responses are wrapped in { "success": true, "data": … }; failures return { "error": "…" } with a 4xx/5xx status.
Account bindingEach 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 limit120 read requests per minute per key. See Errors & rate limits.
Keys per accountUp to 3 active keys. Revoke one to create another.

What you need

Two things, in this order.

  1. A Vanta prop account. The API trades an account you already have. It cannot create one, and there is no paper trading sandbox.
  2. 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.