Skip to main content

Python SDK for Invezgo API - Indonesian Stock Market Data

Project description

Invezgo Python SDK - API Saham Indonesia

Python Version License PyPI

Python SDK untuk mengakses Invezgo API - Platform data saham Indonesia terlengkap dengan data real-time dari Bursa Efek Indonesia (BEI).

Tentang Invezgo API

Invezgo API menyediakan akses data saham Indonesia yang komprehensif untuk kebutuhan analisis teknikal, fundamental, dan trading. Data mencakup seluruh perusahaan tercatat di BEI dengan update real-time dan historis.

Fitur Utama

  • Data Saham Real-time - Harga, volume, dan order book real-time dari BEI
  • Data Historis Lengkap - Chart OHLCV dan data perdagangan historis
  • Analisis Broker - Broker summary, inventory chart, dan stalker
  • Kepemilikan Saham - Data KSEI, insider trading, shareholder composition
  • Laporan Keuangan - Financial statement dan key statistics perusahaan
  • Indikator Teknikal - Berbagai indikator untuk analisis teknikal
  • Type Hints - Full type hints untuk better IDE support
  • Error Handling - Comprehensive error handling

Instalasi

pip install invezgo-sdk

Quick Start

from invezgo import InvezgoClient

# Inisialisasi client dengan API key
client = InvezgoClient(api_key="your-api-key-here")

# Contoh: Dapatkan daftar saham
stocks = client.analysis.get_stock_list()
print(stocks)

# Contoh: Dapatkan informasi perusahaan
info = client.analysis.get_information(code="BBCA")
print(info)

# Contoh: Dapatkan chart harga saham
chart = client.analysis.get_chart_stock(
    code="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30"
)
print(chart)

Dokumentasi Lengkap API Saham Indonesia

Authentication

Semua request memerlukan API key yang valid. Dapatkan API key di Invezgo API Settings.

client = InvezgoClient(api_key="your-api-key")

Data Master Saham Indonesia

Daftar Saham, Broker, dan Index

# Daftar semua saham yang tercatat di BEI
stocks = client.analysis.get_stock_list()

# Daftar semua broker/sekuritas di BEI
brokers = client.analysis.get_broker_list()

# Daftar semua index (IHSG, LQ45, IDX30, sektoral, dll)
indexes = client.analysis.get_index_list()

Informasi Perusahaan

# Informasi lengkap perusahaan
info = client.analysis.get_information(code="BBCA")

Data Real-time Saham Indonesia

Intraday dan Order Book

# Intraday chart saham
intraday = client.analysis.get_intraday(code="BBCA", market="RG")

# Order book saham (bid/offer)
order_book = client.analysis.get_order_book(code="BBCA", market="RG")

# Intraday data ringkas
intraday_data = client.analysis.get_intraday_data(code="BBCA", market="RG")

# Intraday data untuk index
index_intraday = client.analysis.get_intraday_index(code="COMPOSITE", market="RG")

Chart dan Harga Saham Indonesia

# Chart harga saham lengkap dengan OHLCV
chart = client.analysis.get_chart_stock(
    code="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30"
)

# Chart index (IHSG, LQ45, dll)
index_chart = client.analysis.get_chart_index(
    code="COMPOSITE",
    from_date="2024-12-01",
    to_date="2024-12-30"
)

# Chart dengan indikator teknikal (bdm, foreign, ritel, ratio)
indicator_chart = client.analysis.get_chart_indicator(
    code="BBCA",
    indicator="bdm",
    from_date="2024-12-01",
    to_date="2024-12-30"
)

Top Gainer & Loser Harian

# Top gainer dan loser harian
top_change = client.analysis.get_top_change(date="2024-12-30")

# Top akumulasi dan distribusi asing
top_foreign = client.analysis.get_top_foreign(date="2024-12-30")

# Top akumulasi dan distribusi bandarmologi
top_bdm = client.analysis.get_top_accumulation(date="2024-12-30")

# Top akumulasi dan distribusi ritel
top_ritel = client.analysis.get_top_ritel(date="2024-12-30")

Analisis Broker Saham Indonesia

Broker Summary

# Broker summary per saham
summary = client.analysis.get_summary_stock(
    code="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30",
    investor="all",  # all, f (foreign), d (domestic)
    market="RG"
)

# Broker summary per broker (bisa multiple broker)
broker_summary = client.analysis.get_summary_broker(
    code="AG,AK",  # bisa single atau multiple dipisah koma
    from_date="2024-12-01",
    to_date="2024-12-30",
    investor="all",
    market="RG"
)

Broker Stalker

# Melacak aktivitas broker pada saham tertentu
stalker = client.analysis.get_broker_stalker(
    broker="AG",
    stock="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30",
    investor="all",
    market="RG",
    scope="value"
)

# Daftar saham yang diperdagangkan broker
stalker_list = client.analysis.get_broker_stalker_list(
    code="AG",
    from_date="2024-12-01",
    to_date="2024-12-30",
    investor="all",
    scope="value",
    market="RG"
)

Inventory Chart

# Inventory chart saham
inventory = client.analysis.get_inventory_chart_stock(
    code="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30",
    scope="val",  # vol, val, freq
    investor="all",  # all, f, d
    market="RG"
)

# Inventory chart broker
broker_inventory = client.analysis.get_inventory_chart_broker(
    code="AG",
    from_date="2024-12-01",
    to_date="2024-12-30",
    scope="val",
    investor="all",
    market="RG"
)

Kepemilikan Saham (Shareholder)

Komposisi Kepemilikan

# Komposisi kepemilikan saham (pengendali, direksi, masyarakat)
shareholders = client.analysis.get_shareholder(code="BBCA")

# Jumlah pemegang saham historis
shareholder_number = client.analysis.get_shareholder_number(code="BBCA")

# Kepemilikan KSEI (klasifikasi investor asing/domestik)
ksei = client.analysis.get_shareholder_ksei(code="BBCA", range_months=6)

# Detail kepemilikan 5%
detail = client.analysis.get_shareholder_detail(code="BBCA", name="NAMA PEMEGANG")

# Detail kepemilikan 1%
detail_one = client.analysis.get_shareholder_detail_one(code="BBCA", name="NAMA PEMEGANG")

# Graph relasi kepemilikan
relation = client.analysis.get_shareholder_relation(
    code="BBCA",
    depth=3,
    max_nodes=120
)

Insider Trading

# Perubahan kepemilikan diatas 5%
above = client.analysis.get_shareholder_above(
    from_date="2024-12-01",
    to_date="2024-12-30",
    page=1,
    limit=10
)

# Chart kepemilikan diatas 5%
above_chart = client.analysis.get_shareholder_above_chart(
    code="BBCA",
    broker="AG",
    name="NAMA PEMEGANG"
)

# Perubahan kepemilikan diatas 1%
one = client.analysis.get_shareholder_one(
    from_date="2024-12-01",
    to_date="2024-12-30"
)

# Insider trading (direksi, komisaris)
insider = client.analysis.get_shareholder_insider(
    from_date="2024-12-01",
    to_date="2024-12-30"
)

Analisis Sektoral Saham Indonesia

# Sector stalker - pergerakan index sektoral
sector = client.analysis.get_sector_stalker(
    from_date="2024-12-01",
    to_date="2024-12-30",
    base="COMPOSITE"
)

# Sector rotation chart
rotation = client.analysis.get_sector_rotation(
    from_date="2024-12-01",
    to_date="2024-12-30",
    base="COMPOSITE",
    length=10,
    tail=5
)

Laporan Keuangan dan Fundamental

# Laporan keuangan (BS: Balance Sheet, IS: Income Statement, CF: Cash Flow)
financial = client.analysis.get_financial_statement(
    code="BBCA",
    statement="BS",
    type_period="Q",  # FY, Q, Q1, Q2, Q3, Q4
    limit=10
)

# Chart laporan keuangan
financial_chart = client.analysis.get_financial_statement_chart(
    code="BBCA",
    statement="BS",
    type_period="Q",
    limit=10,
    account="ACCOUNT_ID"
)

# Key statistics
keystat = client.analysis.get_keystat(
    code="BBCA",
    type_period="Q",
    limit=10
)

# Chart key statistics
keystat_chart = client.analysis.get_keystat_chart(
    code="BBCA",
    type_period="Q",
    limit=10,
    name="PER"  # PER, PBV, ROE, dll
)

Data Real-time Lanjutan

# Momentum chart
momentum = client.analysis.get_momentum_chart(
    code="BBCA",
    date="2024-12-30",
    range_minutes=60,
    scope="value"
)

# Intraday inventory chart
intraday_inventory = client.analysis.get_intraday_inventory_chart(
    code="BBCA",
    date="2024-12-30",
    range_minutes=60,
    type_name="value",
    total=10,
    buyer="ALL",
    seller="ALL",
    market="RG"
)

# Sankey/Crossing chart
sankey = client.analysis.get_sankey_chart(
    code="BBCA",
    date="2024-12-30",
    type_name="value",
    buyer="ALL",
    seller="ALL",
    market="RG"
)

# Price table (transaksi per harga)
price_table = client.analysis.get_price_table(code="BBCA", date="2024-12-30")

# Time table (transaksi per waktu)
time_table = client.analysis.get_time_table(
    code="BBCA",
    date="2024-12-30",
    range_minutes=60
)

# Price diary (histori harga harian)
price_diary = client.analysis.get_price_diary(code="BBCA")

# Price seasonality (histori harga bulanan)
seasonality = client.analysis.get_price_seasonality(code="BBCA", range_months=12)

Kalender Corporate Action

# Kalender corporate action (dividen, rights issue, dll)
calendar = client.analysis.get_calendar()

Personal Features

Watchlists

# Daftar watchlist
watchlists = client.watchlists.list(group="default")

# Tambah watchlist baru
client.watchlists.add(data={"code": "BBCA", "group": "default"})

# Update watchlist
client.watchlists.update(id="watchlist-id", data={"note": "Catatan"})

# Hapus watchlist
client.watchlists.delete()

# Daftar grup watchlist
groups = client.watchlists.list_group()

Journals (Jurnal Trading)

# Daftar transaksi jurnal
transactions = client.journals.list(from_date="2024-12-01", to_date="2024-12-30")

# Tambah transaksi jurnal
client.journals.add(data={"code": "BBCA", "type": "buy", "price": 8000, "lot": 10})

# Ringkasan transaksi
summary = client.journals.get_summary(from_date="2024-12-01", to_date="2024-12-30")

# Update catatan transaksi
client.journals.update_note(id="journal-id", data={"note": "Catatan"})

# Ekstrak jurnal dari file
client.journals.extract_from_file(file_data={"file": "..."})

Portfolios

# Daftar portofolio
portfolios = client.portfolios.list()

# Ringkasan portofolio
summary = client.portfolios.get_summary()

Realized Trades

# Daftar transaksi terealisasi
trades = client.trades.list(from_date="2024-12-01", to_date="2024-12-30")

# Ringkasan transaksi
summary = client.trades.get_summary(from_date="2024-12-01", to_date="2024-12-30")

# Ringkasan grafik
chart = client.trades.get_summary_chart(from_date="2024-12-01", to_date="2024-12-30", code="BBCA")

# Update catatan
client.trades.update_note(id="trade-id", data={"note": "Catatan"})

Live Alerts & API Usage

Live Alerts

# Buat Alert baru
client.alerts.create(data={
    "name": "Alert BBCA",
    "description": "Alert jika harga naik",
    "category": ["SYARIAH"],
    "every": "1d",
    "send": "email",
    "formula": "close > 10000"
})

# Daftar Alert yang aktif
alerts = client.alerts.list()

# Test formula alert
result = client.alerts.test(data={
    "formula": "close > 10000",
    "category": ["SYARIAH"]
})

# Update Alert yang sudah ada
client.alerts.update(id="alert-id", data={
    "name": "Alert BBCA Baru",
    "category": ["SYARIAH"],
    "every": "1d",
    "send": "email",
    "formula": "close > 10500"
})

# Hapus Alert
client.alerts.delete(id="alert-id")

API Usage

# Cek kuota dan penggunaan API saat ini
usage = client.usage.get_api_usage()
print(usage)

Social Features

Posts

# Daftar semua postingan
posts = client.posts.get_all(page=1, limit=10)

# Postingan berdasarkan kategori
posts = client.posts.get_by_category(category="analisis", page=1, limit=10)

# Postingan saham tertentu
posts = client.posts.get_by_stock(code="BBCA", page=1, limit=10)

# Detail postingan
detail = client.posts.get_by_id(id="post-id")

# Komentar postingan
comments = client.posts.get_comments(id="post-id", page=1, limit=10)

# Daftar voting
voters = client.posts.get_voters(id="post-id")

Profile

# Rekomendasi pengguna
recommendations = client.profile.get_recommendations()

Screener Saham Indonesia

# Daftar preset screener
presets = client.screener.list_presets()

# Jalankan screener saham
results = client.screener.screen({
    "formula": "close >= 5000 AND change > 2",
    "category": ["SYARIAH", "IDXENERGY"]
})

# Simpan preset screener
client.screener.save_preset({
    "name": "Preset Baru",
    "description": "Deskripsi preset",
    "formula": "close >= 5000",
    "category": ["SYARIAH"]
})

# Update preset screener
client.screener.update_preset(id="preset-id", data={
    "name": "Preset Baru Updated",
    "formula": "close >= 5500",
    "category": ["SYARIAH"]
})

# Hapus preset screener
client.screener.delete_preset(id="preset-id")

Search

# Cari saham atau pengguna
results = client.search.search(query="BBCA")

# Cari saham
stocks = client.search.search_stock(query="BBCA", cursor="")

# Cari pengguna
users = client.search.search_user(query="username", cursor="")

Error Handling

SDK ini meng-handle berbagai jenis error:

from invezgo.exceptions import (
    InvezgoError,
    AuthenticationError,
    PaymentRequiredError,
    RateLimitError,
    NotFoundError,
    BadRequestError,
    ServerError
)

try:
    result = client.analysis.get_stock_list()
except AuthenticationError:
    print("API key tidak valid")
except PaymentRequiredError:
    print("Paket berlangganan tidak mencukupi")
except RateLimitError:
    print("Melebihi batas permintaan API")
except NotFoundError:
    print("Data tidak ditemukan")
except BadRequestError:
    print("Request tidak valid")
except ServerError:
    print("Error server")
except InvezgoError as e:
    print(f"Error: {e}")

Keywords

Invezgo SDK, API Saham Indonesia, Data Saham BEI, Bursa Efek Indonesia, IDX, IHSG, LQ45, IDX30, Saham Indonesia, Trading Indonesia, Broker Summary, Foreign Flow, Bandarmologi, Analisis Saham, Real-time Stock Data, Intraday Chart, Order Book, Financial Statement, Laporan Keuangan, Insider Trading, KSEI, Shareholder Analysis, Stock Screener, Technical Analysis, Fundamental Analysis.

Lisensi

MIT License - lihat LICENSE untuk detail.

Support

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

invezgo_sdk-2.0.1.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

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

invezgo_sdk-2.0.1-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file invezgo_sdk-2.0.1.tar.gz.

File metadata

  • Download URL: invezgo_sdk-2.0.1.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for invezgo_sdk-2.0.1.tar.gz
Algorithm Hash digest
SHA256 2968496c90a046559db9bf973c41a3f685baa27cc2f96351f67aa49bd8e2fc07
MD5 1975c6920bbe4660cd9d06a2ed80ad99
BLAKE2b-256 06d2b46e4f9783bb46418c83c55091f2a7d26c1b7d4b3209234e48a6cd43149a

See more details on using hashes here.

File details

Details for the file invezgo_sdk-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: invezgo_sdk-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 31.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.7

File hashes

Hashes for invezgo_sdk-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a1683c942d9910cb2d604afc083b4acced94c01474e0ce6eb06f33e73c563639
MD5 d039d1abe93d3c715fb6a9c98dd6fcc0
BLAKE2b-256 02b35db1c531cc5f0f11605c0c4251c97ab34413e6065123fb2af15469a458cc

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