Skip to main content

Retail eShop Onboarding Guide

Overview

The scheme below briefly describes the overall process of using our service to deliver market data to end users via your application.

dxFeed_Retail_overview_03.png

Our system is represented as two independent services:

  1. Subscription platform (dxFeed Retail) responsible for subscription management, entitlement control, and reporting

  2. dxFeed endpoint providing data feeds

The cooperation process three steps:

  1. Integration: we prepare a trial connection and provide you with technical details

  2. Testing: you check the whole scenario in a set-up demo environment

  3. Production release on get.dxfeed.com

Follow the instructions below to proceed with the service implementation process.

Note

Compliance and User Responsibilities

Please be aware that dxFeed Retail is dedicated to maintaining strict compliance with the requirements set by market exchanges and regulatory authorities. As part of this commitment, we reserve the right to take necessary measures in response to violations of agreements or requests from market exchanges. 

Please take note that, in certain situations, we may be required to respond to requests from market exchanges for information or actions related to user activities. Our response to such instances includes implementing the following measures:

  1. Blocking a violating user that results inBlocking a violating user that results in

    1. terminating active subscriptions

    2. disallowing new purchases

    3. preventing making changes to personal data

    4. adding a record to the blacklist to prevent a user from creating a new account with the same personal data on the platform

  2. Validating users against the blacklist records:

    1. new users are validated when they make an attempt to complete a purchase

    2. existing users are validated when they make changes to their personal data

  3. Verifying information provided by non-professional users to ensure their honest self-identification.

Integration and Testing

Integration

During the integration stage, we prepare a trial connection on the devzone.get.dxfeed.com environment and provide you with technical details.

Trial data endpoints

We open a trial data server for you depending on the type of products you have ordered, like real-time data, historical candle data, etc.

Product

Data Server

Real-time data feed trial server

rt14.ec2.dxfeed.com:7502

Historical candle data/TimeAndSale server

https://rosso.dxfeed.com/candledata

Instrument Profile Format (IPF) trial server

https://rosso.dxfeed.com/ipf

APIs

Trial authorization and token generation

The application should request a token from the get.dxFeed portal every time a user logs in to the system.

The token is obtained by sending the following HTTP request:

https://devzone.get.dxfeed.com/api/v1/token

For safety reasons, get.dxFeed generates a unique alphanumeric string, or API key. This key is used for authorization and sent in the authorization header.

You can find your trial API key and request parameters in the email with this instruction.

Headers
Authorization: Bearer <ApiKey>
Content-Type: application/json
Request Body

Request parameters:

Parameter

Type

Required

Description

login

String

Yes

User’s login to get access to market data

password

String

Yes

User’s password to get access to market data

withDetails

Boolean

No

Defines whether information on users’ subscriptions is to be returned in the response (=true) or not (=false). Default value is false

Request with no details

{
    "login": "<login>",
    "password": "<password>",
    "withDetails": false
}

Response in case of success:

{
    “status”: “OK”,
    “reason”: null,
    “token”: “<JWT token>”
}

Response in case of failure:

{
    “status”: “ERROR”,
    “reason”: “<error_reason>”,
    “token”: null
}

Request with details

{
    "login": "<login>",
    "password": "<password>",
    "withDetails": true
}

Response in case of success:

{
    “status”: “OK”,
    “reason”: null,
    “token”: “<JWT token>”
    "details": [
        "<market_data_feed_1>",
        ...,
        "<market_data_feed_N>"
    ]
}

Response in case of failure:

{
    “status”: “ERROR”,
    “reason”: “<error_reason>”,
    “token”: null,
    "details": []
}

Error codes

Status

Reason

HTTP status

Description

OK

null

200

Token has been successfully generated

ERROR

AUTHENTICATION_FAILED

401

Authentication has failed due to wrong API key

ERROR

INVALID_CREDENTIALS

200

These credentials have not been granted to any account for this application

ERROR

NO_ACTIVE_SUBSCRIPTIONS

200

No active subscriptions belong to specified credentials

Data request at dxFeed

After you receive a token, it is possible to establish a connection with the dxFeed endpoint where a user requests data. 

Choose an API function based on your needs: Java, C, C#, JavaScript, WebSocket, or REST.

Java

Add auther-api.jar to the application’s classpath:

String address = <IP address>:<host port>[login=entitle:" + token + "];

Or set a global variable and use a shorter connection string:

AutherLoginHandlerFactory.setAppToken(token);
address = "<IP address>:<host port>[login=entitle]";

C

dxf_create_connection_auth_bearer() function.

C#

NativeConnection (string address, string token, Action<DxConnection> disconnectListener) constructor of com.dxfeed.native.NativeConnection class.

JavaScript (dxfeed.cometd.js library) API request

dx.feed.setAuthToken(<token>);

WebSocket (on ws-handshake) API request

{ ext: { "com.devexperts.auth.AuthToken": <token> }}

REST API request

Specify token in the HTTP-header:

Authorization: Bearer <token>

The full collection of APIs is available on the dxFeed Java API page.

Testing

This is the stage where we check and test the whole E2E scenario. Follow the instructions below:

  1. Provide us with access to your application to check the functionality and verify compliance with exchange requirements

  2. Provide us with a license so that our support team can address users’ requests

  3. Send us your logo in .svg and .png formats: we need it to place your application on the get.dxfeed.com website

Finally, we send you a link to a preset demo environment.

Note

Please send us the required information on access and license with your logo in .svg and .png formats.

Please send us the official consent upon the use of your logo and trademark by Devexperts Inc. We will use them for marketing, PR, and advertising purposes, or place them on our sites (get.dxfeed.com, dxfeed.com, etc.). Please fill in the gaps with the date, company name, and representative name and title in the statement below and send it to us. If you have any technical/visual rules about how to place your logo/trademark, feel free to share them with us.

As of <the date of this email> I, <name>, being the <title> of <company name>, hereby give consent for the use of <company name> logo and trademark by Devexperts Inc. for its marketing, PR, and advertising purposes, including placing on the company’s sites (get.dxfeed.com, dxfeed.com, etc.).

Compliance with regulatory requirements

Note

Algo-trading, real-time data streaming, and real-time data export are strongly prohibited.

If your platform provides such functionality, it has to be deactivated when establishing a connection to dxFeed.

Branding

Note that due to existing regulatory requirements, you need to add the dxFeed logo to your application/platform to the following places:

  • The login window

  • The About/Help section

  • The bottom of every window that shows dxFeed market data

The logo must be shown when the connection is established. Please see possible ways of placing the logo in the examples below.

Check the dxFeed logo.

dxFeed logo in the login window:

image__2_.png

dxFeed logo in the About section:

image__1_.png

dxFeed logo at the bottom of the page with dxFeed market data:

AppEx1.png

Production

Production is the last stage of the process.

After you have tested our functionality and had all technical issues resolved, we grant you access to the production environment and provide you with:

  • An API key for the production environment

  • URLs for token generation on the production environment

  • Real market data endpoints