Storm exposes two REST APIs. They serve different jobs and live on different hosts.
| API | Job | Swagger |
|---|---|---|
| Trading API (V3) | Submit and cancel signed intents, query Smart Accounts, bundles, orderbook and sequencer status | api.storm.tg/v3-node-0/swagger |
| Data API | Read markets, prices, positions and order history, vaults, referrals, stats | api.storm.tg/api/api-docs |
A typical integration reads markets and history from the Data API and writes orders through the Trading API.
π Environments
| Environment | Trading API (V3) | Data API |
|---|---|---|
| Mainnet | https://api.storm.tg/v3-node-0 | https://api.storm.tg/api |
| Stage | https://api.stage.stormtrade.dev/v3-node-0 | https://api.stage.stormtrade.dev/api |
Stage runs against TON testnet. Build and test there first.
π Authentication
- Trading API (V3) has no API key. Every write is a message signed by the user's key, and every read is public by Smart Account address.
- Data API is public for reads. A few endpoints used by the Storm app itself require a bearer token and are not intended for third parties.
β± Rate Limits
Rate limits are applied per IP. Exact numbers are not published and may change. Poll status endpoints no more often than once per second, cache market lists, and use the account-scoped endpoints instead of listing all bundles or accounts.
π¨ Errors
The Trading API returns a JSON body with code, error, msg and externalQueryId on 400 and 500. The codes to handle are listed in Architecture & Concepts.
The Data API follows NestJS conventions and returns statusCode, message, error and path.
π§ Which Endpoint Do I Need?
| I want to | Use |
|---|---|
| List markets with current price and reserves | Data API GET /markets |
| Place or cancel an order | Trading API POST /order/place, POST /order/cancel |
| Get the next query id for a Smart Account | Trading API GET /smartaccount/{address}/queryID |
| Read a user's open positions | Trading API GET /smartaccount/{address}/positions |
| Read a user's position or order history | Data API GET /positions/{trader}/..., GET /orders/{trader}/... |
| Follow an order after submission | Trading API GET /intent/{hash}, GET /smartaccount/{address}/bundles/{query_id} |
| See the limit orderbook | Trading API GET /orderbook/{asset}/depth |
| Check whether the sequencer is healthy | Trading API GET /status |
| Check builder registration and earnings | Trading API GET /builders |