Skip to main content

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")

# 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")
# 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.

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)

Source distribution for invezgo-sdk 2.0.3
File Size Uploaded Provenance
invezgo_sdk-2.0.3.tar.gz 38.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for invezgo-sdk 2.0.3
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page