TradingView Feed API Dokümantasyonu
Bu API, TradingView üzerindeki binlerce kripto para, hisse senedi (BIST, NASDAQ, NYSE), endeks (TVC) ve döviz paritesine ait **geçmiş OHLCV mum verilerini** ve **anlık canlı fiyat akışlarını** dış uygulamalarınıza sunmak üzere tasarlanmış yüksek performanslı bir veri servisidir.
http://localhost:5000
Bağlantı & Veri Formatı
API tüm HTTP isteklerinde standart application/json verisi döndürür. CORS (Cross-Origin Resource Sharing) varsayılan olarak aktiftir, böylece web projelerinizden doğrudan istemci tarafında veya arka planda çağırabilirsiniz.
Desteklenen Zaman Dilimleri (Intervals)
İsteklerde interval parametresi olarak kullanabileceğiniz standart TradingView periyot kodları:
| Parametre Değeri | Açıklama | Örnek Kullanım |
|---|---|---|
1 | 1 Dakikalık Mumlar | 1m grafiği |
5 | 5 Dakikalık Mumlar | 5m grafiği |
15 | 15 Dakikalık Mumlar | 15m grafiği |
60 | 1 Saatlik (60 dk) Mumlar | 1h grafiği |
240 | 4 Saatlik (240 dk) Mumlar (Varsayılan) | 4h grafiği |
D | Günlük Mumlar | 1D grafiği |
W | Haftalık Mumlar | 1W grafiği |
Belirtilen parite, borsa ve zaman diliminde istenen sayıda geçmiş mum verisini TradingView soketinden anlık çekerek dizilim formatında döndürür.
| Parametre | Tip | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| symbol | string | Opsiyonel | BTCUSDT |
Sembol adı (Örn: BTCUSDT, ETHUSDT, THYAO, AAPL). Borsa eki içerebilir (BINANCE:BTCUSDT). |
| exchange | string | Opsiyonel | BINANCE |
Borsa kodu (Örn: BINANCE, BIST, NASDAQ, NYSE, CRYPTOCAP, TVC, OKX, BYBIT). |
| interval | string | Opsiyonel | 240 |
Periyot (1, 5, 15, 60, 240, D, W). |
| n_bars | integer | Opsiyonel | 300 |
Çekilecek mum sayısı (Min: 5, Max: 5000). |
| provider | string | Opsiyonel | Kalıcı Ayar |
Ana veri kaynağı (TRADINGVIEW veya BINANCE). Belirtilmezse sunucudaki kayıtlı aktif provider kullanılır. |
{
"success": true,
"symbol": "BINANCE:BTCUSDT",
"raw_symbol": "BTCUSDT",
"exchange": "BINANCE",
"interval": "240",
"pricescale": 100,
"count": 2,
"candles": [
{
"time": 1710000000,
"open": 64500.0,
"high": 65200.0,
"low": 64200.0,
"close": 65100.0,
"volume": 1420.55
},
{
"time": 1710014400,
"open": 65100.0,
"high": 66000.0,
"low": 64900.0,
"close": 65850.5,
"volume": 1890.12
}
]
}
Seçilen paritenin anlık fiyatını, 24 saatlik fiyat değişim miktarını (change), yüzdelik değişimini (ch_perc) ve işlem hacmini hızlıca çekmek için kullanılır.
| Parametre | Tip | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|
| symbol | string | Opsiyonel | BTCUSDT |
Sembol adı. |
| exchange | string | Opsiyonel | BINANCE |
Borsa adı. |
{
"success": true,
"data": {
"symbol": "BINANCE:BTCUSDT",
"price": 65850.50,
"change": 1250.00,
"ch_perc": 1.93,
"volume": 42890.15,
"time": 1710014405
}
}
TradingView üzerindeki sembolleri aramak için kullanılır. Kullanıcı arama kutuları ve autocomplete bileşenleri için idealdir.
| Parametre | Tip | Durum | Açıklama |
|---|---|---|---|
| query | string | Zorunlu | Aranacak kelime veya sembol (Örn: THY, BTC, APPLE). |
TradingView arka plan soketinden gelen canlı fiyat tiklerini istemciye sürekli bir olay akışı (SSE stream) olarak iletir. JavaScript EventSource veya Python SSE istemcileriyle sıfır veri kaybı ile canlı fiyat takibi sağlar.
const url = "http://localhost:5000/api/stream_price?symbol=BTCUSDT&exchange=BINANCE&interval=240";
const eventSource = new EventSource(url);
eventSource.onmessage = function(event) {
const data = JSON.parse(event.data);
if (data.price) {
console.log("Canlı Fiyat Tik Güncellemesi:", data.price, "Zaman:", data.time);
}
};
eventSource.onerror = function(err) {
console.error("SSE Bağlantı Hatası:", err);
};
Python Doğrudan Soket Kullanımı (tw_socket.py)
Projenin içinde yer alan tw_socket.py modülü, hiçbir Web sunucusuna ihtiyaç duymadan doğrudan kendi Python script'lerinizde TradingView WebSocket motoruna baglanmanızı sağlar.
import asyncio
from tw_socket import TradingViewSocket
async def main():
tv = TradingViewSocket()
# 1. Geçmiş Mumları Çekme
res = await tv.get_historical_candles(
symbol="BTCUSDT",
exchange="BINANCE",
interval="240", # 4 Saatlik
n_bars=500
)
print(f"Toplam {res['count']} adet mum çekildi. Son kapanış: {res['candles'][-1]['close']}")
# 2. Canlı Soket Akışını Dinleme
print("\n--- Canlı Fiyat Akışı Başlatılıyor ---")
async for tick in tv.stream_live_ticker(symbol="BTCUSDT", exchange="BINANCE"):
print(f"Gelen Tik -> Fiyat: {tick.get('price')} | Hacim: {tick.get('volume_24h')}")
if __name__ == "__main__":
asyncio.run(main())
Örnek Entegrasyon Kodları
Aşağıdaki sekmelerden tercih ettiğiniz yazılım dilini seçerek projenize doğrudan kopyalayabilirsiniz: