# Python ile borsa verisi çekme: API'ler ve örnek kod

Adres: https://fincodelabs.com/blog/python-ile-borsa-verisi-cekme · Yayıncı: Fincode (Fincode Yazılım ve Teknoloji A.Ş.), İstanbul, Türkiye · Kategori: Algoritmik işlem · Yayın: 2026-10-18 · Güncelleme: 2026-11-05

Python ile borsa verisi çekme: mum verisi için çalışan örnek kod, hız limitleri, UTC ve Türkiye saati, TCMB EVDS, TEFAS ve Borsa İstanbul verisi.

**Kısa cevap:** Python ile borsa verisi, veri sağlayıcının resmi API'sine HTTP isteği gönderilip dönen JSON yanıtının *pandas* tablosuna çevrilmesiyle çekilir. Kripto borsalarının piyasa verisi uç noktaları çoğunlukla anahtarsız ve ücretsizdir; TCMB EVDS ücretsiz üyelikle verilen bir API anahtarı ister, Borsa İstanbul verisinin dağıtımı ve algoritmik kullanımı ise lisansa tabidir.

Bir stratejiyi test etmek, gösterge hesaplamak veya portföy izlemek için önce düzenli ve doğru zaman damgalı bir fiyat serisi gerekir. Python'da bu iş genellikle iki kütüphaneyle yapılır: `requests` HTTP isteğini gönderir, `pandas` yanıtı zaman indeksli bir tabloya dönüştürür. Zor olan kod değil; hangi kaynağın hangi koşulla veri verdiği, hız limitleri ve saat dilimidir.

Aşağıda BtcTurk'ün herkese açık mum verisi uç noktasıyla çalışan ve 5 Kasım 2026'da çalıştırılarak denenmiş kısa bir örnek kod, ardından TCMB EVDS, TEFAS ve Borsa İstanbul verisine erişim koşulları yer alıyor. Örnekteki işlem çifti yalnızca gösterim amaçlıdır; bir kripto varlık veya platform önerisi değildir. Btcturk unvanlı platform, SPK'nın Faaliyette Bulunanlar Listesi'nde yer aldığı ve anahtarsız piyasa verisini belgelediği için örnek alınmıştır; listede yer almak yetkilendirme anlamına gelmez. Yazı hesap açmayı, anahtar oluşturmayı veya emir göndermeyi anlatmaz. 6362 sayılı Kanun'un 99/A maddesine göre yurt dışında yerleşik platformların Türkiye'de yerleşik kişilere yönelik faaliyeti izinsiz kripto varlık hizmet sağlayıcılığı sayılır. Türkiye'de kripto varlık hizmeti sunan platformların izin çerçevesi [kripto varlık hizmet sağlayıcı](https://fincodelabs.com/blog/kripto-varlik-hizmet-saglayici-nedir) yazısında ele alınıyor.

## Python ile hangi kaynaklardan veri çekilebilir?

Kaynak seçimi, verinin ne için kullanılacağına bağlıdır: kişisel analiz, bir uygulamada gösterim ve otomatik işlem sistemleri için koşullar farklıdır. Ekim 2026 itibarıyla başlıca kaynakların erişim koşulları şöyledir:

| Kaynak | Erişim yolu | Kimlik doğrulama | Dikkat edilecek nokta |
| --- | --- | --- | --- |
| Kripto platformu piyasa verisi (örnek kodda BtcTurk dokümanı) | REST API (mum, işlem, emir defteri) | Gerekmez | IP başına hız limiti; zaman damgaları UTC |
| TCMB EVDS | EVDS web servisi | Ücretsiz üyelikle alınan API anahtarı | İstek başına en fazla 1.000 gözlem |
| TEFAS | Web sitesindeki ekranlar | Yok | TEFAS'a göre API paylaşımı yapılmıyor |
| Borsa İstanbul | Lisanslı veri dağıtıcıları ve aracı kurum platformları | Sözleşme ve lisans | Gösterimsiz (algoritmik) kullanım için doğrudan sözleşme gerekir |
| Aracı kurum API'leri | Kurumun sunduğu kanal | Hesap ve kurum onayı | Kapsam ve koşullar kurumdan kuruma değişir |

Hisse ve fon verisinde teknik erişimden önce kullanım hakkı sorusu gelir; bu konu son bölümde ele alınıyor.

## Mum (kline) verisi nasıl çekilir?

Mum verisi (kline veya candlestick), her zaman aralığı için açılış, en yüksek, en düşük ve kapanış fiyatını ve hacmi verir. BtcTurk dokümanına göre bu veri `GET https://graph-api.btcturk.com/v1/klines/history` adresinden alınır; uç nokta herkese açık uç noktalar arasındadır ve kimlik doğrulama gerektirmez. Bakiye ve emir gibi hesaba özel uç noktalar ise imzalı istek ister ve bu yazının konusu değildir; anahtar izinleri ve güvenliği [API anahtarı](https://fincodelabs.com/blog/api-anahtari-nedir) yazısında anlatılıyor.

5 Kasım 2026 itibarıyla dokümandaki parametreler:

- **symbol**: BTCTRY gibi işlem çifti.
- **resolution**: dakika olarak 1, 15, 30, 60 veya 240; doküman ayrıca 1 gün, 1 hafta ve 1 yıl seçeneklerini sayar. Aynı tarihteki denemede bu uzun aralıklar `1D`, `1W` ve `1Y` yazımıyla çalıştı.
- **from** ve **to**: saniye cinsinden Unix zamanı. Milisaniye verilmez.

Yanıt, her mum için ayrı bir dizi yerine aynı uzunlukta paralel listeler döndürür: `t` zaman damgası, `o` açılış, `h` en yüksek, `l` en düşük, `c` kapanış, `v` hacim. Bu uç noktada fiyatlar sayı olarak gelir. Doküman tek istekte istenebilecek aralığı yazmaz. 5 Kasım 2026'daki denemede 1 dakikalık çözünürlükte 7 günlük aralık döndü, 8 günlük aralık `INVALID_RESOLUTION_FOR_TIME_INTERVAL` hatası verdi; 60 dakikalık çözünürlükte 400 gün döndü, 500 gün aynı hatayı verdi. Sınır kabaca 10.000 mumluk aralıkta göründüğü için uzun dönemler parçalara bölünerek çekilir.

## Örnek kod: requests ve pandas ile saatlik mum verisi

Aşağıdaki fonksiyon, Türkiye saatiyle verilen iki tarih arasındaki mumları parça parça çeker, tekrarları, istenen aralığın dışındaki satırları ve henüz kapanmamış mumu atar, zaman damgalarını Türkiye saatine çevirir. Yalnızca `requests` ve `pandas` paketleri gerekir.

```python
# Gerekli paketler: pip install requests pandas
import time
import requests
import pandas as pd

URL = "https://graph-api.btcturk.com/v1/klines/history"  # anahtarsız, herkese açık
ALANLAR = {"o": "acilis", "h": "yuksek", "l": "dusuk", "c": "kapanis", "v": "hacim"}

def mum_cek(sembol, dakika, baslangic, bitis):
    # Tarihler Türkiye saatiyle verilir, API'ye UTC saniye olarak gider
    bas = int(pd.Timestamp(baslangic, tz="Europe/Istanbul").timestamp())
    son = int(pd.Timestamp(bitis, tz="Europe/Istanbul").timestamp())
    adim = 10_000 * dakika * 60  # tek istekte en fazla 10.000 mumluk aralık
    parcalar, sira = [], bas
    while sira < son:
        parametre = {"symbol": sembol, "resolution": dakika, "from": sira,
                     "to": min(sira + adim, son) - 1}
        yanit = requests.get(URL, params=parametre, timeout=10)
        if yanit.status_code == 429:  # hız limiti aşıldı: istenen süre kadar beklenir
            time.sleep(int(yanit.headers.get("Retry-After", "60")))
            continue
        yanit.raise_for_status()  # diğer hatalarda durulur
        govde = yanit.json()
        if govde.get("t"):  # veri yoksa t boş liste gelir
            parcalar.append(pd.DataFrame({k: govde[k] for k in ["t", *ALANLAR]}))
        sira += adim
        time.sleep(1)  # istekler aralıklı gönderilir

    df = pd.concat(parcalar).drop_duplicates("t").rename(columns=ALANLAR)
    df = df[(df["t"] >= bas) & (df["t"] < son)]  # istenen aralığın dışı atılır
    df = df[df["t"] + dakika * 60 <= time.time()].copy()  # kapanmamış mum atılır
    df["zaman"] = (pd.to_datetime(df["t"], unit="s", utc=True)
                   .dt.tz_convert("Europe/Istanbul"))
    return df.set_index("zaman")[list(ALANLAR.values())].sort_index()

veri = mum_cek("BTCTRY", 60, "2026-09-01", "2026-10-01")
print(len(veri))  # 30 gün × 24 saat = 720 mum
print(veri.tail(3))
```

Kod, 5 Kasım 2026'da Python 3.11, requests 2.31 ve pandas 2.2 ile çalıştırıldı ve şu çıktıyı verdi (fiyatlar TL cinsindendir; satırlar yalnızca çıktının biçimini gösterir, öneri değildir):

```
720
                              acilis     yuksek      dusuk    kapanis     hacim
zaman
2026-09-30 21:00:00+03:00  4119359.0  4120804.0  4107557.0  4114615.0  1.001224
2026-09-30 22:00:00+03:00  4115156.0  4115187.0  4092899.0  4098569.0  1.109237
2026-09-30 23:00:00+03:00  4098610.0  4105731.0  4094305.0  4099250.0  0.545527
```

Eylül 2026 için 720 saatlik mum tek istekte döndü, ilk satırın zaman damgası 2026-09-01 00:00:00+03:00 oldu. Aynı fonksiyon 1 dakikalık çözünürlükte 11 günlük dönemi iki istekte, 60 dakikalık çözünürlükte iki yıllık dönemi yine iki istekte aldı; zaman damgaları tekrarsızdı. `timeout` parametresi bilinçli olarak eklenmiştir: requests dokümantasyonuna göre zaman aşımı açıkça belirtilmezse istek hiç zaman aşımına uğramaz ve program süresiz bekleyebilir.

## Borsa API JSON yanıtı nasıl okunur, GitHub'daki örnekler nasıl seçilir?

Borsa API'lerinin çoğu yanıtı JSON olarak verir: süslü parantez alan adlarını, köşeli parantez listeleri taşır. Alanlar kaynaktan kaynağa değiştiği için kod yazılmadan önce dokümandaki ve canlı yanıttaki biçim karşılaştırılır. Aşağıdaki örnek, BtcTurk'ün herkese açık `/api/v2/orderbook` uç noktasının yapısını varsayımsal sayılarla gösterir. Btcturk unvanlı platform SPK'nın Faaliyette Bulunanlar Listesi'nde yer alır; listede yer almak yetkilendirme anlamına gelmez ve örnek platform önerisi değildir. Ayrıntılar [BtcTurk API](https://fincodelabs.com/blog/btcturk-api-nasil-kullanilir) yazısında.

```python
import pandas as pd

# Varsayımsal değerlerle örnek yanıt
yanit = {"data": {"timestamp": 1793832849654,
                  "bids": [["100.10", "2.5"], ["100.05", "1.0"]],
                  "asks": [["100.20", "0.8"], ["100.25", "3.1"]]},
         "success": True, "message": None, "code": "SUCCESS"}

alis = pd.DataFrame(yanit["data"]["bids"], columns=["fiyat", "miktar"]).astype(float)
print(alis["miktar"].sum())  # 3.5
```

Fiyat ve miktar metin olarak gelebilir, bu yüzden hesaptan önce sayıya çevrilir. Zaman damgası milisaniye cinsindendir. Durum alanları da dokümandan sapabilir: BtcTurk dokümanındaki örnek yanıtta `code` alanı 0 iken 4 Kasım 2026'daki canlı yanıtta `SUCCESS` geldi; başarı denetimi bu yüzden `success` alanından yapılır.

### Borsa API GitHub aramasında nelere bakılır?

GitHub'da bulunan bir depo, veri sağlayıcısının resmi aracı olmayabilir; kopyalamadan önce dört nokta okunur:

- **Kaynak:** Depoya sağlayıcının kendi dokümanı bağlantı veriyor mu? BtcTurk dokümanındaki C# örneği, kurumun GitHub adresindeki istemci kütüphanesini gösterir.
- **Kullanım hakkı:** Bir web sayfasından veri kazıyan kod çalışsa bile kullanım hakkı vermez; Borsa İstanbul ve TEFAS koşulları son bölümde yer alıyor.
- **Bakım ve lisans:** Son değişiklik tarihi, açık hata kayıtları ve lisans dosyası kontrol edilir.
- **Anahtar güvenliği:** Kod okunmadan hiçbir depoya gerçek anahtar verilmez.

## Hız limitleri ve hata kodları

BtcTurk'te hız limitleri uç noktaya göre değişir. 5 Kasım 2026 itibarıyla Rate Limits sayfasında `graph-api.btcturk.com` adresinin geneli için sınır 10 dakikada 600 istektir, IP başına uygulanır ve aşıldığında engel de 10 dakika sürer. Limit aşılınca sunucu 429 kodunu ve kaç saniye beklenmesi gerektiğini bildiren `Retry-After` başlığını döner. Örnek kod bu yüzden 429'da bekler, geçersiz çözünürlük gibi diğer hatalarda durur ve istekler arasına 1 saniye koyar.

> **Varsayımsal örnek:** Bir yıllık 1 dakikalık veri 365 × 24 × 60 = 525.600 mumluk bir aralıktır. Parça başına 10.000 mumla 53 istek gerekir (525.600 ÷ 10.000 = 52,56). Bu sayı 10 dakikadaki 600 sınırının altında kalır; istekler arasına 1 saniye bekleme konduğunda indirme yaklaşık 53 saniye sürer (yanıt süreleri hariç). Veriyi bir kez CSV veya Parquet dosyasına kaydedip sonraki çalıştırmalarda yalnızca eksik kısmı çekmek limiti korur.

Canlı fiyatı saniyede bir REST ile sorgulamak bu limitleri hızla tüketir; sürekli değişen veri için WebSocket akışları kullanılır. İki kanalın farkı [REST ve WebSocket](https://fincodelabs.com/blog/rest-websocket-api-farki) yazısında anlatılıyor.

## Zaman damgası ve saat dilimi: UTC ile Türkiye saati

BtcTurk dokümanına göre sunucular UTC kullanır; zaman damgaları milisaniye cinsindendir, OHLC grafik verisi ise saniye döndürür. Mum uç noktasının `from` ve `to` parametreleri de `t` alanı da saniye cinsindendir. Türkiye saati (Europe/Istanbul) UTC'nin 3 saat ilerisinde olduğundan, çevrilmemiş bir seride bütün mumlar 3 saat kaymış görünür. Örnek kod tarihleri Türkiye saatiyle alıp UTC saniyeye çevirir; dönüşte `pd.to_datetime(..., unit="s", utc=True)` ile UTC'ye bağlı zaman damgası üretip `tz_convert` ile Türkiye saatine taşır. pandas dokümantasyonuna göre `utc=True` verildiğinde sonuç her zaman saat dilimi bilgisi taşıyan UTC zaman damgasıdır. Saat dilimi bilgisi olmayan (naif) zaman damgalarıyla çalışmak, farklı kaynaklardan gelen serileri birleştirirken sessiz hatalara yol açar.

Günlük mumlarda bir ayrıntı daha vardır: 5 Kasım 2026'daki denemede `1D` mumlarının açılış zamanı Türkiye saatiyle 03.00 olarak döndü, yani gün sınırı 00.00 UTC'dir. Başlangıcı 1 Eylül 00.00 (Türkiye saati) olan istekte ilk mum 31 Ağustos 03.00'te açıldı; başlangıcı içeren mum da yanıta girer. Günlük kapanışa dayanan bir stratejide hangi tanımın kullanıldığı sonucu değiştirebilir.

Bitiş sınırı da denetlenir: `to` değeri 1 Ekim 00.00'dan bir saniye önceye ayarlandığında saatlik seride 1 Ekim 00.00 mumu da döndü. Örnek kod bu yüzden istenen aralığın dışındaki satırları atar. Henüz kapanmamış son mum ayrı bir tuzaktır: aynı denemede saat 08.15'te yapılan istek 08.00 mumunu da döndürdü ve böyle bir mumun fiyatları her istekte değişir. Bu mum bir kuralın hesabına girerse geçmişte hiç oluşmamış tetiklenmeler üretilebilir; örnek kod bu yüzden kapanış zamanı şimdiki andan sonra olan mumu atar.

## Veri temizliği: tekrarlar, boşluklar ve düzeltmeler

- **Tekrarlar:** Parçalı çekimde iki yanıtın sınırındaki mum iki kez gelebilir; seri zaman damgasına göre tekilleştirilir.
- **Boşluklar:** 5 Kasım 2026'daki denemede Eylül 2026'nın 15 dakikalık serisinde 2.880 yerine 2.867 mum döndü. Eksik 13 aralığın tamamı Türkiye saatiyle 02.45 ile 07.45 arasındaydı ve dönen hiçbir mumda hacim sıfır değildi; bu görünüm işlem olmayan aralıkta mum üretilmediğine işaret eder, ancak doküman bu konuda bir kural yazmaz. Platform bakımı veya işlem durdurmaları da seride eksik mumlar bırakabilir. Ardışık zaman damgaları arasındaki fark (`veri.index.to_series().diff()`) beklenen aralıkla karşılaştırılarak boşluklar bulunur. Eksik mumlar uydurma değerlerle doldurulmaz, ayrıca işaretlenir.
- **Sayı biçimi:** Bu uç noktada fiyatlar sayı olarak gelir, emir defteri uç noktasında ise metin olarak gelebilir; metin değerler kayan noktalı sayıya çevrilir. Gösterge hesabı için bu yeterlidir; emir miktarı veya muhasebe hesabında ondalık hassasiyeti korumak için Python'un `decimal` modülü kullanılabilir.
- **Kurumsal işlemler:** Pay verisinde temettü ve sermaye artırımları geçmiş fiyatların düzeltilmesini gerektirir; düzeltilmemiş seri yaşanmamış düşüşler içerir. Bu ve diğer test tuzakları [backtest](https://fincodelabs.com/blog/backtest-nedir) yazısında anlatılıyor.

Temizlenen veri, bir stratejinin geçmişte nasıl çalışacağını ölçmekte kullanılır. Sonraki adım, stratejiyi canlı veriyle ama gerçek para kullanmadan izlemektir; bu aşama [paper trading](https://fincodelabs.com/blog/paper-trading-nedir) yazısında ele alınıyor.

## TCMB EVDS, TEFAS ve Borsa İstanbul verisine nasıl erişilir?

### TCMB EVDS

TCMB'nin Elektronik Veri Dağıtım Sistemi (EVDS), döviz kuru, faiz ve enflasyon gibi serileri web servisiyle sunar. Ekim 2026 itibarıyla geçerli EVDS web servis kılavuzuna göre servisi kullanmak için kayıtlı kullanıcı olmak gerekir; API anahtarı, oturum açıldıktan sonra Profilim sayfasındaki API Key Kopyala seçeneğiyle alınır. Anahtar adrese değil, HTTP isteğinin başlığına `key` adıyla eklenir. Kılavuz, anahtarı göndermeyen veya yanlış gönderen isteğin 403 Forbidden hatası alacağını belirtir; 18 Ekim 2026'daki denemede anahtarsız istek 403, geçersiz anahtarlı istek ise 401 (Invalid API Key) koduyla reddedildi. Hata yönetiminde iki kod da dikkate alınır.

İstek adresi `https://evds3.tcmb.gov.tr/igmevdsms-dis/series=SERİ_KODU&startDate=01-01-2026&endDate=31-12-2026&type=json` biçimindedir. Tarihler gg-aa-yyyy biçiminde yazılır, birden fazla seri kodu "-" işaretiyle ayrılır, yanıt csv, xml veya json olarak alınabilir. Bir istekte en fazla 1.000 gözlem döner; daha uzun bir aralık istenirse bitiş tarihinden geriye doğru 1.000 gözlem getirilir. Kılavuz, verilerin en sık günlük frekansta güncellendiğini ve bu nedenle web servisten günde bir kez veri çekildiğini belirtir. EVDS kullanım şartlarına göre veriler kaynak gösterilerek kullanılabilir ve yayımlanabilir; TCMB sorgu sayısına teknik limit uygulayabilir.

### TEFAS

TEFAS'ın sıkça sorulan sorular sayfasına göre platformdaki veriler finansal okuryazarlığı artırmak amacıyla paylaşılır ve API paylaşımı yapılmaz; aynı cevap, Borsa İstanbul tarafından dağıtılan veriler için Borsa İstanbul'un ilgili birimine yönlendirir. Fon fiyatları ve portföy dağılımları sitedeki ekranlardan izlenir; sitenin işleyişi [TEFAS nedir](https://fincodelabs.com/blog/tefas-nedir) yazısında anlatılıyor. Web sayfalarının arka planında kullanılan istekler belgelenmiş bir arayüz değildir; önceden duyurulmadan değişebilir.

### Borsa İstanbul

Borsa İstanbul'un veri dağıtımına ilişkin sıkça sorulan sorularına göre Borsa İstanbul verilerini dağıtmak için Dağıtıcı veya Alt Dağıtıcı olarak lisans alınması gerekir. Gecikmeli veri de bu çerçevededir: alt dağıtıcıların yetki alabildiği, kullanıcı başına ücrete tabi olmayan veriler arasında sayılır. Verinin ekranda gösterilmeden işlenmesi, yani risk yönetimi, emir yönlendirme ve otomatik-algoritmik işlem sistemleri gibi gösterimsiz kullanım için doğrudan Borsa İstanbul ile Veri Dağıtım Sözleşmesi imzalanması gerekir. Bireysel yatırımcı gerçek zamanlı veriye genellikle aracı kurumunun lisanslı platformu üzerinden erişir; bir botun bu veriyle emir üretip üretemeyeceği kurumun sunduğu kanala ve sözleşme koşullarına bağlıdır. Müşterinin yazılı olarak belirlediği kuralların yazılıma dönüştürülmesi işi [borsa API entegrasyonu](https://fincodelabs.com/hizmetler/borsa-api-entegrasyonu) sayfasındadır; Fincode strateji önermez, kararlar müşteriye aittir.

## Sık sorulan sorular

### Kripto piyasa verisi çekmek için API anahtarı gerekir mi?

Örnekteki piyasa verisi uç noktaları için gerekmez; mum, işlem ve emir defteri verisi anahtarsız alınır. Bakiye sorgulama ve emir gönderme gibi hesaba özel işlemler ise API anahtarı ve imzalı istek gerektirir.

### Borsa İstanbul hisse verisi Python ile ücretsiz çekilebilir mi?

Borsa İstanbul verilerinin dağıtımı lisansa tabidir ve algoritmik işlem gibi gösterimsiz kullanım için doğrudan Borsa İstanbul ile sözleşme gerekir. Bireysel kullanımda veri, aracı kurumun lisanslı platformu ve sunduğu kanallar üzerinden alınır.

### TCMB EVDS API anahtarı nasıl alınır?

EVDS'ye üye olunup oturum açıldıktan sonra Profilim sayfasındaki API Key Kopyala seçeneğiyle alınır. Anahtar, web servis isteklerinde HTTP başlığına key adıyla eklenir; anahtarsız istek 403, geçersiz anahtarlı istek ise 18 Ekim 2026 itibarıyla 401 hatasıyla reddedilir.

### TEFAS verileri API ile alınabilir mi?

TEFAS'ın sıkça sorulan sorular sayfasına göre API paylaşımı yapılmıyor; veriler sitedeki ekranlardan izleniyor. Sayfaların arka planda kullandığı istekler belgelenmiş bir arayüz değildir.

## Kaynaklar

- [BtcTurk API dokümanı: Get Kline Data](https://docs.btcturk.com/docs/public-endpoints/get-kline-data/)
- [BtcTurk API dokümanı: General Information (zaman damgaları)](https://docs.btcturk.com/docs/general-information/)
- [BtcTurk API dokümanı: FAQ (sunucu saat dilimi)](https://docs.btcturk.com/docs/faq-frequently-asked-questions/)
- [BtcTurk API dokümanı: All Public Endpoints](https://docs.btcturk.com/docs/public-endpoints/all-public-endpoints/)
- [BtcTurk API dokümanı: Rate Limits](https://docs.btcturk.com/docs/private-endpoints/rate-limits/)
- [SPK: Faaliyette Bulunanlar Listesi (5 Kasım 2026'da kontrol edildi)](https://spk.gov.tr/kurumlar/kripto-varlik-hizmet-saglayicilar/faaliyette-bulunanlar-listesi)
- [TCMB EVDS: Web Servis ve API Kullanımı kılavuzu](https://evds3.tcmb.gov.tr/igmevdsms-dis/documents/showDocument?docId=8)
- [TCMB EVDS: Kullanım Şartları](https://evds3.tcmb.gov.tr/igmevdsms-dis/documents/showDocument?docId=18)
- [TEFAS: Sıkça Sorulan Sorular (API ile erişim)](https://www.tefas.gov.tr/tr/sss)
- [Borsa İstanbul: Veri Dağıtım ve Endeks Lisanslama SSS](https://www.borsaistanbul.com/sss/veri-dagitim-ve-endeks-lisanslama)
- [Requests: Quickstart (Timeouts)](https://requests.readthedocs.io/en/latest/user/quickstart/)
- [pandas: pandas.to_datetime](https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html)
- [BtcTurk API dokümanı: Get OrderBook](https://docs.btcturk.com/docs/public-endpoints/orderbook/)
- [6362 sayılı Sermaye Piyasası Kanunu, md. 99/A](https://www.mevzuat.gov.tr/mevzuatmetin/1.5.6362.pdf)

> Burada yer alan yatırım bilgi, yorum ve tavsiyeleri yatırım danışmanlığı kapsamında değildir. Yatırım danışmanlığı hizmeti, yetkili kuruluşlar tarafından kişilerin risk ve getiri tercihleri dikkate alınarak kişiye özel sunulmaktadır. Burada yer alan yorum ve tavsiyeler ise genel niteliktedir. Bu tavsiyeler mali durumunuz ile risk ve getiri tercihlerinize uygun olmayabilir. Bu nedenle, sadece burada yer alan bilgilere dayanılarak yatırım kararı verilmesi beklentilerinize uygun sonuçlar doğurmayabilir.

---

Bu sayfa, İstanbul merkezli yazılım şirketi Fincode (Fincode Yazılım ve Teknoloji A.Ş.) tarafından yayımlanmıştır: https://fincodelabs.com/blog/python-ile-borsa-verisi-cekme

Kaynak gösterimi: Fincode, "Python ile borsa verisi çekme: API'ler ve örnek kod", güncelleme 5 Kasım 2026, https://fincodelabs.com/blog/python-ile-borsa-verisi-cekme
