Symbol
Deriv App IDnot configuredNot configuredNo known-good App ID recorded yet.
Register an app at api.deriv.com/dashboard and paste its App ID in Diagnostics.

Connection Diagnostics

Live WebSocket health, retry attempts, and API errors for every active Deriv subscription.

Deriv authentication flow · Final report

One-click copy or download of the full report describing the required Deriv Developer authentication flow, where the App ID comes from, and how public / OAuth / API-token connections are established.

Deriv Authentication Flow — Final Report
Generated: 2026-09-07T13:26:56.290Z
Current configured app_id: (none)
WebSocket endpoint: wss://ws.derivws.com/websockets/v3?app_id=<APP_ID>

SUMMARY
-------
The numeric App ID is still required by Deriv. Every WebSocket connection to
wss://ws.derivws.com/websockets/v3 — public (active_symbols, ticks) or
authenticated (OAuth / API token) — must carry ?app_id=<N>. This is not a
legacy requirement; it is how Deriv's current Developer platform identifies
the calling application. There is no OAuth-only or "keyless" mode.

WHERE THE APP ID COMES FROM
---------------------------
Register an application once at https://api.deriv.com/dashboard and copy the
numeric App ID. Ship it with the build via VITE_DERIV_APP_ID or let a user
override it from the Diagnostics page (stored in localStorage). End users
never need to see or paste it in normal use.

REQUIRED AUTH FLOW (CURRENT DERIV API)
--------------------------------------
1. Register app at api.deriv.com/dashboard → obtain numeric app_id.
   Set VITE_DERIV_APP_ID=<N> at build time.

2. Public market data (ticks, active_symbols, candles):
   - Open wss://ws.derivws.com/websockets/v3?app_id=<N>
   - Send requests directly. No user authentication needed.

3. User accounts — OAuth (recommended):
   - Redirect to
     https://oauth.deriv.com/oauth2/authorize?app_id=<N>&l=en&brand=deriv&redirect_uri=<yourReturnUrl>
   - Deriv redirects back with acct1/token1/cur1 … acctN/tokenN/curN query
     parameters.
   - Open a WebSocket with the same app_id and send { authorize: <token1> }.

4. User accounts — API Token (Personal Access Token):
   - User creates a token in Deriv account settings (Security → API token).
   - App sends { authorize: <token> } on the same app_id socket.

5. All subsequent authenticated calls (balance, buy, portfolio, transaction
   stream, proposal_open_contract) reuse the same authorized socket.

FAILURE MODES
-------------
- 0 symbols returned: the App ID is not authorised for this region.
  Register your own App ID and override it via Diagnostics.
- WebSocket closes immediately: usually an invalid or missing app_id.
- Deriv API error { code, message }: shown verbatim in the Diagnostics log
  and in the App ID Test panel's raw response.

WebSocket URLs & payloads

One-click copy of the exact endpoints and JSON payloads used by the Deriv authentication flow. App ID values are filled in from the current config.

  • Public WebSocket URL
    Unauthenticated market data (ticks, active_symbols, candles).
    wss://ws.derivws.com/websockets/v3?app_id=<APP_ID>
  • OAuth authorize URL
    Redirect the user here; Deriv returns acctN/tokenN/curN params.
    https://oauth.deriv.com/oauth2/authorize?app_id=<APP_ID>&l=en&brand=deriv&redirect_uri=<YOUR_REDIRECT_URI>
  • active_symbols request
    First public call after the socket opens.
    {"active_symbols":"brief","product_type":"basic","req_id":1}
  • authorize request
    Send with an OAuth token1 or a Personal Access Token.
    {"authorize":"<TOKEN>","req_id":2}
  • ticks subscribe
    Subscribe to a live tick stream for a symbol (e.g. R_100).
    {"ticks":"R_100","subscribe":1,"req_id":3}
  • balance subscribe
    Stream authorized account balance updates.
    {"balance":1,"subscribe":1,"req_id":4}
  • forget_all ticks
    Unsubscribe from every active tick stream.
    {"forget_all":"ticks","req_id":5}
Advanced · Deriv App IDcurrent: 0

Deriv's WebSocket transport requires an app_id. The bundled default works for most API-token connections. Override only if you registered your own app at api.deriv.com/dashboard.

Active App ID
0
Active symbols status
idle
Symbols received
0
Fetched at
No Deriv App ID available. Set VITE_DERIV_APP_ID in the build environment, or paste a registered App ID from api.deriv.com/dashboard in Diagnostics. Set VITE_DERIV_APP_ID in your environment, or paste your registered Deriv App ID above.
Raw active_symbols request / response
null
null
connecting
App ID
0
Subscription
idle
Active symbols
0
Ticks buffered
0
Ticks / sec
0.00
Retries
0
Last connected
Next retry
Last request / response
null
null

Event log · newest first

0 events
No connection events yet.

Retries use exponential backoff (2s → 15s). Manual reconnect resets the counter and forces a new WebSocket immediately.