Deriv API GET /v1/health
A health check on the REST gateway. Deriv says it needs no authentication, no parameters and no body.
Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.
Read on Deriv's own documentation page on 12 Oct 2026: method, path, headers, parameters and response fields. The response fields were not read, so no mock is shown. Deriv's trading and market data calls run over WebSocket, not HTTP, so they have no method and path and are not recorded as endpoints here.
Parameters
No parameters recorded beyond authentication.
Request
Written from the method, path and parameters recorded on this page. No demo host is recorded as a plain address for this API, so the samples read the base address from an environment variable. Not executed against a live or demo account. Credentials are read from environment variables on your own machine and are never entered on this site. The request builder writes these same snippets, from the same record.
Python
# Set DERIV_BASE_URL as an environment variable first. Never paste real values into code.
# No demo host is recorded as a plain address for this API, so the base address is read from DERIV_BASE_URL.
import os
import requests
BASE_URL = os.environ["DERIV_BASE_URL"]
headers = {}
resp = requests.get(BASE_URL + "/v1/health", headers=headers, timeout=10)
resp.raise_for_status()
print(resp.json())JavaScript
// Set DERIV_BASE_URL as an environment variable first. Never paste real values into code.
// No demo host is recorded as a plain address for this API, so the base address is read from DERIV_BASE_URL.
// Run as a module, for example a .mjs file, on a Node version that has fetch built in.
const BASE_URL = process.env.DERIV_BASE_URL;
const res = await fetch(BASE_URL + "/v1/health", {
method: "GET",
headers: {
},
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());curl
# Set DERIV_BASE_URL as an environment variable first. Never paste real values into code. # No demo host is recorded as a plain address for this API, so the base address is read from DERIV_BASE_URL. curl -X GET "$DERIV_BASE_URL/v1/health"
Response
No mock response is recorded for this endpoint. Where the record says why, or names the fields of the reply, it does so in the note at the top of this page. That is a statement about this record, not about what the API returns: read the shape of the reply in the official reference.
Limits that apply at Deriv
| Limit | Value | Scope | Source |
|---|---|---|---|
| Headline limit | 80/min per logged in user (REST)Sources conflict developers.deriv.com states 60, checked . 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. Pace against 60. | user, REST | developers.deriv.comchecked |
Deriv API errors you may meet
- Deriv-App-ID header is required for PAT tokensHTTP 401. A REST request authenticated with a personal access token was sent without the Deriv-App-ID header.
- ContractNotFoundThe contract does not exist.
- InputValidationFailedThe request parameters are not valid.
- InsufficientBalanceThere are not enough funds for the request.
- InternalErrorA server error on Deriv's side.
- InvalidTokenThe token is not valid or has expired.
All Deriv API error codes, including 4 more not listed here.