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(data={"id": "watchlist-id"})

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

Journals (Jurnal Trading)

# Daftar transaksi jurnal
transactions = client.journals.list()

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

# Ringkasan transaksi
summary = client.journals.get_summary()

# 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()

# Ringkasan transaksi
summary = client.trades.get_summary()

# Ringkasan grafik
chart = client.trades.get_summary_chart()

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

AI Features

# Analisa AI KSEI pemegang saham
ai_ksei = client.ai.analyze_shareholder_ksei(code="BBCA")

# Analisa AI berita saham
ai_news = client.ai.analyze_news(code="BBCA")

# Analisa AI broker summary
ai_summary = client.ai.analyze_broker_summary(
    code="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30",
    investor="all",
    market="RG"
)

# Analisa AI inventory chart
ai_inventory = client.ai.analyze_inventory_chart(
    code="BBCA",
    from_date="2024-12-01",
    to_date="2024-12-30",
    scope="val",
    investor="all",
    limit="20",
    market="RG",
    filter_brokers=""
)

# Analisa AI insider trading
ai_insider = client.ai.analyze_insider(
    code="BBCA",
    name="NAMA PEMEGANG",
    from_date="2024-12-01",
    to_date="2024-12-30",
    page="1",
    limit="10"
)

# Analisa AI pemegang saham diatas 5%
ai_above = client.ai.analyze_shareholder_above(
    code="BBCA",
    broker="AG",
    name="NAMA PEMEGANG",
    from_date="2024-12-01",
    to_date="2024-12-30",
    page="1",
    limit="10"
)

# Analisa AI intraday inventory
ai_intraday = client.ai.analyze_intraday_inventory(
    code="BBCA",
    range_minutes=60,
    type_name="value",
    total=10,
    buyer="ALL",
    seller="ALL",
    broker="",
    market="RG"
)

# Analisa AI sankey chart
ai_sankey = client.ai.analyze_sankey_chart(
    code="BBCA",
    type_name="value",
    buyer="ALL",
    seller="ALL",
    market="RG"
)

# Analisa AI pemegang saham
ai_shareholder = client.ai.analyze_shareholder(code="BBCA")

# Analisa AI laporan keuangan
ai_financial = client.ai.analyze_financial_statement(
    code="BBCA",
    statement="BS",
    type_period="Q",
    limit="10"
)

# Analisa AI key statistics
ai_keystat = client.ai.analyze_keystat(
    code="BBCA",
    type_period="Q",
    limit="10"
)

Social Features

Posts

# Daftar semua postingan
posts = client.posts.get_all()

# Postingan berdasarkan kategori
posts = client.posts.get_by_category(category="analisis")

# Postingan saham tertentu
posts = client.posts.get_by_stock(code="BBCA")

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

# Komentar postingan
comments = client.posts.get_comments(id="post-id")

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

Profile

# Informasi profil pengguna
profile = client.profile.get_user_details(username="username")

# Postingan pengguna
posts = client.profile.get_user_posts(username="username", page="1", limit="10")

# Watchlist pengguna
watchlist = client.profile.get_user_watchlist(username="username")

# Followers
followers = client.profile.get_followers(username="username")

# Following
following = client.profile.get_following(username="username")

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

Screener Saham Indonesia

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

# Jalankan screener
results = client.screener.screen(
    columns=["close", "volume", "change"],
    conditions=[
        {
            "ratio": "BASIC",
            "column": "change_1d_close",
            "operator": ">",
            "value": "0"
        },
        {
            "ratio": "BASIC",
            "column": "value",
            "operator": ">",
            "value": "1000000000"
        }
    ]
)

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

Health Check

# Status API
health = client.health.check()

# Status database
db_health = client.health.check_database()

# Status lengkap
full_health = client.health.check_full()

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.0.tar.gz (36.2 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.0-py3-none-any.whl (29.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: invezgo_sdk-2.0.0.tar.gz
  • Upload date:
  • Size: 36.2 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.0.tar.gz
Algorithm Hash digest
SHA256 4320a8a0321cd79a56d812e841694bbfa0bdebfb879ec6c8f4d5c85b8bca91d3
MD5 bdbbd7829ef6cf9bad0a3a57bc38a2df
BLAKE2b-256 6a3380c568c42700664d64ad8f435b8c7d7d3fd1eb1ddf6adee91adfd5819d1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: invezgo_sdk-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebceb9be9a29793c174a8aaeb279b734860cd6662d310b744463d615740c6c3e
MD5 7d10e0cac07f0235035d72c534ed3248
BLAKE2b-256 1a3140e621879f2e44514ec94e4b1814b5c497b2e012fc2c6f7520adcf908304

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