Skip to main content

TEFAS (Türkiye Elektronik Fon Alım Satım Platformu) için modern Python istemcisi — yeni resmi API'leri kullanır.

Project description

pytefas

TEFAS (Türkiye Elektronik Fon Alım Satım Platformu) için modern Python istemcisi.

Yeni TEFAS sitesinin (Next.js tabanlı, 2026'da yenilendi) doğrudan resmi API endpoint'lerini kullanır. Authorization, login veya API anahtarı gerektirmez.

Neden yeni bir paket?

Mevcut tefas-crawler paketi (PyPI 0.5.0) eski TEFAS sitesinin (fundturkey.com.tr) endpoint'lerini kullanıyor ve artık çalışmıyor — TEFAS yeni Next.js tabanlı bir siteye geçti, eski endpoint'ler 404 dönüyor.

Bu paket yeni sitenin doğrudan API'lerini kullanır:

  • https://www.tefas.gov.tr/api/funds/fonGnlBlgSiraliGetir (fiyat / pay sayısı / büyüklük)
  • https://www.tefas.gov.tr/api/funds/dagilimSiraliGetirT (portföy varlık dağılımı)

Kurulum

pip install pytefas

Kullanım

Tek bir gün, fiyat bilgisi

from pytefas import Crawler

tefas = Crawler()
df = tefas.fetch("2026-04-24", columns="info", kind="YAT")
print(df.head())
        date kind fund_code                              fund_name      price  shares_outstanding  investor_count  portfolio_size
0 2026-04-24  YAT       AAK  ATA PORTFÖY ÇOKLU VARLIK DEĞİŞKEN FON   35.46418            999934.0           769.0    35461839.75
1 2026-04-24  YAT       AAL    ATA PORTFÖY PARA PİYASASI (TL) FONU   ...

Portföy varlık dağılımı

df = tefas.fetch("2026-04-24", columns="breakdown", kind="YAT")
# Sütunlar: stock_pct, government_bond_pct, repo_pct, foreign_stock_pct, ...

Tarih aralığı

df = tefas.fetch(start="2026-04-22", end="2026-04-24", columns="info", kind="YAT")

Tüm fon tiplerini birlikte (YAT + EMK + BYF)

df = tefas.fetch_many("2026-04-24", columns="info")
# 'kind' sütunu YAT/EMK/BYF değerlerini içerir

Parametreler

Crawler.fetch(start, end=None, kind="YAT", columns="info")

Parametre Tip Açıklama
start str veya datetime Başlangıç tarihi ('YYYY-MM-DD' formatı).
end str veya datetime veya None Bitiş tarihi. None = start ile aynı.
kind "YAT", "EMK", "BYF" Fon tipi: Yatırım / Emeklilik / Borsa Yatırım Fonu.
columns "info" veya "breakdown" Genel bilgi vs. portföy dağılımı.

Dönen DataFrame

  • columns="info" → 8 sütun: date, kind, fund_code, fund_name, price, shares_outstanding, investor_count, portfolio_size, exchange_bulletin_price
  • columns="breakdown" → 50+ sütun: tüm varlık sınıflarının yüzdeleri (ör. stock_pct, repo_pct, foreign_stock_pct, precious_metals_pct, vs.)

Tatil/hafta sonu için boş DataFrame döner.

Rate limiting

TEFAS API'si dakikada 6 istek sınırına sahiptir. Paket bunu otomatik handle eder — limit aşılırsa bekler ve yeniden dener. Manuel bir şey yapmanıza gerek yok.

Stabilite

TEFAS API'si halen genel kullanıma açıktır ancak resmi olarak dokümante edilmemiştir. TEFAS site değişikliği yaparsa paket güncellenmesi gerekebilir — issue açın veya PR gönderin.

Lisans

MIT — bkz. LICENSE.

Katkı

Pull request'ler memnuniyetle karşılanır. Major değişiklikler için önce issue açıp tartışalım.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytefas-0.1.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytefas-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file pytefas-0.1.0.tar.gz.

File metadata

  • Download URL: pytefas-0.1.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pytefas-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cebf1fa9661b30caa2b69a3c6a6b5618fe2ace1f6383e9adb5f7d28c152797cd
MD5 a36800938744f9002d5f992453c3440e
BLAKE2b-256 3a24fd935f8991588d6ab09e465d50a64e0eb2db7a187e74d4c6ea82b3828810

See more details on using hashes here.

File details

Details for the file pytefas-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pytefas-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pytefas-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c1e1d63ac503f8827ed92f075cc6f67f77846727659980f274e2bb962c41ee04
MD5 a64a2df96b38a61d6be29ae2d2fbff9f
BLAKE2b-256 7b00785b0245e91e3e0df58dacbd21af8333697301ae87ae5084157cc73255bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page