Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fintables icon

Fintables

Fintables Python paketi ve CLI aracı.

Özellikler

  • Public Endpointler: Şirket detayları (company), sembol özetleri (symbol summary), analist değerlendirmeleri (analyst), çoklu arama (search).
  • Authenticated Endpointler: Finansal tablolar (symbol sheets), haber akışı (feed), favoriler (watchlist), notlar (memo).
  • Zengin Terminal Görünümü: rich destekli tablolar, renkli kartlar, rozetler ve ikonlar.
  • JSON Çıktı Desteği: Otomasyonlar ve scriptler için --output json.
  • Async-First Mimari: httpx ve pydantic v2 tabanlı.

Kurulum

pip install fintables

Yapılandırma

Kimlik bilgilerinizi .env dosyasıyla veya ortam değişkenleriyle (Environment Variables) tanımlayabilirsiniz:

1. .env Dosyası ile

.env.example dosyasını .env olarak kopyalayın ve fintables e-posta ve şifrenizi girin:

2. Ortam Değişkenleri ile

macOS / Linux (zsh / bash):

export FINTABLES_USERNAME='kullanici@ornek.com'
export FINTABLES_PASSWORD='parola#123'

Windows (PowerShell):

$env:FINTABLES_USERNAME = 'kullanici@ornek.com'
$env:FINTABLES_PASSWORD = 'parola#123'

Model Context Protocol (MCP) Yapay Zeka Entegrasyonu

fintables, Claude Desktop, Antigravity IDE, Cursor veya vLLM/Ollama destekli yapay zeka ajanlarıyla doğrudan konuşturulabilir.

MCP Sunucusunu Başlatma:

# Standart STDIO modunda çalıştırma (Claude Desktop / IDE'ler için)
fintables mcp

# veya SSE modunda
fintables mcp --transport sse

Claude Desktop / Cursor Konfigürasyonu (claude_desktop_config.json):

{
  "mcpServers": {
    "fintables": {
      "command": "fintables",
      "args": ["mcp"],
      "env": {
        "FINTABLES_EMAIL": "user@example.com",
        "FINTABLES_PASSWORD": "secretpassword"
      }
    }
  }
}

Eğer python ile sanal bir geliştirme ortamında çalışıyorsanız (.venv) o zaman

{
  "mcpServers": {
    "fintables": {
      "command": "/Users/sinan/projects/invest/.venv/bin/fintables",
      "args": ["mcp"],
      "env": {
        "FINTABLES_EMAIL": "user@example.com",
        "FINTABLES_PASSWORD": "secretpassword"
      }
    }
  }
}

gibi "command" alanına sanal geliştirme ortamının dosya yolunu vermelisiniz.

Artık Claude veya AI Ajanınıza şöyle sorular sorabilirsiniz;

  • FROTO (Ford Otosan) için Fintables'taki son KAP açıklamalarını, haber akışını ve yayınlanmış araştırma raporlarını getir. Şirketle ilgili son dönemdeki en kritik gelişme nedir?
  • ADE ve GPZ kodlu yatırım fonlarının son dönem getirilerini, risk skorlarını ve portföylerindeki varlık dağılımlarını karşılaştır.
  • TTRAK için hedef fiyat analist tahminleri nedir?

CLI Kullanımı

# Şirket bilgisi
fintables company ASELS

# Sembol özeti
fintables symbol ASELS summary

# Analist tahminleri
fintables analyst ASELS
fintables analyst ASELS --model-portfolio

# Çoklu arama
fintables search Polyester

# Finansal tablolar (Authenticated)
fintables symbol FROTO sheets
fintables symbol FROTO sheets --sheet balance --periods 5

# Haber akışı (Authenticated)
fintables feed
fintables feed FROTO

# Favori hisseler (Authenticated)
fintables watchlist add FROTO
fintables watchlist remove FROTO

# Notlar (Authenticated)
fintables memo list
fintables memo add FROTO "Beklentim pozitif"
fintables memo update 42212 "Güncellenmiş not"
fintables memo delete 42212

# Fonlar
fintables fund TLY
fintables fund MAC

# Araştırma Yazıları & Şirket Notları (Authenticated)
fintables post list                                          # tüm yazıları listele
fintables post list --filter "Şirket Notları"               # kategori filtresi
fintables post list --page 2                                 # sayfa ilerle
fintables post read altny-analist-toplantisi-notlari-2026-6 # yazıyı oku (+ benzer yazılar)
fintables post read <slug> --output json                    # JSON çıktı

# Bültenler (Authenticated)
fintables newsletter list                                    # tüm bültenleri listele
fintables newsletter list --category bist                   # kategori filtresi
fintables newsletter list --filter "Günlük"                 # başlık/kategori filtresi
fintables newsletter list --page 2                          # sayfa ilerle
fintables newsletter read endekslerde-tarihi-degisim        # bülten içeriğini oku
fintables newsletter read <slug> --output json              # JSON çıktı

# Videolar (YouTube & Borsa Programları)
fintables video list                                         # videoları listele
fintables video list --series "Haftalık Sohbetler"           # seriye göre filtrele
fintables video list --series "Halka Arz Oluyor"             # halka arz videoları
fintables video list --filter "Bilanço"                      # başlığa göre filtrele
fintables video list --page 2                                # sayfa ilerle
fintables video show bilanco-donemini-kapatiyoruz-fintables-haftalik-sohbetler-149 # detay & bölümler
fintables video show <slug> --output json                    # JSON formatında çıktı

# Ajanda / Ekonomik Takvim (Authenticated)
fintables agenda                         # bugünün ajandası (varsayılan)
fintables agenda today                   # bugün
fintables agenda thisWeek                # bu hafta
fintables agenda nextWeek                # gelecek hafta
fintables agenda thisWeek --type dividend  # sadece temettüler
fintables agenda thisWeek --type macro     # sadece makro veriler
fintables agenda thisWeek --output json    # JSON çıktı

# Sanal Portföy (Authenticated)
fintables portfolio list                                                # tüm portföyleri listele
fintables portfolio create "Benim Portföyüm"                           # yeni portföy oluştur
fintables portfolio show "Benim Portföyüm"                             # pozisyonları göster
fintables portfolio buy  "Benim Portföyüm" SASA 250000 2.76 --date 2026-09-22   # alış ekle
fintables portfolio sell "Benim Portföyüm" SASA 100000 3.10 --date 2026-09-22   # satış ekle
fintables portfolio delete "Benim Portföyüm"                           # portföyü sil (onay yok)
fintables portfolio rename "Benim Portföyüm" "Yeni İsim"               # portföy adını değiştir

# UUID ile de kullanılabilir (isimsiz veya belirsiz durumlarda)
fintables portfolio show ad857c49-d902-4f58-a57a-6429e7b40460

# Bildirimler (Authenticated)
fintables notification list                   # bildirimleri listele
fintables notification list --page-size 50    # sayfa boyutu ile listele
fintables notification unread                 # okunmamış bildirim durumu ve son okuma tarihi
fintables notification mark-read              # tüm bildirimleri okundu olarak işaretle
fintables notification list --output json     # JSON çıktısı

# Dil Desteği (i18n)
fintables --lang tr [KOMUT]                   # Türkçe CLI ve çıktılar (varsayılan: sistem dili veya tr)
fintables --lang en [COMMAND]                 # İngilizce CLI ve çıktılar
# Veya ortam değişkeni:
export FINTABLES_LANG=tr  # ya da en

Shell Otomatik Tamamlama (Autocompletion)

Terminalde fintables komutlarını ve hisse kodlarını <TAB> tuşu ile otomatik tamamlamak için kullandığınız kabuğa uygun komutla bir defalık kurulum yapabilirsiniz:

# Zsh kullanıyorsanız (Mac varsayılanı)
fintables --install-completion zsh

# Bash kullanıyorsanız
fintables --install-completion bash

# Fish kullanıyorsanız
fintables --install-completion fish

(Kurulum tamamlandıktan sonra terminalinizi kapatıp açmanız veya source ~/.zshrc çalıştırmanız yeterlidir.)

İnteraktif Shell / REPL Modu

Her komut için tekrar fintables yazmak yerine interaktif bir finans terminali ortamı başlatabilirsiniz:

fintables shell
🚀 Fintables Interactive Shell (v0.1.0)
fintables> company ASELS
fintables> symbol FROTO summary
fintables> watchlist add FROTO
fintables> exit

Python SDK Kullanımı

Paketi başka bir Python projesinde kütüphane/SDK olarak kullanmak isterseniz FintablesClient istemcisini ve endpoint fonksiyonlarını doğrudan import edebilirsiniz:

import asyncio
from fintables import FintablesClient
from fintables.api.endpoints import get_company, get_symbol_summary, add_favorite

async def main():
    async with FintablesClient() as client:
        # Şirket detayları (Public)
        company = await get_company(client, "ASELS")
        print(f"Şirket Kodu: {company.code} | Ünvan: {company.title}")

        # Sembol özeti (Public)
        summary = await get_symbol_summary(client, "ASELS")
        print(f"Sektör Sayısı: {len(summary.data.sectors)}")

        # Favori ekleme (Authenticated - .env bilgilerini kullanır)
        # res = await add_favorite(client, "ASELS")

if __name__ == "__main__":
    asyncio.run(main())

Yasal Uyarı (Disclaimer)

Önemli: Bu proje tamamen eğitim ve kişisel kullanım amacıyla geliştirilmiş açık kaynaklı gayriresmi bir araçtır.

  • Fintables (Fintables Bilişim Teknolojileri A.Ş.) ile hiçbir resmi bağı, ortaklığı veya sponsorluğu yoktur.
  • Bu araç finansal tavsiye, yatırım tavsiyesi veya alım-satım önerisi sunmaz.
  • Verilerin doğruluğu, güncelliği veya eksiksizliği konusunda herhangi bir garanti verilmez. Veri sağlayıcısından alınan verilerin kullanımında doğabilecek her türlü sorumluluk kullanıcıya aittir.
  • Yazılım "olduğu gibi" (AS IS) sunulmaktadır; yazar ve geliştiriciler doğabilecek doğrudan veya dolaylı hiçbir zarardan sorumlu tutulamaz.

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır.

About

An unofficial SDK and CLI tool for fintables.com

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages