Invezgo Python SDK - API Saham Indonesia
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")
# Running trade saham (realtime/historis)
running_trade = client.analysis.get_stock_running_trade(
code="BBCA",
date="2026-03-25",
limit=50,
type_transaction="BUY",
market="RG"
)
Batch Requests (Multiple Saham & Indeks)
# Batch Order Book untuk beberapa saham sekaligus (bisa list atau string "BBCA|GOTO|HUMI")
batch_order_book = client.batch.get_order_book(code=["BBCA", "GOTO", "HUMI"], market="RG")
# Batch Intraday Data saham
batch_intraday_data = client.batch.get_intraday_data(code=["BBCA", "GOTO"], market="RG")
# Batch Intraday Index
batch_intraday_index = client.batch.get_intraday_index(code=["COMPOSITE", "LQ45", "IDX30"])
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
- Email: admin@invezgo.com
- Website: https://invezgo.com
- Dokumentasi API: https://invezgo.com
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for invezgo-sdk 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| invezgo_sdk-2.0.3.tar.gz | 38.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| invezgo_sdk-2.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.3 kB
Release files / invezgo_sdk-2.0.3.tar.gz
| Download URL | invezgo_sdk-2.0.3.tar.gz |
|---|---|
| Size | 38.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd36a9646c45340e9ecdc7d884496af09720dad91f903eac28a33e9316563218
|
|
BLAKE2b-256 checksum How to use checksums |
92b0865e6fa9b3fd35d46aabf0737a93de081a51a98c0582fd43d5d8f7db7999
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / invezgo_sdk-2.0.3-py3-none-any.whl
| Download URL | invezgo_sdk-2.0.3-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2de2cd4726e48a353ee0584b9224098f91c91a0695ed35177a2eb51833dd577
|
|
BLAKE2b-256 checksum How to use checksums |
e674fcc0ecd8dbe91ee59d148199f40ffc33f6dc96d4438ff00180dee69bb8b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for invezgo-sdk 2.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.