Frequently asked questions
Market data, clarified.
How fresh the numbers really are, what the stream costs, what a candle does and does not
carry, and whether a quote is ever an average.
How fresh is the data, really?
As fresh as the last update of our data, which arrives about every 60 seconds covering every configured symbol and timeframe. Every response tells you exactly when that was — timestamp on a quote, updated_at on an indicator payload — so you never have to infer freshness from a cache figure. Cache TTLs exist to survive a gap in our data, not to describe how new the numbers are: they are 180 seconds on M1 and M5, 900 on M15 through H1 and 2,700 on H4 and D1, deliberately longer than the interval at which each timeframe is published.
Is there a WebSocket, or only polling?
Both. /ws/v1/quotes is live and pushes a quote message per subscribed symbol whenever our data updates. It is available on Starter, Pro, Enterprise and the Monitor plan, and it is unmetered — credits_per_push is 0 on every plan, so a tab left open all day costs nothing against your quota. The ceiling is the simultaneous symbol count: 5 on Starter, 10 on Monitor, 20 on Pro, unlimited on Enterprise, with at most two concurrent connections per account.
Do candles include bid, ask or spread?
No. A candle from /v1/ohlc is time, open, high, low, close and volume. Bid, ask and spread live on /v1/quote and POST /v1/quotes for the live picture, and on /v1/spread for the statistics. Joining them is a timestamp join you do client-side.
Why is the market quiet at the weekend?
Because spot FX is a 24/5 market, not 24/7. The week opens at the Sydney session open on Sunday and closes at the New York session close on Friday, with Saturday always closed — and both boundaries are derived from IANA time zones, so they shift correctly with daylight saving instead of drifting by an hour for seven months of the year.
Is a quote ever an average?
No. bid, ask and spread are one quote from our data, never an average, and candle and tick history keep one row per timestamp.
How many symbols are there?
Coverage follows our data, so a fixed number on a marketing page would be stale the next time a symbol is added. GET /v1/symbols returns the live list with pagination up to 500 rows a page and filters for forex, commodities, indices, crypto and stocks, and GET /v1/symbols/{symbol} returns the detail for one.
What stops a bad price getting through?
Every incoming record is compared against that symbol’s own last cached mid and skipped if the move exceeds the threshold for its asset class — 5% for FX majors, 15% for gold, 25% for oil, 10% for indices, 50% for the large crypto pairs — plus a separate rejection for a quoted spread wider than 10% of mid. It is an outlier filter on ingest, and the thresholds are deliberately loose: they exist to catch broken data, not to smooth real volatility.
What about missing candles?
A background scan walks price_data every two minutes, learns each symbol’s own trading profile from its history rather than assuming a schedule, and writes any hole it finds to a backfill queue. Because the trading profile is learned, a market that is legitimately closed is not reported as a gap.
What do these calls cost against my quota?
A quote is 1× whether it is one symbol or a hundred in a batch. A candle request is 2×. A tick request is 3× and is Pro or Enterprise only. WebSocket pushes are 0×. There is no free tier and no self-serve trial: every account starts on pay-as-you-go with $2.50 of prepaid credit, no card and no overage.