Public API Update: More Consistent Historical Price Data Spacing

Information notice CoinGecko Public API

Updates

Information
Summary

We’re improving the historical data returned by the endpoints below so that 5-minute and hourly data points are now interval-aligned, landing precisely on fixed interval boundaries (e.g., exactly on the hour) rather than slightly before or after, as they do today. This is a data-quality improvement: response schemas and structure are unchanged, and no request or response format changes are required on your end.

Who this affects

This rollout applies to free-tier users only, this includes both keyless (unauthenticated) requests and requests made with a registered Demo API key. If you’re on a paid plan (Basic, Analyst, Lite, Pro/Pro+, or Enterprise), this change doesn’t affect you at this time. You’ll be notified separately when it’s extended to your plan, on its own schedule.

Improved endpoints
  1. /coins/{id}/market_chart
  2. /coins/{id}/market_chart/range
  3. /coins/{id}/contract/{contract_address}/market_chart
  4. /coins/{id}/contract/{contract_address}/market_chart/range
  5. /coins/{id}/history
What’s improving

Previously: data points landed close to, but not exactly on, each interval boundary. For example, hourly data might return timestamps like:

1704067241 (2024-01-01 00:00:41)
1704070877 (2024-01-01 01:01:17)
1704074383 (2024-01-01 01:59:43)

New: data points will land precisely on the interval boundary:

1704067200 (2024-01-01 00:00:00)
1704070800 (2024-01-01 01:00:00)
1704074400 (2024-01-01 02:00:00)

This makes historical series easier to align, join, and compare programmatically, without needing to round or bucket timestamps yourself.

What you need to do

Values, not structure, will change. The JSON schema and field structure for these endpoints stay exactly the same, so you don’t need to update any parsing logic. What differs is the value returned for a given historical timestamp, since it now reflects the interval-aligned data point.

Endpoints Improved fields
/coins/{id}/market_chart, /coins/{id}/market_chart/range, /coins/{id}/contract/{contract_address}/market_chart, /coins/{id}/contract/{contract_address}/market_chart/range prices, market_caps, total_volumes
/coins/{id}/history market_data.current_price, market_data.market_cap, market_data.total_volume

If you cache or store historical data locally, expect that re-querying a historical timestamp after the rollout may return a value that differs slightly from what you previously stored, since it’s now sourced from the corrected, interval-aligned timestamp.

If your integration does exact-timestamp matching or joins against externally stored data, this change should make that easier and more reliable going forward, but double check any logic written to accommodate the old unaligned timestamps.

Why values may look different: This is an improvement, not an error

If you compare historical values before and after this change, you may notice differences. This is expected: the new data pipeline sources prices more accurately than the previous system. We’ve measured and validated the new values against major assets and confirmed the differences fall within an acceptable, expected range. If you see something that looks like an outlier beyond that, let us know by submitting a ticket at https://support.coingecko.com .

Rollout: 02:00 UTC, 23 July 2026

This will roll out at 02:00 UTC on 23 July 2026 via phased deployment. Traffic will shift gradually over approximately 2 hours, so during this window some requests may be served by the improved pipeline while others are still served by the previous one. This is expected and temporary. Once the rollout completes, all traffic will be fully migrated to the improved pipeline.

No action is needed on your end during this window.

Other plans (Basic, Analyst, Lite, Pro/Pro+, Enterprise) will follow on a separate, staggered schedule to be announced.

July 17, 2026 · 10:45 PM +08

← Back