Retail Services Platform API
Overview
This page provides detailed information on the various API methods available for the Retail Services platform. Each section provides comprehensive descriptions, usage guidelines, and examples to help our partners effectively utilize the designed API.
The API methods are divided into the following sections:
Account-related methods: provide key functionalities on account management, such as account creation, retrieving account details by ID or email, resetting a password, and updating an email address.
Subscription-related methods: cover the processes involved in subscription management, including subscription activation, confirmation, and cancellation, and retrieving information on subscriptions.
Access token-related methods: provide means for secure user authentication through token generation based on credentials.
Profile-related methods: make it possible for an end user to access their personal profile page.
Tracking-related methods: provide means on monitoring trial subscriptions for tracking and reporting purposes.
API versioning
Retail Services Platform supports two API versions: API v1 and API v2. These versions are functionally identical, except for one method, Activate subscription (see the Activate subscription v2 description). It is important to note that these APIs are designed to be backward compatible, and while they remain compatible, we do not increment the version number. However, we retain the right to enhance existing methods by introducing new non-mandatory fields in request bodies and responses in order to improve functionality and serve new needs.
Partner responsibility disclaimer: To accommodate these enhancements, we encourage our partners to be proactive in implementing endpoints on their side. This will ensure a smoother transition when new non-mandatory fields are introduced, preventing any unforeseen disruptions in the workflow.
Account-related methods
Create account
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/accounts
Request body with all parameters
{ "email": "bob.smith@example.com", "metadata": { "firstName": "Bob", "lastName": "Smith", "country": null, "state": null, "address": null, "city": null, "zip": null, "phone": null, "companyName": null, "jobTitle": null }, "allowedStatuses": "ALL" }
Empty request body
{ "metadata": {} }
Parameter | Required | Type | Description | Example |
---|---|---|---|---|
No | String | End user's email address. Please note the email address is saved in lower case. The email parameter is optional. If sent in the request, it will be associated with the created account and displayed in the onboarding wizard and on the personal profile page. If not provided, the user will have to enter and confirm their email when filling their personal data form either in the onboarding wizard or the personal profile page | bob.smith@example.com | |
metadata | Yes | Array | An array of user's personal data that can be further specified in the onboarding wizard. The given parameters are optional. If sent in the request, their values will be automatically substituted into the onboarding wizard form and on the personal profile page. If not, a user will have to enter required values or choose them from the drop-down list | |
firstName | No | String | User's first name | Bob |
lastName | No | String | User's last name | Smith |
country | No | String | The country where the user is registered. It is advisable that the entered value matches the value from the List of countries | United States of America |
state | No | String | The state/province where the user from the USA/Canada is registered. It is advisable that the entered value matches the value from the List of states and provinces | New York |
address | No | String | User's address without the country, state, city, and zip/postal code | 620 Eighth Avenue, 1 |
city | No | String | The city where the user is registered | New York City |
zip | No | String | The zip or postal code where the user is registered | 10018 |
phone | No | String | The user's phone number | +1-212-424-72-71 |
companyName | No | String | Full legal name of the company the user works for or their own (no abbreviations are permitted). Note that the | New York Times |
jobTitle | No | String | The user's job title | Journalist |
allowedStatuses | No | String | Parameter that defines subscriber status restrictions for a user's account. It may have three values:
If a user has to confirm their status via a questionnaire first, they will see the error after answering the questions. If no parameter is sent in the request, there are no restrictions: users can specify themselves as Professional or Non-professional. | ALL |
Response
Successful response
{ "accountId": <string> }
where <accountId>
is a unique account identifier, that should be used in the next request.
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
422 Unprocessable Entity | ACCOUNT_ALREADY_EXISTS | Account | |
400 Bad Request | BAD_REQUEST | Valid email should be specified | Check the provided email address |
Note
Our response to violations of agreements or requests from market exchanges includes validating users against the blacklist records:
New users are validated when they make an attempt to complete a purchase.
Existing users are validated when they make changes to their personal date.
As part of the blacklist validation, a user may be blocked by the data from the request:
All pending orders will be disabled. All active subscriptions will be terminated.
New credentials will not be generated.
User will not be able to modify personal data on their personal profile page.
Get account by ID
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
Type
GET
URL
https://<server>/api/v1/accounts/<accountId>
Response
Successful response
{ "id": <string>, "email": <string>, "status": <string>, "subscriberStatus": <string>, "dataAccessStatus": <string> }
Parameter | Description |
---|---|
id | Alphanumerical account identifier |
User's email | |
status | Current state of a user account which can take two possible values:
|
subsciberStatus | User's professional position that affects a list of feeds available for subscription and feed prices:
|
dataAccessStatus | Current state of a user account's access to data via active subscriptions:
|
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Try to find account by email (see Get account by email) or сreate a new user account (see Create new account) |
Get account by email
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
where <API_KEY> is a dedicated API Key for the application.
Type
GET
URL
https://<server>/api/v1/accounts/by-email/<email>
where <email>
is the email address of the end user.
Response
Successful response
If the account is found in the system, its ID is returned in the response.
{ "id": <string>, "email": <string>, "status": <string>, "subscriberStatus": <string>, "dataAccessStatus": <string> }
Parameter | Description |
---|---|
id | Alphanumerical account identifier |
User's email | |
status | Current state of a user account which can take two possible values:
|
subsciberStatus | User's professional position that affects a list of feeds available for subscription and feed prices:
|
dataAccessStatus | Current state of a user account's access to data via active subscriptions:
|
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Create a new user account (see Create new account) |
400 Bad Request | BAD_REQUEST | Valid email should be specified | Check the provided email address |
Reset account password
Request
Header
Authorization: Bearer <API_KEY>
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/accounts/<accountId>/reset-password
where <accountID>
is the account identifier of the end user in get.dxfeed.
Responses
Successful response
If the password is regenerated successfully (or not generated because the user has neither login nor password yet), you will receive 200 OK HTTP status in the response.
The new password will be sent by email or through the callback invoker depending on the application configuration settings.
Note
Please note the password will be reset only if it has already been generated for the user, i.e. credentials generation is enabled for the application and at least one subscription was activated for the user.
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Try to find account by email (see Get account by email) or сreate a new user account (see Create new account) |
422 Unprocessable Entity | CREDENTIALS_GENERATION_DISABLED | Credentials generation disabled | Check whether the credentials generation is enabled for your application |
422 Unprocessable Entity | ACCOUNT_IS_BLOCKED | Account | Account has been restricted due to a violation of our service or exchange policies |
Change email
Request
Header
Authorization: Bearer <API_KEY>
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/accounts/<accountId>/change-email
where <accountID>
is the account identifier of the end user in get.dxfeed.
Request body
{ "email": "new.bob.smith@example.com" }
Parameter | Required? | Type | Description | Example |
---|---|---|---|---|
Yes | String | New, previously not specified end user's email address. Please note the email address is saved in lower case | new.bob.smith@example.com |
Responses
Successful response
If the email is changed successfully, you will receive 200 OK HTTP status in the response.
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
400 Bad Request | BAD_REQUEST | Email should be specified | Check that you specified an email address |
Valid email should be specified | Check that you specified an email address in the following format: local-part@domain | ||
422 Unprocessable Entity | CREDENTIALS_GENERATION_DISABLED | Credentials generation disabled | Try to find the account by ID (see the Get account by ID section) to check which email associates with it and make sure that a new email doesn't match the one specified earlier |
Subscription-related methods
Activate subscription v1
Note
If it is defined in the application settings for at least one subscription in an order that it should be activated by an additional request both on the tenant and feed setting levels, the subscription activation consists of two steps: subscription activation on the user side and order confirmation on the application side. To confirm a subscription, it is necessary to get a confirmation id by sending the request for activation.
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/accounts/<accountId>/subscriptions
where <accountID>
is the account identifier of the end user in get.dxfeed.
Request body
{ "subscriptions": [ "<feedName1>", ... "<feedNameN>" ], "successRedirectUrl": "<redirectURL>"}
Parameter | Required? | Type | Description | Example |
---|---|---|---|---|
subscriptions | Yes | Array of strings | A list of subscriptions that should be activated | CMEGROUP |
successRedirectUrl | No | String | A custom URL to redirect the end user after submitting the personal data form. The URL specified in the application settings is used by default | https://example.com |
Response
Successful response
If an end user has not provided personal data and signed assignments before, and the subscription confirmation is required for a feed(s) according to the application settings, the response will be the following:
{ "signupPageByTheme": { "LIGHT": "<link_light_theme>", "DARK": "<link_dark_theme>" }, "confirmationId": "<confirmationId>" }
Note
The response will not have a null
confirmation identifier if the confirmation rule is enabled for at least one of the subscriptions used in the request.
One of these two links should be sent to an end user who will be required to provide personal information and sign agreements. The confirmation id is to be further used in the Confirm subscription request.
Note
Please note that the confirmation id and links are interrelated and if you send a second request, both id and links are updated. If you are intended to use an updated id for sending a request for confirmation, provide a user with an updated link.
Once the user submits the form and the order is confirmed if necessary (in any order):
The subscription(s) is(are) activated with an end date in accordance with rules defined for the application in configuration settings.
An email with access credentials is automatically sent to the user's email address if it is defined in configuration settings.
Note
If it is not required to confirm an order according to the feed(s) settings, the response will be the following:
{ "signupPageByTheme": { "LIGHT": "<link_light_theme>", "DARK": "<link_dark_theme>" }, "confirmationId": null }
Note
If a user has already provided all the required personal data and signed the required agreements, but the subscription(s) has(ve) not been confirmed, the following response will be returned:
{ "signupPageByTheme": null, "confirmationId": "<confirmationId>" }
Note
If a user has already provided all the required personal data and signed the required agreements, and the subscription has been confirmed, the following response will be returned and the subscription(s) will be automatically activated:
{ "signupPageByTheme": null, "confirmationId": null }
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Check the account ID by email (see Get account by email) or create a new user account (see Create account) |
409 Conflict | SUBSCRIPTION_ALREADY_ACTIVE | Subscription | Check the status of specified subscriptions for the account using Get subscriptions |
SINGLE_USE_FEED_ACTIVATED_BEFORE | Single-use subscription has been already activated | Check the list of user's expired subscriptions: single-use subscriptions can be activated for a user once in a lifetime | |
400 Bad Request | BAD_REQUEST | Requested feeds | Ensure that the subscription(s) are spelled correctly in the request |
Subscriptions should be specified | Check that you have specified subscription(s) in the request body | ||
Requested feeds can't be activated: Two or more feeds have different subscriber status restrictions | Contact the support team to verify your tenant settings | ||
Requested feeds can't be activated: There is a conflict between account subscriber status and tenant subscriber status restrictions | Contact the support team to verify your tenant settings and set professional status restrictions | ||
Requested feeds can't be activated: There is a conflict between account subscriber status and subscriber status restrictions of one or more feeds | Contact the support team to verify your tenant settings | ||
Requested feeds can't be activated: Account subscriber status doesn't align with the tenant subscriber status restrictions | Contact the support team to verify your tenant settings | ||
Requested feeds can't be activated: Account subscriber status doesn't align with subscriber status restrictions of one or more feeds | Contact the support team to verify your tenant settings or professional status restrictions of the feeds from the order | ||
422 Unprocessable Entity | ACCOUNT_IS_BLOCKED | Account | Account has been restricted due to a violation of our service or exchange policies |
Activate subscription v2
Activate subscription v2 allows users to specify endDate for subscriptions.
Request
Note
If it is defined in the application settings for at least one subscription in an order that it should be activated by an additional request both on the tenant and feed setting levels, the subscription activation consists of two steps: subscription activation from the user side and subscription confirmation from the application side. To confirm a subscription, it is necessary to get a confirmation id by sending the request for activation.
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v2/accounts/<accountId>/subscriptions
where <accountID>
is the account identifier of the end user in get.dxfeed.
Request body
{ "subscriptions": [ { "feedName": "<FEED_NAME>", "endDate": "<END_DATE>" } ], "successRedirectUrl": "<redirectURL>" }
Parameter | Required? | Type | Description | Example |
---|---|---|---|---|
subscriptions | Yes | Array | A list of subscriptions that should be activated | |
feedName | Yes | String | The subscription name | CME |
endDate | No | Date time string | The subscription expiration date and time in the ISO-8601 format. If it is not specified, the subscription end date depends on the default deactivation date specified for the partner's application:
End date value should exceed the activation date | 2021-12-22T23:59:59Z 2021-12-22T04:01:28+00:00 |
successRedirectUrl | No | String | A custom URL to redirect the end user after submitting the personal data form. The URL specified in the application settings is used by default | https://example.com |
Response
Successful response
If an end user has not provided personal data and signed assignments before, and the subscription confirmation is required for a feed(s) according to the application settings, the response will be the following:
{ "signupPageByTheme": { "LIGHT": "<link_light_theme>", "DARK": "<link_dark_theme>" }, "confirmationId": "<confirmationId>" }
Note
The response will not have a null
confirmation identifier if the confirmation rule is enabled for at least one of the subscriptions used in the request.
One of these two links should be sent to an end user who will be required to provide personal information and sign agreements.
The confirmation id is to be further used in the Confirm subscription request.
Note
Please note that the confirmation id and links are interrelated and if you send a second request, both id and links are updated. If you are intended to use an updated id for sending a request for confirmation, provide a user with an updated link.
Once the user submits the form and the order is confirmed if necessary (in any order):
The subscription(s) is(are) activated immediately.
An email with access credentials is automatically sent to the user's email address if it is defined in the configuration settings.
Note
If it is not required to confirm any subscription according to the application settings, the response will be the following:
{ "signupPageByTheme": { "LIGHT": "<link_light_theme>", "DARK": "<link_dark_theme>" }, "confirmationId": null }
Note
If a user has already provided all the required personal data and signed the required agreements, but the subscription(s) has(ve) not been confirmed, the following response will be returned:
{ "signupPageByTheme": null, "confirmationId": "<confirmationId>" }
Note
If a user has already provided all the required personal data and signed the required agreements earlier, the following response will be returned and the subscription(s) will be automatically activated.
{ "signupPageByTheme": null, "confirmationId": null }
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Check the account ID by email (see Get account by email) or create a new user account (see Create account) |
409 Conflict | SUBSCRIPTION_ALREADY_ACTIVE | Subscription | Сheck the status of specified subscriptions for the account using Get subscriptions |
SINGLE_USE_FEED_ACTIVATED_BEFORE | Single-use subscription has been already activated | Сheck the list of user's expired subscriptions: single-use subscriptions can be activated for a user once in a lifetime | |
400 Bad Request | BAD_REQUEST | Subscriptions should be specified | Сheck that you have included |
feedName should be specified | Check that you haven't left a | ||
End date should be set in the future | Set the | ||
Invalid value for endDate provided | Set the | ||
Requested feeds | Ensure that the subscription(s) are spelled correctly in the request | ||
422 Unprocessable Entity | ACCOUNT_IS_BLOCKED | Account | Account has been restricted due to a violation of our service or exchange policies |
Confirm subscription
Note
Confirm subscription's URL is v1 or v2 in accordance with the Activate subscription version.
If the application settings define that at least one subscription in an order should be activated by an additional request both on the app and feed setting levels, the order cannot be closed before the following request confirms it.
Request
Headers
Authorization: Bearer <API_KEY>
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/accounts/<accountId>/subscriptions/confirm
where <accountID>
is the account identifier of the end user in get.dxfeed.
Request body
{ "confirmationId": "<confirmationId>" }
Responses
Successful response
If the subscription is confirmed successfully, you will receive 200 OK HTTP status in the response.
Failure response
{ "dateTime": "<current_timestamp>", "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table:
HTTP Status | Reason | Message | Follow-up actions |
400 Bad Request | BAD_REQUEST | Confirmation ID must be specified. | Please provide the confirmation id in the request body. |
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key. | Please check the provided API key. |
401 Unauthorized | AUTHENTICATION FAILED | No Authorization header. | Please provide the API key. |
404 Not Found | ORDER_NOT_FOUND | Order not found or expired. | Please check the correctness of the provided confirmation id. |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Please check the correctness of the provided account id. |
422 Unprocessable Entity | ACCOUNT_IS_BLOCKED | Account | Account has been restricted due to a violation of our service or exchange policies |
Cancel subscription
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/accounts/<accountId>/subscriptions/cancel
Request body
Specify subscription names to cancel for the user:
{ "subscriptions": [ "<feedName1>", ... "<feedNameN>" ] }
Responses
Successful response
If the subscription is canceled successfully, you will receive 200 OK HTTP status in the response.
Note
Please note the subscriptions will be canceled in accordance with the rule defined for the application in the configuration file.
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Check the account ID by email (see Get account by email) or create a new user account (see Create account) |
404 Not Found | SUBSCRIPTION_NOT_FOUND | Subscription | Check the specified subscriptions in the request and check which subscriptions are active for the account using Get subscriptions |
409 Conflict | SUBSCRIPTION_IS_EXPIRED | Subscription | Check the specified subscriptions in the request and they are active for the account using Get subscriptions |
Extend subscription
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
Type
POST
URL
https://<server>/api/v1/accounts/<accountId>/subscriptions/extend
where <accountID>
is the account identifier.
Request body
Specify names of active subscriptions to be extended:
{ "subscriptions": [ "<feedName1>", ... "<feedNameN>" ] }
Responses
Successful response
If the subscription is extended successfully, you will receive 200 OK HTTP status in the response.
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key. | Check the provided API key |
409 Conflict | SUBSCRIPTION_ALREADY_EXTENDED | Subscription | Check the subscription deactivation date. Note that a subscription can be extended by one period during the current period. The period of extension depends on the default deactivation date set for the application or a feed |
422 Unprocessable Entity | SUBSCRIPTION_SETTINGS_ARE_INVALID | Subscription | Ensure that the default deactivation date set for the application or a feed is different from "Infinite". Note that subscription to a single-use feed cannot be extended |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Check the provided account ID using Get account by email |
Get subscriptions
This method allows you to retrieve all the subscriptions associated with a certain account.
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
Type
GET
URL
https://<server>/api/v1/accounts/<accountId>/subscriptions
where <accountID>
is the account identifier.
Responses
Successful response
If there are subscriptions associated with the account, they will be returned in the response.
{ "subscriptions": [ { "name": <string>, "status": "EXPIRED" | "ACTIVE", "expiresAt": <date_time_string> | null } ] }
If there is neither an active nor inactive subscription for the account, the empty list is returned.
{ "subscriptions": [] }
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Check the provided account ID using Get account by email |
Access token-related methods
Request token by account ID
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
Type
POST
URL
https://<server>/api/v1/token
Request body
Example of not requesting details
{ "accountId": <string> }
Example of requesting details
{ "accountId": <string>, "withDetails": true | false }
Parameter | Type | Required? | Description |
---|---|---|---|
accountId | String | Yes | A user's account identifier |
withDetails | Boolean | No | Defines whether information on what is enabled for the user on dxFeed is to be returned in the response (=true) or not (=false). false is used by default |
Responses
Successful response
{ "status": "OK", "reason": null, "token": "<token>" }
Response in case of requested details
{ "status": "OK", "reason": null, "token": "<token>", "details": [ "<QD_filter_1>", ... "<QD_filter_N>" ] }
Parameter | Type | Description | Example |
---|---|---|---|
status | String | The response status; | OK |
reason | String | The error reason.
| null |
token | String | The key required for authorization in dxFeed to obtain market data. | Z2V0LmR4ZmVlZCxvcHRpbXVzLW5vbnBybywsMTYxNzMwMTU0MywxNjE3MjYzMTU1LE9wd GltdXNGbG93fDEzNyxvZkNNRWZvZA.qXIi81l9daBGu9xMGkhxAOiytU24UeWwLRJHRc4jkoT |
details | Array of strings | A list of QD filters enabled on the dxFeed side for the user | [CMEGROUP, CME] |
Failure response
{ "status": "ERROR", "reason": "<error_reason>", "token": null }
In case of requested details
{ "status": "ERROR", "reason": "<error_reason>", "token": null, "details": [] }
In case of failure due to BAD_REQUEST
{ "status": "ERROR", "reason": "<error_reason>", "token": null }
Supported failure cases are presented in the following table.
HTTP status | Reason | Description |
---|---|---|
401 Unauthorized | AUTHENTICATION_FAILED | Authentication has failed due to wrong apiKey |
400 Bad Request | BAD_REQUEST | AccountId is |
200 OK | ACCOUNT_NOT_FOUND | The specified account does not exist |
200 OK | NO_ACTIVE_SUBSCRIPTIONS | There are no active subscriptions associated with the specified accountId |
200 OK | DATA_ACCESS_SUSPENDED | Data access is suspended for the account: no data is returned via active subscriptions |
Request token by credentials
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
Type
POST
URL
https://<server>.get.dxfeed.com/api/v1/token
Request body
Example of not requesting details
{ "login": "<login>", "password": "<password>" }
Example of requesting details
{ "login": "<login>", "password": "<password>", "withDetails": false }
Parameter | Type | Required? | Description |
---|---|---|---|
login | String | Yes | A user's login used for access to market data |
password | String | Yes | A user's password used for access to market data |
withDetails | Boolean | No | Defines whether information on what is enabled for the user on dxFeed is to be returned in the response (=true) or not (=false). false is used by default |
Responses
Successful response
{ "status": "OK", "reason": null, "token": "<token>" }
In case of requested details:
{ "status": "OK", "reason": null, "token": "<token>", "details": [ "<QD_filter_1>", ... "<QD_filter_N>" ] }
Parameter | Type | Description | Example |
---|---|---|---|
status | String | The response status: | OK |
reason | String | The error reason.
| null |
token | String | The key required for authorization in dxFeed to obtain market data.
| Z2V0LmR4ZmVlZCxvcHRpbXVzLW5vbnBybywsMTYxNzMwMTU0MywxNjE3MjYzMTU1LE9wd GltdXNGbG93fDEzNyxvZkNNRWZvZA.qXIi81l9daBGu9xMGkhxAOiytU24UeWwLRJHRc4jkoT |
details | Array of strings | A list of QD filters enabled on the dxFeed side for the user | [CMEGROUP, CME] |
Failure response
{ "status": "ERROR", "reason": "<error_reason>", "token": null }
In case of requested details
{ "status": "ERROR", "reason": "<error_reason>", "token": null, "details": [] }
In case of failure due to BAD_REQUEST
{ "status": "ERROR", "reason": "<error_reason>", "token": null }
Supported failure cases are presented in the following table.
HTTP status | Reason | Description |
---|---|---|
401 Unauthorized | AUTHENTICATION_FAILED | Authentication has failed due to wrong apiKey |
400 Bad Request | BAD_REQUEST | Login and/or password are null or empty |
200 OK | INVALID_CREDENTIALS | These credentials have not been granted to any account for this application |
200 OK | NO_ACTIVE_SUBSCRIPTIONS | There are no active subscriptions associated with the specified credentials |
200 OK | DATA_ACCESS_SUSPENDED | Data access is suspended for the account: no data is returned via active subscriptions |
Profile-related methods
Get profile page
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
Type
POST
URL
https://<server>/api/v1/accounts/<account_id>/profile-link
Responses
Successful response
{ "profilePageByTheme": { "LIGHT": "<URL>", "DARK": "<URL>" }, "expiresAt": <date_time_string> }
Parameter | Type | Description |
---|---|---|
profilePageByTheme | Object | Map of profile pages where key corresponds to the theme name and value is the URL of the link |
expiresAt | String | Date and time defining when the links expire |
Failure response
{ "dateTime": <date_time_string>, "errorCode": <integer>, "reason": <string>, "message": <string> }
Supported failure cases are presented in the following table.
HTTP status | Reason | Message | Follow-up actions |
---|---|---|---|
401 Unauthorized | AUTHENTICATION_FAILED | Authentication has failed due to wrong API key | Check the provided API key |
404 Not Found | ACCOUNT_NOT_FOUND | Account | Try to find account by email (see Get account by email) or сreate a new user account (see Create new account) |
Note
For further details about the personal profile page accessed through a link obtained via this request, please follow the link.
Tracking-related methods
Trial tracking
Request
Headers
Authorization: Bearer <API_KEY> Content-Type: application/json
where <API_KEY>
is a dedicated API Key for the application.
Type
POST
URL
https://<server>/api/v1/track
Request body
The request body should contain a JSON object with available data concerning the user.
{ "macAddress": <string>, "email": <string>, "firstName": <string>, "lastName": <string>, "phone": <string> }
Note
All the parameters are optional, but the object itself is required.
Examples
MAC address is the only available parameter:
{ "macAddress": "00:11:22:33:44:55" }
The only provided information is the email address:
{ "email": "user@example.com" }
The email address along with user first and last names:
{ "email": "user@example.com", "firstName": "John", "lastName": "Smith" }
MAC address, email address, user name, and phone number are provided:
{ "macAddress": "AA:BB:CC:DD:EE:FF", "email": "user@example.com", "firstName": "John", "lastName": "Smith", "phone": "15552315555" }
No additional information is provided:
{ }
Response
As the result, you should receive a response with HTTP code 200, which indicates that the trial has been successfully saved in the get.dxfeed database.