Real-Time Forex Data API

Live OHLCV candles, tick data, 42 pre-calculated indicators, and real-time spreads — refreshed as our data updates and served from Redis for near-instant response times.

Minute-Level Refresh Redis-Cached Tick Data Live Spreads 42 Indicators
  • Minute-Level Price Refresh

    Our data updates about every 60 seconds, so quotes and spreads move on roughly a one-minute cadence through the trading session.

  • Redis-Cached

    Most requests are served straight from memory — no database round-trip and no recalculation per call.

  • Live Tick Data

    Raw bid/ask tick data via /v1/ticks. See every price movement with timestamps for sub-candle precision.

  • Real-Time Indicators

    All 42 indicators update with each new candle close. M1 indicators refresh every minute, M5 every 5 minutes.

  • Live Spread Data

    Current bid-ask spread, average spread, and spread percentile — updated in real time for cost-aware trading.

  • Our Data

    Our data, live through the trading session.

Real-Time Data Example

python
import requests, time
from datetime import datetime, timedelta, timezone

headers = {"X-API-Key": "YOUR_API_KEY"}
BASE = "https://tickatlas.com/v1"

# Continuous real-time monitoring
while True:
    # Ticks from the last minute — /v1/ticks requires both from and to
    now = datetime.now(timezone.utc)
    tick = requests.get(f"{BASE}/ticks", headers=headers,
        params={"symbol": "EURUSD",
                "from": (now - timedelta(minutes=1)).isoformat(),
                "to": now.isoformat()}).json()
    latest = tick["data"]["ticks"][-1]
    print(f"EURUSD bid={latest['bid']} ask={latest['ask']}")

    # Real-time RSI
    rsi = requests.get(f"{BASE}/indicator", headers=headers,
        params={"symbol": "EURUSD", "indicator": "RSI_14", "timeframe": "M1"}).json()
    print(f"RSI(M1): {rsi['data']['value']:.1f}")

    # Current spread
    spread = requests.get(f"{BASE}/spread", headers=headers,
        params={"symbol": "EURUSD"}).json()
    print(f"Spread: {spread['data']['current_spread_pips']:.1f} pips\n")

    time.sleep(60)  # Our data updates about once a minute

Real-Time Endpoints

Endpoint Refresh Rate Data
/v1/ticks Second-resolution samples Bid, ask, timestamp
/v1/spread ~60 seconds Current, avg, min, max
/v1/indicator Per candle close Any of 42 indicators
/v1/ohlc Per candle close Open, high, low, close, vol
/v1/heatmap ~5 minutes Currency strength

Frequently Asked Questions

How real-time is the forex data?

Our data is served from Redis and updates about every 60 seconds; indicator and candle values refresh on the cadence of their timeframe — M1 and M5 on the minute, M15/M30/H1 every 10 minutes, H4 and above every 30 minutes.

What real-time data formats are available?

Real-time OHLCV candles, pre-calculated indicators (42 total), raw tick data (bid/ask), spread data, and rule-based market summaries. All in JSON format.

Can I get streaming real-time data?

Yes, on Starter and above: /ws/v1/quotes pushes live bid/ask quotes for the symbols you subscribe to, and the pushes do not count against your quota. On pay-as-you-go, poll the REST API instead, at the cadence of the data you want: quotes change about once a minute, indicators once per timeframe interval. Every call is served from Redis, so polling is cheap on our side — it simply will not return anything new before our data updates again.

What is the rate limit for real-time data?

Pay as you go: 30/min on the starting credit, 600/min after a top-up. Starter: 120/min. Pro: 600/min (10/sec). Enterprise: 6,000/min (100/sec). Pro and Enterprise handle continuous real-time polling.

How does the data reach the API?

Our data flows through PostgreSQL for persistence and Redis for real-time caching.

Get Real-Time Forex Data Now

Start free with $2.50 of API credit. Live prices, refreshed every minute.