Python SDK for Invezgo API - Indonesian Stock Market Data
Project description
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")
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2968496c90a046559db9bf973c41a3f685baa27cc2f96351f67aa49bd8e2fc07
|
|
| MD5 |
1975c6920bbe4660cd9d06a2ed80ad99
|
|
| BLAKE2b-256 |
06d2b46e4f9783bb46418c83c55091f2a7d26c1b7d4b3209234e48a6cd43149a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1683c942d9910cb2d604afc083b4acced94c01474e0ce6eb06f33e73c563639
|
|
| MD5 |
d039d1abe93d3c715fb6a9c98dd6fcc0
|
|
| BLAKE2b-256 |
02b35db1c531cc5f0f11605c0c4251c97ab34413e6065123fb2af15469a458cc
|