Millisecond-Resolution Tick Data
Candlesticks are summaries. Ticks are reality. Our /v1/ticks
endpoint delivers every individual price change with bid, ask, and millisecond timestamps —
the raw data that candles are built from.
ms
Timestamp Precision
Bid+Ask
Both Sides Captured
50+
Symbols Available
Starter+
Plan Requirement
Why Tick Data Matters
Candles hide what ticks reveal
OHLCV Candle (1 Minute)
Open: 1.08432
High: 1.08456
Low: 1.08421
Close: 1.08443
Vol: 847 5 values. You know the range. You do not know the path.
Tick Data (Same Minute)
14:32:00.142 1.08432 / 1.08440
14:32:00.387 1.08435 / 1.08443
14:32:01.102 1.08421 / 1.08429
14:32:01.445 1.08425 / 1.08433
14:32:02.891 1.08456 / 1.08464
... 842 more ticks ...
14:32:59.773 1.08443 / 1.08451 847 data points. You know exactly how price got from A to B.
API Response Format
GET /v1/ticks?symbol=EURUSD&limit=5 {
"success": true,
"data": {
"symbol": "EURUSD",
"ticks": [
{
"time": "2026-03-27T14:32:00.142Z",
"bid": 1.08432,
"ask": 1.0844,
"spread": 0.8
},
{
"time": "2026-03-27T14:32:00.387Z",
"bid": 1.08435,
"ask": 1.08443,
"spread": 0.8
},
{
"time": "2026-03-27T14:32:01.102Z",
"bid": 1.08421,
"ask": 1.08429,
"spread": 0.8
},
{
"time": "2026-03-27T14:32:01.445Z",
"bid": 1.08425,
"ask": 1.08433,
"spread": 0.8
},
{
"time": "2026-03-27T14:32:02.891Z",
"bid": 1.08456,
"ask": 1.08464,
"spread": 0.8
}
],
"count": 5
}
} Use Cases
What you can build with tick-level resolution
-
Custom Candle Aggregation
Build non-standard candles: tick charts (every N ticks), volume bars, range bars, Renko, or Heikin-Ashi from raw tick data. Any candle type you can imagine.
-
Spread Microstructure
Analyze how spreads widen and narrow tick-by-tick around news events, session opens, and liquidity changes. Find patterns invisible on candle charts.
-
High-Frequency Strategies
Market making, statistical arbitrage, and momentum-on-ticks strategies all require tick-level data. This endpoint gives you what you need.
-
Execution Quality Analysis
Compare your fill prices against the tick stream to measure slippage. Did your broker fill you at the best available price? The tick data tells you.
-
ML Training Data
Machine learning models trained on tick data capture patterns that candle-trained models miss. Feed raw ticks into LSTMs, transformers, or reinforcement learning agents.
-
Volume Profile / VWAP
Calculate precise VWAP, volume-at-price profiles, and delta volume from tick data. These metrics are meaningless without tick-level granularity.
Code Examples
import requests
resp = requests.get(
"https://tickatlas.com/v1/ticks",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"symbol": "EURUSD", "limit": 500}
)
ticks = resp.json()["data"]["ticks"]
# Build 100-tick candles
candles = []
for i in range(0, len(ticks), 100):
chunk = ticks[i:i+100]
bids = [t["bid"] for t in chunk]
candles.append({
"open": bids[0],
"high": max(bids),
"low": min(bids),
"close": bids[-1],
"ticks": len(chunk),
"time": chunk[0]["time"]
})
for c in candles:
print(f"{c['time']}: O={c['open']} "
f"H={c['high']} L={c['low']} C={c['close']}") const res = await fetch(
"https://tickatlas.com/v1/ticks" +
"?symbol=XAUUSD&limit=200",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const { data } = await res.json();
// Analyze spread distribution
const spreads = data.ticks.map(t => t.spread);
const avg = spreads.reduce((a, b) => a + b) / spreads.length;
const max = Math.max(...spreads);
const min = Math.min(...spreads);
console.log(`Spread: avg=${avg.toFixed(1)}, `
+ `min=${min}, max=${max}`);
// Detect spread spikes (>2x average)
const spikes = data.ticks.filter(
t => t.spread > avg * 2
);
console.log(`Spread spikes: ${spikes.length}`); Available on Starter Plan and Above
Tick data requires significant storage and bandwidth. It is available on Starter ($29/mo), Pro ($79/mo), and Enterprise ($349/mo) plans. The Trial plan includes candle and quote data but not raw ticks.
Frequently Asked Questions
How many ticks can I retrieve per call?
Up to 1,000 ticks per request via the limit parameter. For larger datasets, paginate using the from timestamp parameter.
How long is tick data retained?
Tick data is retained for the past 24 hours on Starter, 48 hours on Pro, and 7 days on Enterprise. For longer retention, download and store ticks locally.
What is the typical tick frequency?
It depends on the symbol and market session. EURUSD during London-NY overlap averages 10-30 ticks per second. During Sydney session it may drop to 1-5 ticks per second.
Does each tick request count against my quota?
Yes, each call to /v1/ticks counts as 1 request toward your plan quota regardless of how many ticks are returned (up to the 1,000 limit).
Is WebSocket streaming available for ticks?
WebSocket streaming is on our roadmap for Pro and Enterprise plans. Currently, tick data is available via REST polling. Check our changelog for updates.
See Every Price Change. Miss Nothing.
Get tick-level market data for the strategies that demand the highest resolution.
14-day free trial / Tick data on Starter+ plans / Cancel anytime