Each path sits under the test base path
/api/trading/test/v1 or the production base path /api/trading/v1:
The rate object
A price is per
unit, a quantity is in quantity_unit. A gold rate per 10 gram and an order of 10 grams is worth one rate, not ten: see Units and pricing. Parse every amount as a decimal, not a float.
Read the rates
200 OK
- The list holds every active symbol that has a published rate, sorted by
symbol_code.totalcounts them all. - It takes
limit(1 to 200, default 50) andoffset, likeGET /orders. The board is short, so one call normally returns it whole.
Read one rate
200 OK
404 unknown_symbol. An active symbol whose rate is not published yet answers 503 rates_not_ready: retry shortly.
Using a rate to place an order
The rate tells you what an order would cost now; it does not reserve that price. Prices move every few seconds, and the order is priced again when it is placed.- Check that
is_tradingistrueandstaleisfalse, and that the side you want (buyfor a buy,sellfor a sell) is notnull. - Work out the value: for 25 g of
GOLD_TRADE_999at a Buy rate of141250.00per 10 g, the order is worth 141,250.00 × (25 ÷ 10) = ₹353,125.00. - Send the rate you showed as
expected_priceinPOST /orders. If the live price has moved beyond Bullionwale’s tolerance from it, the order is refused with409 price_movedinstead of being booked at a price you did not expect (see Orders).
Test and production
Rates are not account data, so both environments return the same live prices, priced for your account. A test order is priced from this same board.Polling
The board is republished every few seconds. Polling more often than about once a second gains nothing and uses your read budget (300 per minute per key by default; see Rate limits). To follow trading halts and the official close as well, use Market status.Errors
Every code is in the Error reference.