Support

Client libraries vs. APIs

There are multiple ways to access data programmatically through Databento. The easiest way is to use one of our official client libraries for the following languages:

These client libraries reduce the amount of code you need to write and adopt our recommended best practices.

If you are using a language that does not have an official client library, you can still access all of our historical features through our HTTP API and all of our live features through our Raw API, which is built on a regular TCP/IP socket.

If you are still unsure, here are some considerations that can help you decide the best choice:

  • Historical vs. live. Our HTTP API only exposes historical data, whereas our Raw API only exposes live data. Due to licensing limitations, we treat any data from the last 24 hours as live data. Our client libraries provide both historical and live data by implementing a common layer over both our HTTP API and Raw API.
  • Web browser support. Most browsers do not provide support for raw TCP sockets. If you are writing a browser application, you should use our HTTP API to ensure compatibility with your end users.
  • Security. If your organization has security policies that make it inconvenient for you to install or update an external client library, we recommend implementing your own client using our APIs directly.
  • Real-time performance. Our Raw API uses binary-encoded data messages and will have the lowest overhead for live data. The Python and C++ client libraries wrap the Raw API for live data, so they can't be more efficient than the API itself. See our latency page to compare their latencies in real conditions.
  • Similarities to REST. Our HTTP API is a collection of RPC-style methods. Although it is not a REST API, you will find it familiar as it shares many of the standard practices adopted by HTTP-based REST APIs.
  • Pricing. You pay the same price for the same data, regardless of the access method. We only charge you based on the size of the data in its original binary encoding. For example, the same data message will be larger in our CSV encoding than our binary encoding, but there are no extra charges for this overhead.

You can toggle between the different client libraries and APIs anywhere in our documentation. By default, our Python client library is selected.

Flowchart