API sinyal yo
API piblik sa a bay sinyal yo an JSON — ou ka konekte yon bot Telegram, yon Expert Advisor, oswa yon lòt app sou li. Li gratis, san kle, read-only.
GET /api/public/signals
Paramèt (tout opsyonèl): pair, timeframe, limit.
curl "https://fxsignal.io/api/public/signals?pair=EURUSD&timeframe=15m"curl "https://fxsignal.io/api/public/signals?limit=6&timeframe=1h"Repons
{
"ok": true,
"apiVersion": "v1",
"timeframe": "15m",
"count": 1,
"generatedAt": "2026-08-19T12:00:00.000Z",
"status": {
"marketStatus": "live", // live | stale | market_closed | unavailable
"dataSource": "Yahoo Finance",
"dataService": "Yahoo Finance Chart API v8 (REST, public, no API key)",
"dataTransport": "REST (HTTPS polling)",
"dataTimestamp": "2026-08-19T12:00:00.000Z",
"lastPriceUpdate": "2026-08-19T12:00:00.000Z",
"dataAgeSeconds": 12,
"marketState": "live", // live | stale_data | market_closed | data_unavailable
"dataQuality": "excellent", // excellent | good | delayed | stale | unavailable
"signalCalculatedAt": "2026-08-19T12:00:03.000Z",
"freshnessLimitSeconds": 120,
"marketOpen": true,
"isLive": true,
"isStale": false,
"latencyMs": 180
},
"rateLimit": { "limit": 30, "remaining": 29, "windowSeconds": 60, "scope": "global" },
"signals": [
{
"apiVersion": "v1",
"signalId": "EURUSD-15m-20260819-120003", // inik, pa duplike
"signalStatus": "active", // active | tp1_hit | tp2_hit | stopped | expired | cancelled
"isNewSignal": true,
"createdAt": "2026-08-19T12:00:03.000Z",
"expiresAt": "2026-08-19T15:00:03.000Z",
"closedAt": null,
"resultPips": null,
"resultR": null,
"marketState": "live",
"dataQuality": "excellent",
"strength": "strong", // wait | weak | standard | strong
"strengthLabel": "STRONG BUY",
"setupLabel": "STRONG SETUP",
"signalPriceSource": "Yahoo Finance",
"chartSource": "TradingView",
"priceDeviation": {
"referenceSource": "Frankfurter (ECB daily reference rate)",
"referencePrice": 1.09180,
"priceDifferencePips": 3,
"thresholdPips": 60,
"priceSourceMismatch": false,
"warning": null
},
"pair": "EURUSD=X",
"label": "EUR/USD",
"timeframe": "15m",
"price": 1.09214,
"direction": "buy", // buy | sell | neutral
"action": "BUY", // BUY | SELL | WAIT
"confidence": 78, // 0-100 konfliyans scoring
"setupQuality": "good", // wait | weak | good | strong
"scoreBreakdown": {
"htfAlignment": 15, "marketStructure": 14, "bosChoch": 12,
"orderBlock": 9, "fairValueGap": 6, "liquiditySweep": 8,
"ema": 4, "rsi": 5, "session": 5, "riskReward": 10
},
"higherTimeframes": [
{ "timeframe": "H4", "trend": "bullish" },
{ "timeframe": "H1", "trend": "bullish" }
],
"structuralConfirmations": 4,
"marketStructure": "bullish",
"bosChoch": "BOS",
"orderBlock": { "top": 1.09210, "bottom": 1.09120 },
"fairValueGap": { "top": 1.09300, "bottom": 1.09250 },
"liquiditySweep": { "direction": "bullish", "price": 1.09050 },
"rsi": 57.2,
"session": "london",
"inKillzone": true,
"entry": 1.09180,
"stopLoss": 1.08920,
"takeProfit1": 1.09540,
"takeProfit2": 1.09800,
"riskReward": 2.1,
"reasons": ["bos", "order_block: 1.09120 – 1.09210", "killzone: london"],
"signalCalculatedAt": "2026-08-19T12:00:03.000Z",
"dataTimestamp": "2026-08-19T12:00:00.000Z",
"status": { "marketStatus": "live", "isLive": true, "dataAgeSeconds": 12 }
}
]
}Erè
400 invalid_query | invalid_pair | invalid_timeframe
429 rate_limited (Retry-After header)
503 market_data_unavailable -> "Market data temporarily unavailable — retrying connection"
500 server_errorLIVE / STALE
Chak kotasyon gen yon timestamp. Si li depase 120 segond, li pa make LIVE ankò — li vin STALE, epi sinyal la tounen WAIT. Lè mache Forex la fèmen (Van. 21:00 UTC → Dim. 21:00 UTC), marketStatus = market_closed. Nou pa janm bay yon fo pri LIVE.
Scoring konfyans (100 pwen)
HTF alignment 15 | Market structure 15 | BOS/CHOCH 15
Order Block 10 | Fair Value Gap 10 | Liquidity sweep 10
EMA 5 | RSI 5 | Session/Killzone 5 | Risk Reward 10
0-49 WAIT | 50-69 weak | 70-84 good | 85-100 strong
BUY/SELL mande omwen 2 konfimasyon estriktirèl + estrikti aliyen + pa gen konfli HTFGET /api/public/instruments
Bay lis pè ak timeframe ki disponib yo.
Pè
EURUSD=X— EUR/USDGBPUSD=X— GBP/USDUSDJPY=X— USD/JPYXAUUSD=X— XAU/USD (Lò)AUDUSD=X— AUD/USDUSDCAD=X— USD/CADUSDCHF=X— USD/CHFNZDUSD=X— NZD/USDEURJPY=X— EUR/JPYGBPJPY=X— GBP/JPY
Timeframe
5m— M515m— M151h— H14h— H41d— D1
Limit ak avètisman
- Rate limit: 30 rekèt/minit pou /signals ak 60 rekèt/minit pou /instruments, pa IP (kòd 429 ak Retry-After).
- Sinyal yo se analiz edikatif, se pa konsèy finansye. Trading gen gwo risk.
- CORS:
Access-Control-Allow-Origin: *