Data broker summary di Python dengan Pandas

Pandas sangat cocok untuk data broker summary. Instal dua paket yang dibutuhkan dengan pip, lalu tarik satu ticker ke dalam DataFrame:

pip install requests pandas

Satu ticker

import pandas as pd
import requests

API_KEY = "<YOUR_API_KEY>"
BASE_URL = "https://api.indexalpha.id"

headers = {"Authorization": f"Bearer {API_KEY}"}
params = {"ticker": "BBCA", "from": "2026-03-26", "to": "2026-03-26", "investor": "all"}

resp = requests.get(f"{BASE_URL}/stocks/broker-summary", headers=headers, params=params)
resp.raise_for_status()

df = pd.DataFrame(resp.json()["data"])
print(df.head())

Setiap baris adalah satu broker. buy_value dan sell_value dalam IDR, buy_volume dan sell_volume dalam lembar saham, dan buy_avg serta sell_avg adalah harga rata-rata tertimbang.

Batch ke dalam satu DataFrame

Untuk memuat batch ticker ke dalam satu DataFrame:

import pandas as pd
import requests

API_KEY = "<YOUR_API_KEY>"
BASE_URL = "https://api.indexalpha.id"
headers = {"Authorization": f"Bearer {API_KEY}"}

payload = {
    "tickers": ["BBCA", "BBRI", "TLKM"],
    "from": "2026-03-26",
    "to": "2026-03-26",
    "investor": "all",
    "market": "RG",
}
resp = requests.post(f"{BASE_URL}/stocks/broker-summary/batch", json=payload, headers=headers)
resp.raise_for_status()

frames = []
for ticker, rows in resp.json()["data"].items():
    frame = pd.DataFrame(rows)
    frame.insert(0, "ticker", ticker)
    frames.append(frame)

df = pd.concat(frames, ignore_index=True)
print(df.head())

Jika sebuah kolom masuk sebagai teks - misalnya setelah memuat ulang hasil ekspor CSV - konversikan buy_value ke tipe data numerik sebelum melakukan operasi aritmetika:

df["buy_value"] = pd.to_numeric(df["buy_value"])