Skip to main content

Datafeed API

View as Markdown

The library allows connecting market data to the chart in two ways:

  • By using the built-in UDF adapter.
  • By implementing your own datafeed via the Datafeed API.
info

Note that neither Advanced Charts nor Trading Platform contains any market data. You should use data from your own source or third-party providers.

This documentation section describes the Datafeed API methods and their implementation details. You can also refer to the How to connect data via Datafeed API tutorial for a step-by-step guide.

Overview​

The Datafeed API is a set of methods that you should implement in JavaScript and assign to the datafeed property in the Widget Constructor. The library calls these methods to access and process data. In response, you should evoke the provided callbacks to pass the data to the library. The diagram below illustrates how the Datafeed API should be integrated with the library and your backend server.

Diagram illustrating datafeed architectureDiagram illustrating datafeed architecture

Asynchronous callbacks​

As mentioned above, you should evoke callbacks to pass data to the library. Note that all callbacks should be evoked asynchronously. In context of the JavaScript Event Loop, the callbacks can only be evoked within different MacroTask. Otherwise, the Uncaught RangeError: Maximum call stack size exceeded issue might occur.

If you have data ready at the time of a request, you can set a delay as demonstrated below to ensure that a callback is only evoked when the library is ready.

setTimeout(() => { historyCallback(data); }, 0);

Note that the library can modify bar data that you provide utilizing callbacks. Pass a copy of the data to avoid potential issues.

Time units​

All time values in the Datafeed API are Unix timestamps in UTC. Values that describe bars are in milliseconds, all other values are in seconds.

ValueUnit
Bar timeMilliseconds
nextTimeMilliseconds
from and to in getVolumeProfileResolutionForPeriodMilliseconds
Other values, such as PeriodParams from and to, mark times, server time, and expiration_dateSeconds

The UDF protocol uses seconds for all time values. The UDF adapter converts bar times and nextTime to milliseconds.

List of methods​

All Datafeed API methods are divided into three groups: