{"name":"Broker API Hub: Deriv","page":"https://openbrokerapi.com/brokers/deriv","file":"https://openbrokerapi.com/data/brokers/deriv.json","generated":"2026-10-12","generatedBasis":"The newest checked date among the records in this file. It is not the date the file was built.","newestReading":"2026-10-12","newestReadingBasis":"The date the page prints as Newest reading: the newest checked date on the record itself, on its claims, on its limit and endpoint records and, for a platform, on a broker's note that it offers the platform. generated can be later, because this file also holds error, change and MCP records.","licence":"Mixed. Each section states its own licence. Sections from the registers are CC BY 4.0. Sections from the broker, platform, endpoint and error records are all rights reserved and are given for reference.","licenceUrl":"https://creativecommons.org/licenses/by/4.0/","cite":"Broker API Hub, Deriv, openbrokerapi.com/brokers/deriv, newest check 2026-10-12","note":"Independent and unofficial. An empty list or a null means this site holds no record. It does not mean that none exists. Every record carries its own source and checked date: cite those where you rely on a single figure.","identity":{"licence":"All rights reserved","leftOut":"The tagline, which is this site's own writing. It is on the page.","id":"deriv","slug":"deriv","name":"Deriv","kind":"broker","nativeApi":null,"apiFamily":["WebSocket","REST"],"products":["CFD","FX","Options"],"availability":"active","legalEntity":null,"regulator":null,"docsUrl":"https://developers.deriv.com/docs/limits","baseUrls":{"rest":"https://api.derivws.com"},"orderTypes":[],"sources":[{"url":"https://developers.deriv.com/docs/limits","title":"Deriv API: limits","checked":"2026-10-12"},{"url":"https://partners-academy.deriv.com/articles/commission-structure","title":"Commission structure, Deriv Partners Academy","checked":"2026-09-25"},{"url":"https://developers.deriv.com/docs/intro/api-overview/","title":"Deriv API: API overview","checked":"2026-10-12"},{"url":"https://developers.deriv.com/docs/intro/authentication/","title":"Deriv API: authentication","checked":"2026-10-12"}],"lastChecked":"2026-10-12","review":"ported"},"claims":{"licence":"All rights reserved","records":[{"key":"access_route","value":"Two kinds of app. With an OAuth 2.0 app the user signs in and consents at Deriv, and the app exchanges the code it gets back for an access token. With a Personal Access Token app the user generates a token in Deriv and enters it into the app. An earlier wording here (register an app_id in Manage Applications, or try the test app_id 1089) is legacy: it is not on Deriv's authentication page as read on 12 Oct 2026.","status":"verified","sources":[{"url":"https://developers.deriv.com/docs/intro/authentication/","title":"Deriv API: authentication","checked":"2026-10-12"}]},{"key":"eligibility","value":"A Deriv account. The app registration is self serve.","status":"unverified","sources":[]},{"key":"demo","value":"Yes: the overview says each user gets a default demo account at signup, and there is a separate demo WebSocket endpoint.","status":"verified","sources":[{"url":"https://developers.deriv.com/docs/intro/api-overview/","title":"Deriv API: API overview","checked":"2026-10-12"}]},{"key":"auth","value":"Two routes: an OAuth 2.0 app, or a Personal Access Token the user generates and pastes into the app. Either way the token is sent as a bearer token. With a Personal Access Token, REST requests also need a Deriv-App-ID header.","status":"verified","sources":[{"url":"https://developers.deriv.com/docs/intro/authentication/","title":"Deriv API: authentication","checked":"2026-10-12"}]},{"key":"streaming","value":"WebSocket carries trading and market data, on a public endpoint and on demo and real endpoints opened with a one time password fetched over REST. Each connection can send 10 pings a second, outside the call budgets.","status":"verified","sources":[{"url":"https://developers.deriv.com/docs/intro/api-overview/","title":"Deriv API: API overview","checked":"2026-10-12"},{"url":"https://developers.deriv.com/docs/limits","title":"Deriv API: limits","checked":"2026-10-12"}]},{"key":"history_depth","value":"Not recorded yet: the limits page was the page opened in this rotation.","status":"unverified","sources":[]},{"key":"rate_limits","value":"Websocket, per minute and per hour: proposal, buy and sell 360 and 14,400; balance and statement 100 and 2,000; portfolio and profit_table 30 and 1,500; everything else 220 and 14,400. REST: 300 a minute and 1,000 per 10 minutes per IP, and 80 a minute per logged in user, which is the binding constraint for most retail scripts. Deriv's API overview in the text form it publishes for AI tools gives different figures: REST 60 a minute per token, and on the WebSocket 100 requests a second and 100 active subscriptions per connection, with 5 concurrent connections per user. Deriv's own pages disagree.","status":"conflicting","conflict":"Deriv Limits page: REST 80 a minute per logged in user, 300 a minute and 1,000 per 10 minutes per IP, WebSocket budgets per group of calls. Deriv API overview (llms/api-overview.md): REST 60 a minute per token, WebSocket 100 requests a second and 100 subscriptions per connection, 5 connections per user.","sources":[{"url":"https://developers.deriv.com/docs/limits","title":"Deriv API: limits","checked":"2026-10-12"},{"url":"https://developers.deriv.com/llms/api-overview.md","title":"Deriv API overview, text form for AI tools","checked":"2026-10-12"}]}]},"platformApis":{"licence":"All rights reserved","records":[]},"sdks":{"licence":"All rights reserved","records":[{"name":"deriv-api","language":"JavaScript","url":"https://github.com/deriv-com/deriv-api","official":true,"source":"https://github.com/deriv-com/deriv-api","checked":"2026-09-23"},{"name":"python-deriv-api","language":"Python","url":"https://github.com/deriv-com/python-deriv-api","official":true,"source":"https://github.com/deriv-com/python-deriv-api","checked":"2026-09-23"}]},"endpoints":{"licence":"All rights reserved","leftOut":"Parameters, request bodies, example responses and notes. Each is on the endpoint's page.","records":[{"method":"GET","path":"/trading/v1/options/accounts","version":"v1","group":"Accounts","summary":"Lists your Options trading accounts, each with its ID, balance, currency, status and whether it is demo or real.","status":"verified","source":"https://developers.deriv.com/llms/get-accounts.md","officialReference":"https://developers.deriv.com/llms/get-accounts.md","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/endpoints/accounts"},{"method":"POST","path":"/trading/v1/options/accounts","version":"v1","group":"Accounts","summary":"Creates an Options trading account, demo or real. If an identical account already exists Deriv returns it with a 200 in place of a 201.","status":"verified","source":"https://developers.deriv.com/llms/create-account.md","officialReference":"https://developers.deriv.com/llms/create-account.md","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/endpoints/post-accounts"},{"method":"POST","path":"/trading/v1/options/accounts/{account_id}/reset-demo-balance","version":"v1","group":"Accounts","summary":"Resets the balance of an Options trading demo account. Demo only: it moves no real money.","status":"verified","source":"https://developers.deriv.com/llms/reset-demo-balance.md","officialReference":"https://developers.deriv.com/llms/reset-demo-balance.md","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/endpoints/post-account-reset-demo-balance"},{"method":"POST","path":"/trading/v1/options/accounts/{accountId}/otp","version":"v1","group":"Session","summary":"Exchanges your bearer token for a one time WebSocket URL for one trading account. You then connect to that URL to trade: this is the step between logging in and the WebSocket.","status":"verified","source":"https://developers.deriv.com/llms/websocket.md","officialReference":"https://developers.deriv.com/llms/websocket.md","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/endpoints/post-account-otp"},{"method":"GET","path":"/v1/health","version":"v1","group":"General","summary":"A health check on the REST gateway. Deriv says it needs no authentication, no parameters and no body.","status":"verified","source":"https://developers.deriv.com/llms/health.md","officialReference":"https://developers.deriv.com/llms/health.md","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/endpoints/health"}]},"calls":{"licence":"All rights reserved","what":"Functions of a language binding and messages of a wire protocol: calls that are not HTTP requests, so they have no method and no path and are in no OpenAPI file.","leftOut":"Descriptions of arguments and fields, return values, samples and notes. Each is on the call's page.","records":[{"kind":"message","interface":"Deriv WebSocket API","name":"active_symbols","group":"Market data","summary":"Lists the symbols that can be traded now, with the market each belongs to and whether it is open. The symbol codes it returns are what ticks, ticks_history and proposal expect.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"active_symbols","type":"string","required":true},{"name":"contract_type","type":"array of strings","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"active_symbols","fields":[{"name":"active_symbols[].exchange_is_open","type":"integer","required":true},{"name":"active_symbols[].is_trading_suspended","type":"integer","required":true},{"name":"active_symbols[].market","type":"string","required":true},{"name":"active_symbols[].pip_size","type":"number","required":true},{"name":"active_symbols[].subgroup","type":"string","required":true},{"name":"active_symbols[].submarket","type":"string","required":true},{"name":"active_symbols[].trade_count","type":"integer","required":true},{"name":"active_symbols[].underlying_symbol","type":"string","required":true},{"name":"active_symbols[].underlying_symbol_name","type":"string","required":true},{"name":"active_symbols[].underlying_symbol_type","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["instrument-search"],"status":"verified","source":"https://developers.deriv.com/llms/active-symbols.md","officialReference":"https://developers.deriv.com/schemas/active_symbols_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/active-symbols"},{"kind":"message","interface":"Deriv WebSocket API","name":"balance","group":"Account","summary":"Returns the balance of the account the connection belongs to. With subscribe set to 1 a new message follows each time the balance changes.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"balance","type":"integer","required":true},{"name":"subscribe","type":"integer","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"balance","fields":[{"name":"balance.balance","type":"number","required":true},{"name":"balance.currency","type":"string","required":true},{"name":"balance.id","type":"string","required":false},{"name":"balance.loginid","type":"string","required":true},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["accounts"],"status":"verified","source":"https://developers.deriv.com/llms/balance.md","officialReference":"https://developers.deriv.com/schemas/balance_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/balance"},{"kind":"message","interface":"Deriv WebSocket API","name":"buy","group":"Trading","summary":"Buys a contract: either the one a proposal priced, by the id that proposal returned, or one described in full in parameters. price is the most you accept to pay.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"buy","type":"string","required":true},{"name":"parameters","type":"object","required":false},{"name":"price","type":"number","required":true},{"name":"subscribe","type":"integer","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"buy","fields":[{"name":"buy.balance_after","type":"number","required":true},{"name":"buy.buy_price","type":"number","required":true},{"name":"buy.contract_id","type":"integer","required":true},{"name":"buy.longcode","type":"string","required":true},{"name":"buy.payout","type":"number","required":true},{"name":"buy.purchase_time","type":"integer","required":true},{"name":"buy.shortcode","type":"string","required":true},{"name":"buy.start_time","type":"integer","required":true},{"name":"buy.transaction_id","type":"integer","required":true},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["place-order"],"status":"verified","source":"https://developers.deriv.com/llms/buy.md","officialReference":"https://developers.deriv.com/schemas/buy_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/buy"},{"kind":"message","interface":"Deriv WebSocket API","name":"cancel","group":"Trading","summary":"Cancels an open contract by its contract id. The answer is a receipt in the same shape as the one sell returns.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"cancel","type":"integer","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"cancel","fields":[{"name":"cancel.balance_after","type":"number","required":false},{"name":"cancel.contract_id","type":"integer","required":false},{"name":"cancel.reference_id","type":"integer","required":false},{"name":"cancel.sold_for","type":"number","required":false},{"name":"cancel.transaction_id","type":"integer","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":[],"status":"verified","source":"https://developers.deriv.com/llms/cancel.md","officialReference":"https://developers.deriv.com/schemas/cancel_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/cancel"},{"kind":"message","interface":"Deriv WebSocket API","name":"contract_update","group":"Trading","summary":"Changes the stop loss or the take profit of an open contract, or removes one by sending null for it.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"contract_update","type":"integer","required":true},{"name":"contract_id","type":"integer","required":true},{"name":"limit_order","type":"object","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"contract_update","fields":[{"name":"contract_update.stop_loss","type":"object","required":false},{"name":"contract_update.take_profit","type":"object","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":[],"status":"verified","source":"https://developers.deriv.com/llms/contract-update.md","officialReference":"https://developers.deriv.com/schemas/contract_update_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/contract-update"},{"kind":"message","interface":"Deriv WebSocket API","name":"contracts_for","group":"Market data","summary":"Lists the contracts that can be bought on one symbol now, with the barrier, stake and duration limits of each. On a logged in connection only the contracts that account may trade are returned.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"contracts_for","type":"string","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"contracts_for","fields":[{"name":"contracts_for.available","type":"array of objects","required":true},{"name":"contracts_for.available[].contract_type","type":"string","required":true},{"name":"contracts_for.available[].contract_category","type":"string","required":true},{"name":"contracts_for.available[].min_contract_duration","type":"string","required":true},{"name":"contracts_for.available[].max_contract_duration","type":"string","required":true},{"name":"contracts_for.available[].min_stake","type":"number","required":false},{"name":"contracts_for.available[].max_stake","type":"number","required":false},{"name":"contracts_for.available[].underlying_symbol","type":"string","required":true},{"name":"contracts_for.hit_count","type":"number","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["instrument-search"],"status":"verified","source":"https://developers.deriv.com/llms/contracts-for.md","officialReference":"https://developers.deriv.com/schemas/contracts_for_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/contracts-for"},{"kind":"message","interface":"Deriv WebSocket API","name":"forget","group":"Connection and subscriptions","summary":"Stops one stream at once, by the id the stream's own messages carry in subscription.id. This is how a subscription is ended.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"forget","type":"string","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"forget","fields":[{"name":"forget","type":"integer","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":[],"status":"verified","source":"https://developers.deriv.com/llms/forget.md","officialReference":"https://developers.deriv.com/schemas/forget_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/forget"},{"kind":"message","interface":"Deriv WebSocket API","name":"forget_all","group":"Connection and subscriptions","summary":"Stops every stream of one type on the connection, or of several types at once, and returns the ids of the streams it stopped.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"forget_all","type":"string or array of strings","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"forget_all","fields":[{"name":"forget_all","type":"array","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":[],"status":"verified","source":"https://developers.deriv.com/llms/forget-all.md","officialReference":"https://developers.deriv.com/schemas/forget_all_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/forget-all"},{"kind":"message","interface":"Deriv WebSocket API","name":"ping","group":"Connection and subscriptions","summary":"Asks the server to answer pong. It tests that the connection is alive and is the usual way to keep an idle one open.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"ping","type":"integer","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"ping","fields":[{"name":"ping","type":"string","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["session"],"status":"verified","source":"https://developers.deriv.com/llms/ping.md","officialReference":"https://developers.deriv.com/schemas/ping_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/ping"},{"kind":"message","interface":"Deriv WebSocket API","name":"portfolio","group":"Account","summary":"Lists the contracts the account holds open now. It is a single answer, not a stream.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"portfolio","type":"integer","required":true},{"name":"contract_type","type":"array of strings","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"portfolio","fields":[{"name":"portfolio.contracts","type":"array of objects","required":true},{"name":"portfolio.contracts[].contract_id","type":"integer","required":false},{"name":"portfolio.contracts[].contract_type","type":"string","required":false},{"name":"portfolio.contracts[].underlying_symbol","type":"string","required":false},{"name":"portfolio.contracts[].currency","type":"string","required":false},{"name":"portfolio.contracts[].buy_price","type":"number","required":false},{"name":"portfolio.contracts[].payout","type":"number","required":false},{"name":"portfolio.contracts[].purchase_time","type":"integer","required":false},{"name":"portfolio.contracts[].date_start","type":"integer","required":false},{"name":"portfolio.contracts[].expiry_time","type":"integer","required":false},{"name":"portfolio.contracts[].longcode","type":"string","required":false},{"name":"portfolio.contracts[].shortcode","type":"string","required":false},{"name":"portfolio.contracts[].transaction_id","type":"integer","required":false},{"name":"portfolio.contracts[].auto_run_id","type":"string","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["positions"],"status":"verified","source":"https://developers.deriv.com/llms/portfolio.md","officialReference":"https://developers.deriv.com/schemas/portfolio_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/portfolio"},{"kind":"message","interface":"Deriv WebSocket API","name":"profit_table","group":"Account","summary":"Returns the account's closed contracts with what each was bought and sold for, filtered by date and contract type and paged with limit and offset.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"profit_table","type":"integer","required":true},{"name":"contract_type","type":"array of strings","required":false},{"name":"date_from","type":"string","required":false},{"name":"date_to","type":"string","required":false},{"name":"description","type":"integer","required":false},{"name":"limit","type":"number","required":false},{"name":"offset","type":"integer","required":false},{"name":"sort","type":"string","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"profit_table","fields":[{"name":"profit_table.count","type":"number","required":false},{"name":"profit_table.transactions","type":"array of objects","required":false},{"name":"profit_table.transactions[].contract_id","type":"integer","required":false},{"name":"profit_table.transactions[].contract_type","type":"string","required":false},{"name":"profit_table.transactions[].underlying_symbol","type":"string","required":false},{"name":"profit_table.transactions[].buy_price","type":"number","required":false},{"name":"profit_table.transactions[].sell_price","type":"number","required":false},{"name":"profit_table.transactions[].payout","type":"number","required":false},{"name":"profit_table.transactions[].purchase_time","type":"integer","required":false},{"name":"profit_table.transactions[].sell_time","type":"integer","required":false},{"name":"profit_table.transactions[].transaction_id","type":"integer","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["history"],"status":"verified","source":"https://developers.deriv.com/llms/profit-table.md","officialReference":"https://developers.deriv.com/schemas/profit_table_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/profit-table"},{"kind":"message","interface":"Deriv WebSocket API","name":"proposal","group":"Trading","summary":"Asks what one contract would cost now: the price, the payout and a description of it, with an id that buy accepts. With subscribe set to 1 the price is sent again as it changes.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"proposal","type":"integer","required":true},{"name":"amount","type":"number","required":false},{"name":"barrier","type":"string","required":false},{"name":"barrier2","type":"string","required":false},{"name":"basis","type":"string","required":false},{"name":"cancellation","type":"string","required":false},{"name":"contract_type","type":"string","required":true},{"name":"currency","type":"string","required":true},{"name":"date_expiry","type":"integer","required":false},{"name":"duration","type":"integer","required":false},{"name":"duration_unit","type":"string","required":false},{"name":"growth_rate","type":"number","required":false},{"name":"limit_order","type":"object","required":false},{"name":"multiplier","type":"number","required":false},{"name":"payout_per_point","type":"number","required":false},{"name":"selected_tick","type":"integer","required":false},{"name":"subscribe","type":"integer","required":false},{"name":"underlying_symbol","type":"string","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"proposal","fields":[{"name":"proposal.ask_price","type":"number","required":true},{"name":"proposal.date_start","type":"integer","required":true},{"name":"proposal.date_expiry","type":"integer","required":false},{"name":"proposal.id","type":"string","required":true},{"name":"proposal.longcode","type":"string","required":true},{"name":"proposal.payout","type":"number","required":true},{"name":"proposal.spot","type":"number","required":true},{"name":"proposal.spot_time","type":"integer","required":true},{"name":"proposal.commission","type":"number or null","required":false},{"name":"proposal.cancellation","type":"object","required":false},{"name":"proposal.contract_details","type":"object","required":false},{"name":"proposal.limit_order","type":"object","required":false},{"name":"proposal.validation_params","type":"object","required":false},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["order-preview"],"status":"verified","source":"https://developers.deriv.com/llms/proposal.md","officialReference":"https://developers.deriv.com/schemas/proposal_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/proposal"},{"kind":"message","interface":"Deriv WebSocket API","name":"proposal_open_contract","group":"Trading","summary":"Returns the current price and state of a contract the account holds. With subscribe set to 1 an update follows each time it changes, and with no contract_id the stream covers every open contract.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"proposal_open_contract","type":"integer","required":true},{"name":"contract_id","type":"integer","required":false},{"name":"subscribe","type":"integer","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"proposal_open_contract","fields":[{"name":"proposal_open_contract.contract_id","type":"integer","required":false},{"name":"proposal_open_contract.contract_type","type":"string","required":false},{"name":"proposal_open_contract.underlying_symbol","type":"string","required":false},{"name":"proposal_open_contract.currency","type":"string","required":false},{"name":"proposal_open_contract.buy_price","type":"string","required":false},{"name":"proposal_open_contract.bid_price","type":"string","required":false},{"name":"proposal_open_contract.payout","type":"string","required":false},{"name":"proposal_open_contract.profit","type":"string","required":false},{"name":"proposal_open_contract.profit_percentage","type":"number","required":false},{"name":"proposal_open_contract.current_spot","type":"string","required":false},{"name":"proposal_open_contract.current_spot_time","type":"integer","required":false},{"name":"proposal_open_contract.entry_spot","type":"string or null","required":false},{"name":"proposal_open_contract.exit_spot","type":"string or null","required":false},{"name":"proposal_open_contract.date_start","type":"integer","required":false},{"name":"proposal_open_contract.date_expiry","type":"integer","required":false},{"name":"proposal_open_contract.is_expired","type":"integer","required":false},{"name":"proposal_open_contract.is_sold","type":"integer","required":false},{"name":"proposal_open_contract.is_valid_to_sell","type":"integer","required":false},{"name":"proposal_open_contract.is_valid_to_cancel","type":"integer","required":false},{"name":"proposal_open_contract.status","type":"string or null","required":false},{"name":"proposal_open_contract.sell_price","type":"string or null","required":false},{"name":"proposal_open_contract.sell_time","type":"integer or null","required":false},{"name":"proposal_open_contract.limit_order","type":"object","required":false},{"name":"proposal_open_contract.transaction_ids","type":"object","required":false},{"name":"proposal_open_contract.validation_error","type":"string","required":false},{"name":"proposal_open_contract.id","type":"string","required":false},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":false},{"name":"req_id","type":"integer","required":false}]},"tasks":["positions"],"status":"verified","source":"https://developers.deriv.com/llms/proposal-open-contract.md","officialReference":"https://developers.deriv.com/schemas/proposal_open_contract_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/proposal-open-contract"},{"kind":"message","interface":"Deriv WebSocket API","name":"sell","group":"Trading","summary":"Sells an open contract back before it ends, by its contract id. price is the least you accept, and 0 means sell at the market.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"sell","type":"integer","required":true},{"name":"price","type":"number","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"sell","fields":[{"name":"sell.balance_after","type":"number","required":false},{"name":"sell.contract_id","type":"integer","required":false},{"name":"sell.reference_id","type":"integer","required":false},{"name":"sell.sold_for","type":"number","required":false},{"name":"sell.transaction_id","type":"integer","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["close-position"],"status":"verified","source":"https://developers.deriv.com/llms/sell.md","officialReference":"https://developers.deriv.com/schemas/sell_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/sell"},{"kind":"message","interface":"Deriv WebSocket API","name":"statement","group":"Account","summary":"Returns the account's transactions: buys, sells, deposits and withdrawals, filtered by date and type and paged with limit and offset.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"statement","type":"integer","required":true},{"name":"action_type","type":"string","required":false},{"name":"date_from","type":"integer","required":false},{"name":"date_to","type":"integer","required":false},{"name":"description","type":"integer","required":false},{"name":"limit","type":"number","required":false},{"name":"offset","type":"integer","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"statement","fields":[{"name":"statement.count","type":"number","required":false},{"name":"statement.transactions","type":"array of objects","required":false},{"name":"statement.transactions[].action_type","type":"string","required":false},{"name":"statement.transactions[].amount","type":"number","required":false},{"name":"statement.transactions[].balance_after","type":"number","required":false},{"name":"statement.transactions[].contract_id","type":"integer or null","required":false},{"name":"statement.transactions[].transaction_id","type":"integer","required":false},{"name":"statement.transactions[].transaction_time","type":"integer","required":false},{"name":"statement.transactions[].reference_id","type":"integer or null","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["history"],"status":"verified","source":"https://developers.deriv.com/llms/statement.md","officialReference":"https://developers.deriv.com/schemas/statement_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/statement"},{"kind":"message","interface":"Deriv WebSocket API","name":"ticks","group":"Market data","summary":"Asks for the latest price of one symbol or several. With subscribe set to 1 a new tick message follows each time the price changes, until the stream is stopped with forget.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"ticks","type":"string or array of strings","required":true},{"name":"subscribe","type":"integer","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"tick","fields":[{"name":"tick.ask","type":"number","required":false},{"name":"tick.bid","type":"number","required":false},{"name":"tick.epoch","type":"integer","required":false},{"name":"tick.id","type":"string","required":false},{"name":"tick.pip_size","type":"number","required":true},{"name":"tick.quote","type":"number","required":false},{"name":"tick.symbol","type":"string","required":false},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["streaming-subscribe"],"status":"verified","source":"https://developers.deriv.com/llms/ticks.md","officialReference":"https://developers.deriv.com/schemas/ticks_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/ticks"},{"kind":"message","interface":"Deriv WebSocket API","name":"ticks_history","group":"Market data","summary":"Returns past prices of one symbol, as single ticks or as candles of a chosen width. With subscribe set to 1 it then keeps sending each new tick or the candle now forming.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"ticks_history","type":"string","required":true},{"name":"adjust_start_time","type":"integer","required":false},{"name":"count","type":"integer","required":false},{"name":"end","type":"string","required":true},{"name":"granularity","type":"integer","required":false},{"name":"start","type":"integer","required":false},{"name":"style","type":"string","required":false},{"name":"subscribe","type":"integer","required":false},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":null,"fields":[{"name":"candles","type":"array of objects","required":false},{"name":"candles[].open","type":"number","required":false},{"name":"candles[].high","type":"number","required":false},{"name":"candles[].low","type":"number","required":false},{"name":"candles[].close","type":"number","required":false},{"name":"candles[].epoch","type":"integer","required":false},{"name":"history.prices","type":"array","required":false},{"name":"history.times","type":"array","required":false},{"name":"pip_size","type":"number","required":false},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["candles"],"status":"verified","source":"https://developers.deriv.com/llms/ticks-history.md","officialReference":"https://developers.deriv.com/schemas/ticks_history_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/ticks-history"},{"kind":"message","interface":"Deriv WebSocket API","name":"time","group":"Connection and subscriptions","summary":"Returns the server's clock, as Unix time in seconds. Useful for checking your own clock before working with epochs.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"time","type":"integer","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Public market data, no login","url":"wss://api.derivws.com/trading/v1/options/ws/public"},{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"time","fields":[{"name":"time","type":"integer","required":false},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":[],"status":"verified","source":"https://developers.deriv.com/llms/time.md","officialReference":"https://developers.deriv.com/schemas/time_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/time"},{"kind":"message","interface":"Deriv WebSocket API","name":"transaction","group":"Account","summary":"Opens a stream of the account's transactions: a message arrives for each buy, sell, deposit and withdrawal. subscribe must be 1, and without it no records are returned.","role":"request","payloadType":null,"replies":[],"fields":[{"name":"transaction","type":"integer","required":true},{"name":"subscribe","type":"integer","required":true},{"name":"passthrough","type":"object","required":false},{"name":"req_id","type":"integer","required":false}],"transport":{"kind":"websocket","adapter":null,"addresses":[{"label":"Demo account","url":"wss://api.derivws.com/trading/v1/options/ws/demo"},{"label":"Real account","url":"wss://api.derivws.com/trading/v1/options/ws/real"}]},"answer":{"name":"transaction","fields":[{"name":"transaction.action","type":"string","required":false},{"name":"transaction.amount","type":"number","required":false},{"name":"transaction.balance","type":"number","required":false},{"name":"transaction.contract_id","type":"integer or null","required":false},{"name":"transaction.currency","type":"string","required":false},{"name":"transaction.date_expiry","type":"integer","required":false},{"name":"transaction.id","type":"string","required":false},{"name":"transaction.longcode","type":"string","required":false},{"name":"transaction.purchase_time","type":"integer","required":false},{"name":"transaction.transaction_id","type":"integer","required":false},{"name":"transaction.transaction_time","type":"integer","required":false},{"name":"transaction.underlying_symbol","type":"string","required":false},{"name":"subscription.id","type":"string","required":true},{"name":"echo_req","type":"object","required":true},{"name":"msg_type","type":"string","required":true},{"name":"req_id","type":"integer","required":false}]},"tasks":["streaming-subscribe"],"status":"verified","source":"https://developers.deriv.com/llms/transaction.md","officialReference":"https://developers.deriv.com/schemas/transaction_request.schema.json","checked":"2026-10-12","page":"https://openbrokerapi.com/brokers/deriv/messages/transaction"}]},"limits":{"licence":"CC BY 4.0","register":"https://openbrokerapi.com/data/limits.json","structure":"structuredValue, structuredUnit and windowSeconds restate a limit as numbers where its own value and unit, or the opening of its text, state them outright: a count, optionally what is counted, and a window. They are read by a fixed pattern and are null wherever the pattern does not fit, so a null means not restated, not that there is no limit. windowSeconds is null for an allowance that is not a rate. structuredUnit is null where the wording does not name what is counted. A week is taken as 7 days. They add nothing to the record: value, unit, text and scope are unchanged and remain the record. A record whose status is conflicting has a second reading under conflict, which these fields do not restate.","records":[{"id":"deriv.headline","broker":"deriv","name":"Headline limit","value":null,"text":"80/min per logged in user (REST)","unit":null,"scope":"user, REST","source":"https://developers.deriv.com/docs/limits/","alsoSources":[],"checked":"2026-10-12","status":"conflicting","conflict":{"value":60,"unit":"REST requests per minute per token","source":"https://developers.deriv.com/llms/api-overview.md","checked":"2026-10-12","note":"Deriv's API overview in the text form it publishes for AI tools gives REST 60 requests a minute per token, where its Limits page gives 80 a minute per logged in user. The same overview also gives 100 WebSocket requests a second per connection, 100 active subscriptions per connection and 5 concurrent WebSocket connections per user, none of which the Limits page mentions. Deriv's own pages disagree; the conflict is labelled, not resolved.","paceAgainst":60},"note":"From the Limits page: REST is also capped at 300 a minute and 1,000 per ten minutes per IP address. WebSocket budgets, each shared by the calls in its row, a minute and an hour: proposal, proposal_open_contract, buy and sell 360 and 14,400; balance and statement 100 and 2,000; portfolio and profit table 30 and 1,500; all other calls 220 and 14,400. ping sits outside these budgets at 10 a second per connection.","structuredValue":80,"structuredUnit":null,"windowSeconds":60}]},"errors":{"licence":"All rights reserved","leftOut":"The meaning and the fix of each error. They are this site's own writing, which the open licence does not cover, so each record gives the address of the page that holds them.","index":"https://openbrokerapi.com/errors/deriv","register":"https://openbrokerapi.com/data/errors.json","records":[{"code":"ContractNotFound","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/contract-not-found"},{"code":"Deriv-App-ID header is required for PAT tokens","http":401,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/authentication.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/app-id-header-required"},{"code":"InputValidationFailed","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/input-validation-failed"},{"code":"InsufficientBalance","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/insufficient-balance"},{"code":"InternalError","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/internal-error"},{"code":"InvalidToken","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/invalid-token"},{"code":"NotFound","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/not-found"},{"code":"RateLimit","http":null,"category":"api-error","rateLimit":true,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/rate-limit"},{"code":"Unauthorized","http":null,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/unauthorized"},{"code":"ValidationError","http":400,"category":"api-error","rateLimit":null,"status":"verified","source":"https://developers.deriv.com/llms/errors.md","checked":"2026-10-09","page":"https://openbrokerapi.com/errors/deriv/validation-error"}]},"mcpServers":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/ai/mcp-directory","register":"https://openbrokerapi.com/data/mcp-servers.json","records":[{"id":"deriv","name":"Deriv hosted MCP (deriv-api-plugin)","vendor":"Deriv","owner":"deriv","official":true,"officialNote":"Published by the deriv-com org.","can":"Docs and schema only. The hosted server reads public Deriv API documentation and schemas to answer questions and validate payloads; it does not sign in, store keys, or ask you to set anything up. Market discovery, pricing, auth and account management, the trade lifecycle, chart integration and token handling are covered as knowledge, not as actions.","placesOrders":false,"posture":"docs","postureNote":"Docs only. It does not sign in.","custody":"none","custodyNote":"No credentials and no configuration are required. Endpoint https://mcp-api-v2.deriv.com/mcp","demo":null,"demoNote":null,"maintained":"MIT, 0 stars, 0 forks. Either very new or very low profile.","sources":[{"url":"https://github.com/deriv-com/deriv-api-plugin","title":"deriv-com/deriv-api-plugin","checked":"2026-09-24"}],"checked":"2026-09-24"}],"noneFound":[]},"partnerProgramme":{"licence":"CC BY 4.0","register":"https://openbrokerapi.com/data/programmes.json","page":"https://openbrokerapi.com/partners/deriv","record":{"id":"deriv","firm":"Deriv","programmeType":"affiliate","pagesOpened":["https://deriv.com/partners/"],"publishedFigure":"Earn 40% of Deriv's revenue from your clients' trading activity","figureAsWorded":"Earn 40% of Deriv's revenue from your clients' trading activity","figureIsCeiling":false,"figureNote":"That figure covers Deriv Trader, SmartTrader, Deriv Bot and custom API applications. CFDs pay up to $50 per $100,000 in turnover on selected instruments, partner referrals Earn 7.5% of their total commissions, and tier boosts are Silver plus 4 per cent, Gold plus 6 per cent and Platinum plus 8 per cent.","restrictionsForPublishers":"The programme is open to the public and explicitly accommodates API users. UK eligibility was not checked this cycle.","documentsNotOpened":null,"checked":"2026-10-05","verification":"page-opened"}},"changes":{"licence":"CC BY 4.0","page":"https://openbrokerapi.com/changes","register":"https://openbrokerapi.com/data/changes.json","checkedMeans":"checked is the day the source was last opened. It is null where the register does not record one: read that as not recorded.","records":[{"id":"deriv-2026-10-12-71","date":"2026-10-12","kind":"docs","text":"Deriv's documentation, read on 12 Oct 2026, gives one REST base, https://api.derivws.com, and describes sign in as an OAuth 2.0 app or a Personal Access Token sent as a bearer token, with a Deriv-App-ID header on REST requests made with a Personal Access Token. This site had recorded an app_id plus an API token, sourced to the limits page, which does not describe sign in today. The 2 minute idle timeout recorded before is not on the limits, best practices or ping pages opened today and has been taken out of the streaming claim as not verified; the cap of 10 pings a second per connection is still on the limits page.","source":"https://developers.deriv.com/docs/intro/authentication/","sourceTitle":"Deriv API: authentication","checked":"2026-10-12"},{"id":"deriv-2026-10-12-91","date":"2026-10-12","kind":"docs","text":"Two Deriv pages give different rate limits. The Limits page gives REST 80 requests a minute per logged in user and 300 a minute and 1,000 per ten minutes per IP, with shared WebSocket budgets a minute and an hour; the API overview in the text form Deriv publishes for AI tools gives REST 60 a minute per token, 100 WebSocket requests a second and 100 subscriptions per connection, and 5 connections per user. This site's Deriv limit now shows both readings as conflicting, where it showed the Limits page alone as verified.","source":"https://developers.deriv.com/llms/api-overview.md","sourceTitle":"Deriv API overview, text form","checked":"2026-10-12"}]}}