Quant Integration Portal

Developer Hub & REST API Specification

Query modeled liquidation clusters, Cumulative Volume Delta (CVD), high-timeframe levels, and an untested momentum projection for research, backtesting, and your own applications. The API supplies market structure data, not trading signals.

๐Ÿ› ๏ธ API Request Standards

All API queries are served over SSL. There are two things a token changes, and they are separate: any account โ€” including a free one โ€” unlocks the quant payload (ict, htf, prediction, cvd_markers), while any active paid plan (Premium or Pro API) removes the 24-hour delay and raises the rate limit to 300 req/min. A key on the 7-day trial is live too. Without any token you still get candles and the modeled stop bands, on the delay.

Base Production URL: https://ampeld.com/api
Request Headers:
Authorization: Bearer sl_api_your_token_here
Send the token in the header, never in the URL: query strings end up in server logs, proxies and browser history.

โšก GET /v1/liquidity

One market and timeframe per call: candles with the modeled stop-loss bands, order blocks and Fair Value Gaps, the daily and weekly context, and the projection path. Live on a paid plan, otherwise 24 hours behind.

Query Parameters
ParameterTypeRequiredDescription
symbolstringYESOne of the 41 markets we cover, e.g. BTCUSD, EURUSD, AAPL, XAUUSD: letters and digits only. Common names are answered as the market they name (GOLD as XAUUSD, US500 as SPX).
intervalintegerNOCandle size in minutes: 5, 15, 30, 60 (1h, default), 240 (4h), 1440 (daily), 10080 (weekly). The terminal's spelling works as well: 5m, 15m, 30m, 1h, 4h, 1d, 1w. Any other value is answered with hourly candles.
only_candlesbooleanNOReturn only lightweight candle data with active upper/lower liquidity boundary prices (disables ICT metrics).
Response Status Reference
200 OK
Request succeeded, returns rich data structure.
200 + locked โ€” no token, no quant payload
Calls without a recognised token still return 200, but only candles and the modeled stop bands. The ict, htf, prediction and cvd_markers keys are omitted and a locked object names what is missing. There is deliberately no 401, so check for lockedrather than a status code.
An expired key degrades silently
A lapsed Pro key does not error either โ€” it falls back to the 24-hour-delayed tier. Automated clients must read is_delayed and is_premium on every response, or keep trading on day-old candles without noticing.
422 Unknown symbol
The symbol is not one of our markets. The answer has code: "unknown_symbol" and lists every symbol we cover in supported. Until 2 Oct 2026 this was a 200 with an empty data array.
400 Invalid symbol
The symbol is not 1โ€“12 letters or digits. Write it without punctuation: BTCUSD, not BTC-USD or BTC/USD.
429 Rate Limited
Exceeded plan allowance (300 req/min for keys on an active paid plan, its trial included; 60 req/min on the free tier).

โœ“โœ— GET /v1/signal-truth

Every EMA 9/21 cross, MACD cross, RSI 30/70 reversal or Stochastic cross on a market and timeframe, each with what price did next, and the indicator's score. Use it to check an indicator on your market before a bot trades it. Across our 41 markets these four work 49โ€“51% of the time on the hourly chart (21,566 signals checked); this endpoint shows where yours stands.

Query Parameters
ParameterTypeRequiredDescription
symbolstringYESCanonical ticker, e.g. XAUUSD, EURUSD, NAS100.
intervalintegerNO5, 15, 30, 60 (default), 240, 1440, 10080. Signals cover the last 720 bars (1h = about 30 trading days).
indicatorstringNOema_cross (EMA 9 over/under EMA 21, default), macd_cross (MACD 12/26 over/under its 9 signal line), rsi_reversal (RSI 14 back above 30 / below 70), stoch_cross (Stochastic 14/3/3: %K crossing %D below 20 / above 80).
The rule
A signal worked if price moved 1 ATR(14) in its direction before it moved 1 ATR against, within 48 bars; failed is the reverse. Both barriers inside one bar, or neither within 48 bars, is unclear; a signal still inside its 48 bars is open. Only worked and failed count towards the score. The same text comes back in rule.
signals[]
{ time, side, price, outcome, resolved_time } โ€” time is the signal candle (Unix seconds, UTC), side is buy or sell, price the close it fired on, and resolved_time the candle that decided it (null while open).
score ยท from / to ยท live
{ worked, failed, total, pct, verdict }. verdict is better or worse only when the score falls outside what chance gives 95% of the time at that sample size, otherwise coin_flip(too_few under 8 signals). from and to bound the candles used. Access follows /v1/liquidity: with live access live is true; otherwise everything, outcomes included, is computed on data ending 24 hours ago. Past signals, not a forecast.
curl -H "Authorization: Bearer sl_api_your_token_here"   "https://ampeld.com/api/v1/signal-truth?symbol=XAUUSD&interval=60&indicator=macd_cross"

๐Ÿ“Š Data Schema & Glossary

The API delivers a rich payload structure that feeds directly into quantitative engines. Here is the mathematical explanation of each returned model field:

data[].magnet_up / magnet_down
Upper and lower bands from a volatility model: each starts 1.5 ATR beyond the last high or low that touched it and drifts 5% toward the close every candle. They describe where the model places concentration, not where price will go. Each element of data[] also carries time, open/high/low/close, volume, delta, vol_flag, whale, whale_value and vwap with its upper and lower bands.
ict.fvgs[]
Fair Value Gaps โ€” price inefficiencies in the candle sequence. Each entry: type (bullish/bearish), top, bottom, time, mitigated, mitigated_time.
ict.obs[]
Order blocks. Each entry: type (support/resistance), price, time, mitigated, mitigated_time, swept_by_spread, and liquidations[]โ€” the forced-exit ladder as { price, level }, where level 0 is the tightest band.
htf.daily / htf.weekly
High-timeframe context. Each is an object, not an array, holding fvgs[] and obs[] in exactly the same shape as their intraday counterparts above.
prediction.historical / .future / .historical_paths
Momentum extrapolation: the EMA(12) slope fading out, a pull back toward the 20-bar average and a pull toward the nearest open order block (future runs 20 bars ahead). historical and future are { time, value } series; historical_pathsholds past projections for backtesting, each point carrying its origin_time so you can replay what the model said at the time. It draws a direction, and we have not measured whether that direction is right; our methodology tests the levels, not this line. Replay it with historical_paths to test it yourself.
cvd_markers[]
Cumulative Volume Delta divergences: { time, type }, where type is bullish_div or bearish_div. Per-candle delta itself is on data[].delta.
spread / spread_pct ยท is_delayed / is_premium
The modeled spread buffer applied around each level, absolute and as a percent of price. The tier flags tell you which data you actually received โ€” is_delayed is true whenever the response is on the free 24-hour delay, with delay_hours alongside it.
๐ŸŒInteractive Sandbox ConsoleChoose a symbol and interval, then send a live request to the API and inspect the real response.
๐Ÿ”‘ The demo key returns data on a 24-hour delay. A paid or trial key returns it live.
๐Ÿ”’
Rate-Limiting Details: Keys on any active paid plan (Premium or Pro API), its trial included, allow 300 requests/minute; the free tier is limited to 60 requests/minute. For higher-throughput enterprise access, contact support@ampeld.com.