Deriv API

Product updates

Markup statistics: a 1-hour data delay and a 6-month query window

What's new

Markup statistics now runs on a new backend. Results exclude the most recent hour of activity, and queries cover only the last 6 months.

Today's figures are still included, but a trade from the last hour won't appear yet. If your date_from is older than 6 months, we'll move it forward to the earliest supported date instead of rejecting the request. Check the date range in the response, and keep your own copy of anything older. Authentication, rate limits, response fields, and status codes are unchanged.

Documentation: API limits page

What's new

Rate limits for all Deriv APIs are now documented in one place — WebSocket call budgets, REST request caps, and error handling.

No action needed — this is a documentation-only change; API behaviour is unchanged. If your integration retries aggressively or batches calls near a threshold, start with the error-handling guidance.

New symbols now available on the Deriv API

What's new

New synthetic indices are now available on the Deriv API: Volatility 15 (1s), 30 (1s) and 90 (1s) indices, new Crash/Boom ranges (300–1000), and Range Break 100 and 200.

Each new symbol supports certain trade types only — call active_symbols to see what each one offers. Existing integrations are unaffected; request the new symbols through the same endpoints you already use.

Buy contracts for multiple accounts in one call

What's new

Buy the same options contract for up to 100 end-user accounts in one REST call.

A 200 response doesn't mean every purchase succeeded — the transactions array carries one entry per account, each either a purchased contract or an error for that account alone. Each account authorises itself, so you don't need your own OAuth token — just the Deriv-App-ID header.

Run automated trading strategies over WebSocket

What's new

Seven WebSocket endpoints for running predefined automated trading strategies: you pick a strategy, supply a contract template, and control the run through its run_id.

Pausing and stopping differ in what happens to open contracts. Both halt new purchases: pause holds the run so auto_resume can pick it up later, while stop ends the run and open contracts continue to their own expiry. You can subscribe instead of polling — call auto_get with subscribe: 1 to stream new purchases and status changes until the run ends or you call forget.

Click to open live chat support. Get instant help from our support team.