Coinbase API v2 is a powerful tool for developers to access real-time and historical cryptocurrency data. One of the most common use cases for the API is to retrieve historical price data for multiple days, which can be used for analysis, modeling, and forecasting. However, getting historical price data for multiple days using Coinbase API v2 requires some knowledge of the API and its parameters.
Fortunately, several resources available online can help developers retrieve historic price data using Coinbase API v2.
One such resource is the Historic-Crypto Python wrapper, which simplifies the process of retrieving historic price data for multiple days by providing a user-friendly interface. You can simply install the wrapper using pip
and start retrieving data using the HistoricalData
class.
π Recommended: How to Install a Library using Pip?
In addition, the Coinbase API documentation provides detailed information on retrieving historical price data for multiple days using the API’s GET
request. Developers can use the “candles” endpoint to retrieve historic price data for a specific currency pair and time range. By specifying the granularity parameter, developers can control the time intervals for which data is returned, allowing for greater flexibility in data analysis.
Note that there are alternative or even better ways to extract historical price data, such as from our sponsor currencyapi.com:
Prerequisites
Before you can start using the Coinbase API to get historical prices for multiple days, there are a few prerequisites that you need to meet. These include:
- Having a Coinbase account: To access the API endpoints, you need to have a Coinbase account. If you don’t have an account yet, you can sign up for one on the Coinbase website.
- Generating an API key: Once you have a Coinbase account, you need to generate an API key that you can use to access the API endpoints. To generate an API key, go to the API settings page in your Coinbase account and follow the instructions there.
- Understanding the API documentation: The Coinbase API v2 documentation provides detailed information on how to use the API endpoints to get historical prices for multiple days. Before you start using the API, skim over the documentation. (Please!) π
Additionally, you should have a basic understanding of programming concepts and be comfortable working with Python, as this is the language that we will be using to make API requests and retrieve historical price data.
π‘ Recommended: [Collection] 11 Python Cheat Sheets Every Python Coder Must Own
With these prerequisites in place, you’ll be ready to start using the Coinbase API v2 to get historic prices for multiple days. In the next section, we’ll take a closer look at how to make API requests and retrieve the data that we need.
Getting Access to Coinbase API v2
Before you can access the Coinbase API v2 endpoints, you will need to create a Coinbase account and generate an API key. The API key is used to authenticate your requests and ensure that only authorized users can access the API.
To create an API key, log in to your Coinbase account and navigate to the API settings page. From there, you can create a new API key and configure the permissions and restrictions for that key.
Once you have generated an API key, you can use it to access the Coinbase API v2 endpoints. These endpoints allow you to retrieve various types of data from the Coinbase platform, including historical price data, account information, and transaction history.
It is important to note that the Coinbase API is subject to rate limits and other restrictions, so you should be careful to follow best practices when making requests. This may include using pagination to limit the amount of data returned in a single request, caching responses to reduce the number of requests made, and monitoring your API usage to ensure you do not exceed your rate limits.
Understanding the Historic Price Endpoint
The Coinbase API v2 provides a historic price endpoint that allows you to retrieve historical price data for a given cryptocurrency pair. This endpoint can be useful for analyzing trends, building trading strategies, and performing backtesting.
The historic price endpoint is accessed using the GET method and the following URL format:
URL | https://api.coinbase.com/v2/prices/:currency_pair/historic |
---|---|
Method | GET |
Parameters | start : The starting timestamp for the data. end : The ending timestamp for the data. granularity : The time granularity of the data in seconds. Valid values are 60, 300, 900, 3600, 21600, and 86400. |
Here is an example URL for retrieving the historical prices for the BTC-USD pair from January 1, 2022 to January 31, 2022 with a granularity of 3600 seconds:
https://api.coinbase.com/v2/prices/BTC-USD/historic?start=1641024000&end=1643659200&granularity=3600
The response from the historic price endpoint is a JSON object containing an array of price data points. Each data point has the following attributes:
Attribute | Description |
---|---|
time | The timestamp for the data point. |
low | The lowest price during the time period. |
high | The highest price during the time period. |
open | The opening price for the time period. |
close | The closing price for the time period. |
volume | The trading volume during the time period. |
It is important to note that the historic price endpoint has rate limits to prevent abuse. The current rate limit is 10 requests per second per IP address.
Requesting Historical Prices for Multiple Days
Getting historical prices for multiple days on Coinbase API v2 is straightforward.
You can use the “candles
” endpoint to get the historical prices for a specific product (e.g., BTC-USD) for a given time range (e.g., the last 30 days). The “candles
” endpoint returns an array of historic rates for a specific product. Each element in the array represents a single bucket of time, with the opening price, closing price, high price, low price, and volume for that time period.
The time period for each bucket is determined by the “granularity
” parameter, which specifies the number of seconds per bucket.
Here’s an example of how to use the “candles
” endpoint to get historical prices for the BTC-USD product for the last 30 days:
HTTP Method | Endpoint | Parameters |
---|---|---|
GET | /products/BTC-USD/candles | start=2023-02-20T00:00:00Z&end=2023-03-22T10:12:04.144Z&granularity=86400 |
In this example, we’re using a granularity of 86400 seconds (1 day) to get daily historical prices for the last 30 days. The “start
” and “end
” parameters specify the time range for the historical prices. Note that the time range is inclusive of the start time and exclusive of the end time.
It’s important to note that historical rates should not be polled frequently. If you need real-time information, use the trade and book endpoints along with the WebSocket
feed.
With this information, you can use the “candles
” endpoint to get historical prices for multiple days on Coinbase API v2. Just make sure to use the correct parameters and follow best practices for polling historical rates.
Handling the Response
After requesting the Coinbase API for historical price data, you will receive a JSON response containing an array of data points. Each data point includes a time stamp, low price, high price, open price, and close price for the given time period.
It’s important to note that historical rate data may be incomplete and should not be polled frequently. Additionally, no data is published for intervals where there are no ticks. Therefore, I recommend using the API sparingly and only when necessary.
When handling the response, it’s important to parse the JSON data and extract the relevant information. This can be done using a variety of programming languages and libraries, such as Python’s JSON library or JavaScript’s JSON.parse()
method.
Once you have extracted the data, you can use it to generate charts, analyze trends, or make informed trading decisions.
Well – “informed trading decisions” – there may not be such a thing after all. πππ
π‘ Recommended: How to Trade Crypto Using Binance