time_exchange vs time_coinapi

time_exchange is the timestamp assigned by the exchange when the event occurred, while time_coinapi is the timestamp recorded by CoinAPI the moment the update arrived at the nearest ingestion point (PoP).

Every market-data event delivered by CoinAPI includes two timestamps:

time_exchange and time_coinapi. Together they describe when an update occurred at the exchange and when CoinAPI ingested it at the nearest Point of Presence (PoP).

These timestamps are essential for latency analysis, microstructure modeling, accurate historical reconstruction, and execution research.

time_exchange is the timestamp generated by the exchange itself.

It represents:

  • when the exchange claims the event occurred
  • the matching-engine timestamp (when available)
  • or the exchange’s best estimate if no timestamp is sent

Because every exchange behaves differently, this timestamp:

  • may be precise to microseconds on some venues
  • may be coarse or absent on others
  • may reflect internal exchange delays
  • may include batching or throttling behavior
  • may occasionally be missing or unreliable during load spikes

CoinAPI never modifies time_exchange.

If the exchange doesn’t provide one, CoinAPI sets it equal to time_coinapi.

time_coinapi is the timestamp CoinAPI assigns the moment the update arrives at the ingestion PoP (e.g., NY4, LD4, TY8).

It represents:

  • the real-world arrival time of the event
  • based on synchronized servers in global PoPs
  • extremely precise (nanosecond resolution depending on infrastructure)
  • fully consistent across all exchanges and assets
  • the foundation for reliable microstructure replay

This is the timestamp most used for:

  • latency measurement
  • HFT modeling
  • market replay
  • order sequencing
  • arbitration and compliance analysis

Because real-time markets operate across physical distance, internet variability, and exchange load.

The difference between the two is not an error, it is the latency fingerprint of that event.

Reasons they differ:

  • matching-engine processing delays
  • queue congestion
  • throttling or bursty update schedules
  • internal timestamp batching
  • geographic distance (e.g., Tokyo → London → NY)
  • routing path variability
  • internet jitter
  • packet retransmissions
  • venue rate limits
  • PoP selection
  • failover between PoPs
  • client’s chosen protocol (REST > WebSocket > FIX)

A fluctuating delta between timestamps is normal and expected.

The difference:

Δ = time_coinapi – time_exchange

Represents the exchange → CoinAPI ingest latency for that update.

It is useful for:

  • microstructure modeling
  • synthetic order book replay
  • slippage analysis
  • signal delay estimation
  • arbitrage feasibility testing
  • monitoring exchange health & congestion

Example:

  • time_exchange = 12:00:00.820000Z
  • time_coinapi = 12:00:00.835200Z
  • Δ = 15.2 ms

This reflects the true real-time delay between generation and arrival.

If an exchange does not include a timestamp, CoinAPI sets:

time_exchange = time_coinapi

This allows systems to function without missing fields, but also signals:

  • limited precision
  • reliance on network arrival time
  • probable inability to model microstructure accurately
  • you trust the exchange’s internal timestamp
  • comparing events within the same venue
  • analyzing exchange behavior
  • modeling maker/taker triggers
  • performing latency analysis
  • reconstructing order books
  • replaying microstructure tick-by-tick
  • ensuring consistent cross-exchange sequencing
  • measuring true real-world delivery times
  • calibrating HFT models
  • studying arbitrage opportunities
  • auditing delays or failures
  • evaluating routing architectures

“Why doesn’t CoinAPI fix the latency?”

Because the variation reflects the actual market. Removing it would destroy microstructure accuracy.

“Is a higher delta bad?”

Not necessarily, it often means the exchange is congested, not that CoinAPI is slow.

“Why do REST timestamps differ more?”

REST is not tick-perfect; WebSocket and FIX streams provide real-time granularity.

  • time_exchange = when the exchange says the event occurred.
  • time_coinapi = when CoinAPI actually ingested it.
  • The delta reflects real-world latency & market conditions.
  • Both timestamps are required for accurate microstructure analysis.
  • CoinAPI never modifies exchange timestamps.
  • If exchange timestamps are missing, time_exchange = time_coinapi.

Crypto API made simple: Try now or speak to our sales team