TickAtlas
Cost Optimization

Find the Tightest Spreads, Trade at the Best Times

Spread is the silent cost of every trade. Our /v1/spread endpoint gives you real-time spread data, historical statistics, session-based analysis, and multi-symbol comparison so you trade when costs are lowest.

50+

Symbols Tracked

Real-Time

Spread Updates

24/7

Monitoring

Multi-Broker

Source Data

Spread Intelligence, Not Just Spread Data

We do not just report the current spread. We analyze it.

  • Current Spread

    Live bid-ask spread in pips for any symbol, updated with every tick from our multi-broker feed.

  • Historical Stats

    Min, max, average, and median spread over the past 24 hours, 7 days, or 30 days.

  • Optimal Times

    Session-by-session breakdown showing when spreads are tightest for each symbol.

  • Multi-Symbol Compare

    Compare spreads across up to 10 symbols in a single call with /v1/spread/compare.

Single Symbol Spread Analysis

REQUEST
GET /v1/spread?symbol=EURUSD
200 OK
{
  "success": true,
  "data": {
    "symbol": "EURUSD",
    "current_spread": 0.8,
    "spread_unit": "pips",
    "bid": 1.08432,
    "ask": 1.0844,
    "statistics": {
      "period": "24h",
      "min": 0.4,
      "max": 3.2,
      "average": 1.1,
      "median": 0.9,
      "percentile_95": 2.4
    },
    "session_analysis": {
      "london": {
        "avg_spread": 0.7,
        "optimal": true
      },
      "new_york": {
        "avg_spread": 0.8,
        "optimal": false
      },
      "london_ny_overlap": {
        "avg_spread": 0.5,
        "optimal": true
      },
      "tokyo": {
        "avg_spread": 1.4,
        "optimal": false
      },
      "sydney": {
        "avg_spread": 1.8,
        "optimal": false
      }
    },
    "recommendation": "Best time to trade: London-NY overlap (12:00-16:00 UTC). Current spread is below average.",
    "timestamp": "2026-03-27T14:32:00Z"
  }
}

Multi-Symbol Comparison

Compare spreads across 5 pairs in one call

REQUEST
GET /v1/spread/compare?symbols=EURUSD,GBPUSD,USDJPY,AUDUSD,XAUUSD
200 OK
{
  "success": true,
  "data": {
    "comparison": [
      {
        "symbol": "EURUSD",
        "current": 0.8,
        "avg_24h": 1.1,
        "rank": 1
      },
      {
        "symbol": "USDJPY",
        "current": 1,
        "avg_24h": 1.3,
        "rank": 2
      },
      {
        "symbol": "GBPUSD",
        "current": 1.2,
        "avg_24h": 1.5,
        "rank": 3
      },
      {
        "symbol": "AUDUSD",
        "current": 1.4,
        "avg_24h": 1.8,
        "rank": 4
      },
      {
        "symbol": "XAUUSD",
        "current": 28,
        "avg_24h": 32.5,
        "rank": 5
      }
    ],
    "tightest": "EURUSD",
    "widest": "XAUUSD",
    "timestamp": "2026-03-27T14:32:00Z"
  }
}
Symbol Current 24h Avg Status
EURUSD 0.8 1.1 Below Average
USDJPY 1.0 1.3 Below Average
GBPUSD 1.2 1.5 Below Average
AUDUSD 1.4 1.8 Below Average
XAUUSD 28.0 32.5 Below Average

Use Cases

  • Execution Cost Optimization

    Schedule limit orders during low-spread sessions. A scalper trading 50 times per day on EURUSD saves 15-25 pips daily by avoiding high-spread periods.

  • Broker Comparison

    Our multi-broker data source shows aggregate spread. If your broker consistently quotes wider than our data, you know you are overpaying.

  • Session Timing

    Know exactly when spreads tighten for each pair. EURUSD is cheapest during London-NY overlap. USDJPY is cheapest during Tokyo-London overlap. The data proves it.

  • Anomaly Detection

    Spread spikes often precede major moves or news events. Monitor the 95th percentile and trigger alerts when current spread exceeds it.

Integration Example

Python Only trade when spread is below average
python
import requests

def should_trade(symbol):
    """Only enter trades when spread is below 24h average."""
    resp = requests.get(
        "https://tickatlas.com/v1/spread",
        headers={"X-API-Key": "YOUR_API_KEY"},
        params={"symbol": symbol}
    )
    data = resp.json()["data"]

    current = data["current_spread"]
    average = data["statistics"]["average"]

    if current <= average:
        print(f"{symbol}: Spread {current} <= avg {average} - OK to trade")
        return True
    else:
        print(f"{symbol}: Spread {current} > avg {average} - WAIT")
        return False

# Check before every trade
if should_trade("EURUSD"):
    execute_trade("EURUSD", "BUY", lot_size=0.1)

Frequently Asked Questions

How is the spread calculated?

Spread is the difference between the best ask and best bid from our multi-broker data feed, expressed in pips. For 5-digit brokers, EURUSD at 1.08440/1.08432 = 0.8 pips.

How many symbols can I compare at once?

The /v1/spread/compare endpoint accepts up to 10 comma-separated symbols per call.

Is session analysis available for all symbols?

Yes. Session breakdown is provided for all 50+ symbols. Sessions include Sydney, Tokyo, London, New York, and overlap periods.

Is this available on the Trial plan?

Yes. Both /v1/spread and /v1/spread/compare are available on all plans. Each call counts as 1 request.

Stop Overpaying on Spreads

Every pip of spread is money out of your pocket. Start optimizing your execution costs with real spread data today.

14-day free trial / No credit card required / 1,000 requests included / Cancel anytime