← Back to snippets
IBKRIntermediateib_insync, pandasReviewed 2026-06-02
Get positions as a DataFrame
Read current positions into pandas for inspection without placing orders.
Read-onlySanitize data
python
from ib_insync import IB
import pandas as pd
ib = IB()
ib.connect("127.0.0.1", 7497, clientId=2)
try:
rows = [
{
"account": position.account,
"symbol": position.contract.symbol,
"secType": position.contract.secType,
"currency": position.contract.currency,
"position": position.position,
"avgCost": position.avgCost,
}
for position in ib.positions()
]
positions = pd.DataFrame(rows)
print(positions)
finally:
ib.disconnect()Prerequisites
- Connected IBKR API session
- pandas is installed
- Account has positions or an empty result is expected
Usage notes
- Position data can reveal account strategy; sanitize before sharing.
- This snippet only calls ib.positions().
Related pages
IBKRPortfoliopandas
