TEFAS (Türkiye Elektronik Fon Alım Satım Platformu) için çoklu dil desteğine sahip API client kütüphanesi.
Bu kütüphane ile Türkiye'deki tüm yatırım fonları ve emeklilik fonlarının verilerine programatik olarak erişebilirsiniz:
- Fon Bilgileri: Fiyat, toplam değer, yatırımcı sayısı
- Fiyat Geçmişi: Geçmiş tarihli fiyat verileri
- Varlık Dağılımı: Hisse, tahvil, repo, mevduat oranları
- Piyasa Özeti: Toplam piyasa büyüklüğü ve istatistikler
| Metrik | Yatırım Fonları (YAT) | Emeklilik Fonları (EMK) |
|---|---|---|
| Fon Sayısı | 1,965 | 390 |
| Toplam Portföy | 7.40 Trilyon ₺ | 2.05 Trilyon ₺ |
| Yatırımcı Sayısı | 10.3 Milyon | 54.5 Milyon |
cd python
pip install -e .
playwright install chromiumfrom tefas import TefasClient, FundType
async with TefasClient(headless=True) as client:
# Tüm fonları getir
funds = await client.get_funds()
# En büyük 10 fon
top_funds = await client.get_top_funds(limit=10)
# Belirli bir fon
fund = await client.get_fund("GRO")
print(f"{fund.code}: {fund.total_value_billion:.2f} Milyar ₺")cd javascript
npm install
npx playwright install chromiumimport { TefasClient } from 'tefas-api';
const client = new TefasClient({ headless: true });
await client.start();
const funds = await client.getFunds();
const topFunds = await client.getTopFunds({ limit: 10 });
const summary = await client.getMarketSummary();
console.log(`Toplam: ${summary.totalFunds} fon, ${summary.totalValueTrillion.toFixed(2)} Trilyon ₺`);
await client.close();cd go
go mod download
go run github.com/playwright-community/playwright-go/cmd/playwright install chromiumpackage main
import (
"fmt"
"github.com/eneshenderson/tefas-api/go/tefas"
)
func main() {
client := tefas.NewClient(tefas.ClientOptions{Headless: true})
client.Start()
defer client.Close()
funds, _ := client.GetFunds(tefas.FundTypeYAT)
summary, _ := client.GetMarketSummary(tefas.FundTypeYAT)
fmt.Printf("Toplam: %d fon, %.2f Trilyon ₺\n",
summary.TotalFunds, summary.TotalValueTrillion())
}cd dotnet
dotnet restore
dotnet build
# Playwright kurulumu
pwsh bin/Debug/net8.0/playwright.ps1 install chromiumusing Tefas.Api;
await using var client = new TefasClient(new TefasClientOptions { Headless = true });
await client.StartAsync();
var funds = await client.GetFundsAsync();
var topFunds = await client.GetTopFundsAsync(limit: 10);
var summary = await client.GetMarketSummaryAsync();
Console.WriteLine($"Toplam: {summary.TotalFunds} fon, {summary.TotalValueTrillion:F2} Trilyon ₺");cd java
# Maven
mvn compile
# veya Gradle
gradle buildimport com.tefas.TefasClient;
import com.tefas.TefasClientOptions;
TefasClientOptions options = new TefasClientOptions();
options.setHeadless(true);
try (TefasClient client = new TefasClient(options)) {
var funds = client.getFunds();
var topFunds = client.getTopFunds(10);
var summary = client.getMarketSummary();
System.out.printf("Toplam: %d fon, %.2f Trilyon ₺%n",
summary.getTotalFunds(), summary.getTotalValueTrillion());
}Tüm dillerde aynı metodlar mevcuttur:
| Metod | Açıklama |
|---|---|
getFunds() |
Tüm fonları listeler |
getFund(code) |
Belirli bir fonun detaylarını getirir |
getPriceHistory(code, days) |
Fon fiyat geçmişini getirir |
getAllocation(code) |
Fon varlık dağılımını getirir |
getTopFunds(limit) |
En büyük fonları sıralar |
getMarketSummary() |
Piyasa özeti ve istatistikleri getirir |
searchFunds(query) |
Fon adı veya koduna göre arama yapar |
tefas-api/
├── python/ # Python paketi
├── javascript/ # TypeScript/JavaScript paketi
├── go/ # Go modülü
├── dotnet/ # .NET kütüphanesi
├── java/ # Java kütüphanesi (Maven + Gradle)
├── LICENSE # MIT Lisansı
└── README.md
| Parametre | Varsayılan | Açıklama |
|---|---|---|
headless |
false |
Tarayıcı görünür/gizli modu |
timeout |
60000 |
İstek zaman aşımı (ms) |
- TEFAS web sitesi WAF (Web Application Firewall) koruması kullanır
- Bu nedenle Playwright ile tarayıcı otomasyonu gereklidir
headless: falsevarsayılan olarak kullanılır (WAF bypass için gerekli)- Sunucu ortamlarında
headless: truedenenebilir ancak WAF engelleyebilir
| Kod | Açıklama |
|---|---|
YAT |
Yatırım Fonları |
EMK |
Emeklilik Fonları |
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit edin (
git commit -m 'Add amazing feature') - Push edin (
git push origin feature/amazing-feature) - Pull Request açın
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Enes Henderson
- GitHub: @eneshenderson
Bu kütüphane resmi TEFAS API'si değildir. Yatırım kararlarınızda bu verileri kullanmadan önce resmi kaynaklardan doğrulama yapın.