Options Trading (Legacy) REST
Read-only access to a migrated user's pre-upgrade options trading data — historical statement, legacy accounts, and platform upgrade status.
Temporary endpoints
Overview
After a user's account has been upgraded from the legacy options platform, these endpoints surface their pre-upgrade transaction statement and account mapping so that the historical record remains available. All three are read-only, require an OAuth2 token with the tradescope, and are scoped to the calling user. While a user's migration is still pending or has failed, the statement and accounts endpoints return HTTP 409.
REST API
GET. All requests require the Deriv-App-ID: YOUR_APP_ID header and an Authorization: Bearer YOUR_OAUTH_TOKEN token.OpenAPI Specification
View the complete OpenAPI 3.1.0 specification for detailed schema definitions and examples:
OpenAPI Spec →Typical Workflow
- Call
GET /trading/v1/options/legacy/migration-statusto confirm the user's migration has reachedcomplete. While the status ispendingorfailed, the other two endpoints return HTTP 409. - List the user's pre-upgrade loginids and accounts via
GET /trading/v1/options/legacy/accounts. - Pull the pre-upgrade transaction history per loginid via
GET /trading/v1/options/legacy/statement?loginid=..., paginating withlimitandoffset. - For all live trading and account operations, continue to use the standard Options Trading endpoints — these legacy routes serve historical data only.
Available Endpoints
/trading/v1/options/legacy/migration-status/trading/v1/options/legacy/accounts/trading/v1/options/legacy/statementAuthentication
All endpoints in this section require the Deriv-App-ID header and an Authorization: Bearer YOUR_AUTH_TOKEN header with the trade OAuth2 scope.
OAuth2 Scopes
1curl -X GET "https://api.derivws.com/trading/v1/options/legacy/migration-status" \
2 -H "Deriv-App-ID: YOUR_APP_ID" \
3 -H "Authorization: Bearer YOUR_OAUTH_TOKEN"Response Status Codes
Standard HTTP status codes are returned. A 409 indicates the caller's migration is pending or has failed — this is specific to the legacy endpoints.
migration-status, all known states (including pending, failed, not_applicable) are returned with 200.Error Response Format
All error responses follow a consistent structure with an errors array and metadata:
1{
2 "errors": [
3 {
4 "status": 409,
5 "code": "MigrationPending",
6 "message": "User migration is pending or has failed"
7 }
8 ],
9 "meta": {
10 "endpoint": "/trading/v1/options/legacy/statement",
11 "method": "GET",
12 "timing": 21
13 }
14}Any other questions? Get in touch