https://github.com/deepentropy/ibapi
https://github.com/deepentropy/ibapi
Last synced: 26 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/deepentropy/ibapi
- Owner: deepentropy
- License: other
- Created: 2025-11-14T15:09:40.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-11-14T22:07:51.000Z (7 months ago)
- Last Synced: 2025-11-15T15:49:00.505Z (7 months ago)
- Language: Python
- Size: 677 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ibapi
Automated publisher for the Interactive Brokers TWS API Python client on PyPI.
[](https://pypi.org/project/ibapi-latest/)
[](https://pypi.org/project/ibapi-stable/)
[](https://www.python.org/downloads/)
[](LICENSE)
## 📦 Installation
**Two packages available on PyPI:**
### Latest Version (Recommended)
```bash
pip install ibapi-latest
```
### Stable Version
```bash
pip install ibapi-stable
```
You can also install a specific version:
```bash
pip install ibapi-latest==10.40.01
pip install ibapi-stable==10.37.02
```
## 🚀 Usage
```python
from ibapi.client import EClient
from ibapi.wrapper import EWrapper
from ibapi.contract import Contract
class IBApp(EWrapper, EClient):
def __init__(self):
EClient.__init__(self, self)
app = IBApp()
app.connect("127.0.0.1", 7497, clientId=1)
app.run()
```
For complete examples and documentation, visit the [official IB API documentation](https://ibkrcampus.com/ibkr-api-page/).
## 📋 About This Package
This is an **unofficial** automated publisher for the Interactive Brokers TWS API Python client. The source code is from Interactive Brokers' official TWS API distribution, packaged and published to PyPI for easy installation.
> **⚠️ DISCLAIMER**
>
> This package is **NOT officially affiliated with, endorsed by, or supported by Interactive Brokers LLC**. It is an independent community project that automates the packaging and distribution of the official IB API source code.
>
> - The IB API source code is proprietary to Interactive Brokers and is licensed under the [TWS API Non-Commercial License](LICENSE)
> - This automation tool is provided "as is" without any warranties
> - For official support, please contact [Interactive Brokers](https://www.interactivebrokers.com/en/support/contact.php)
> - Trading involves risk. Use at your own discretion.
### Two PyPI Packages
- **`ibapi-latest`**: The newest IB API version (from `main` branch)
- **`ibapi-stable`**: Previous IB API versions (from `stable` branch)
Both packages are automatically updated weekly when new IB API versions are released.
## 🏗️ Project Structure
```
ibapi/
├── .github/
│ └── workflows/ # GitHub Actions for automation
│ ├── update-ibapi-latest.yml # Latest version publisher
│ └── update-ibapi-stable.yml # Stable version publisher
├── scripts/ # Automation scripts
│ ├── get_download_url.py # Fetch IB API download URLs
│ ├── update_ibapi.py # Download and commit IB API
│ └── check_and_update.py # Orchestrator (legacy)
├── ibapi/ # IB API Python client (auto-updated)
│ └── ibapi/
│ ├── client.py
│ ├── wrapper.py
│ └── ...
├── pyproject.toml # Package configuration
└── README.md
```
## 🔄 How It Works
### Automated Workflow
1. **Weekly Check**: GitHub Actions runs every Monday at 9:00 AM UTC
2. **Version Detection**: Scrapes https://interactivebrokers.github.io/ for new versions
3. **Download & Extract**: Downloads the TWS API zip and extracts the Python client
4. **Auto-Fix**: Automatically fixes version strings and package configuration
5. **Build & Publish**: Builds the package and publishes to PyPI
6. **Tag & Release**: Creates git tags and GitHub releases
### Version Management
- Versions follow IB's format: `10.40.01`, `10.37.02`, etc.
- Git tags: `v10.40.01`, `v10.37.02`, etc.
- PyPI packages:
- Latest: `ibapi-latest==10.40.01`
- Stable: `ibapi-stable==10.37.02`
## 📝 License
This project has a **dual license structure**:
### IB API Source Code (`ibapi/` directory)
The Interactive Brokers TWS API source code is proprietary software owned by Interactive Brokers LLC and is licensed under the **[TWS API Non-Commercial License](LICENSE)**.
**Key restrictions:**
- ✅ Use for personal trading and account management
- ✅ Develop internal proprietary tools for your own IB account
- ❌ **NOT permitted**: Selling software to third parties
- ❌ **NOT permitted**: Distributing software to generate indirect financial benefit (e.g., commissions)
- ⚠️ **Requires**: Active Interactive Brokers account
**For commercial use**, contact Interactive Brokers at: opensource@interactivebrokers.com
**Full license text**: See [LICENSE](LICENSE) file
### Automation Scripts (`scripts/` directory, workflows)
The automation tooling that packages and publishes the IB API is licensed under the **MIT License**.
See the [LICENSE](LICENSE) file for complete details.
## 🔗 Links
- **PyPI Packages**:
- Latest: https://pypi.org/project/ibapi-latest/
- Stable: https://pypi.org/project/ibapi-stable/
- **Official IB API**: https://interactivebrokers.github.io/tws-api
- **Documentation**: https://ibkrcampus.com/ibkr-api-page/
- **GitHub Repository**: https://github.com/yourusername/ibapi
## 🐛 Support
For issues with:
- **The IB API itself**: Contact [Interactive Brokers](https://www.interactivebrokers.com/en/support/contact.php)
- **This package/automation**: Open an [issue on GitHub](https://github.com/yourusername/ibapi/issues)
## ⚙️ Configuration
The package configuration is in `pyproject.toml`:
```toml
[project]
name = "ibapi"
dynamic = ["version"] # Version from ibapi.__version__
dependencies = ["protobuf==5.29.3"]
[tool.setuptools]
packages = ["ibapi", "ibapi.protobuf"]
package-dir = {"" = "ibapi"} # Maps ibapi/ibapi/* to ibapi/*
```
This ensures imports work as expected:
```python
from ibapi.client import EClient # Not from ibapi.ibapi.client
```