contextcol-binance-spot-sdk


Namecontextcol-binance-spot-sdk JSON
Version 0.1.11 PyPI version JSON
download
home_pageNone
SummaryPython SDK for Binance trading with ContextCol API integration
upload_time2025-08-04 05:23:44
maintainerNone
docs_urlNone
authorkhemmapich
requires_python<4.0,>=3.9
licenseNone
keywords binance trading api contextcol cryptocurrency binance spot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ContextCol SDK

A comprehensive Python SDK for Binance trading with ContextCol API integration. This SDK provides seamless integration between Binance spot trading and ContextCol's trading bot analytics platform.

## Features

- **Binance Integration**: Complete Binance API wrapper with spot trading capabilities
- **Market Data API**: Comprehensive market data endpoints using requests directly
- **ContextCol API**: Full integration with ContextCol's trading bot activity tracking
- **Secure Configuration**: Environment-based configuration with validation
- **Comprehensive Error Handling**: Custom exceptions for different error scenarios
- **Type Hints**: Full type annotation support for better IDE experience
- **No External Dependencies**: Uses requests directly instead of outdated binance library

## Installation

```bash
pip install contextcol
```

## Quick Start

### Basic Setup

```python
from contextcol import ContextColClient

# Initialize with environment variables
client = ContextColClient()

# Or initialize with direct configuration
client = ContextColClient(
    binance_api_key="your_binance_api_key",
    binance_api_secret="your_binance_api_secret",
    contextcol_api_key="your_contextcol_api_key"
)
```

### Environment Variables

Create a `.env` file in your project root:

```env
BINANCE_API_KEY=your_binance_api_key
BINANCE_API_SECRET=your_binance_api_secret
BINANCE_TESTNET=false
CONTEXTCOL_API_KEY=your_contextcol_api_key
CONTEXTCOL_BASE_URL=https://api.contextcol.com
```

### Simple Trading Example

```python
from contextcol import ContextColClient

# Initialize client
client = ContextColClient()

# Execute a spot trade and log to ContextCol
result = client.execute_spot_trade(
    symbol="BTCUSDT",
    side="BUY",
    quantity="0.001",
    type="MARKET",
    test=True  # Use test mode first
)

print(f"Order result: {result['binance_order']}")
print(f"ContextCol log: {result['contextcol_log']}")
```

## API Reference

### ContextColClient

The main client class that provides access to all SDK functionality.

#### Trading Methods

```python
# Execute spot trade with ContextCol logging
client.execute_spot_trade(symbol, side, quantity, type="MARKET", price=None, test=False)

# Create trading bot activity
client.create_trading_bot_activity(activity_data)

# Test trading bot activity
client.test_trading_bot_activity(activity_id, test_data)
```

#### Binance Methods

```python
# Get account information
account_info = client.binance.get_account_info()

# Get account balance
balance = client.binance.get_balance("BTC")

# Create spot order
order = client.binance.create_spot_order("BTCUSDT", "BUY", "0.001")

# Get ticker price
price = client.binance.get_ticker_price("BTCUSDT")
```

#### Market Data Methods

```python
# Access market data client
market_data = client.binance.market_data

# Get order book
order_book = market_data.get_order_book("BTCUSDT", limit=100)

# Get recent trades
trades = market_data.get_recent_trades("BTCUSDT", limit=500)

# Get historical trades
historical_trades = market_data.get_historical_trades("BTCUSDT", limit=500)

# Get aggregate trades
agg_trades = market_data.get_aggregate_trades("BTCUSDT", limit=500)

# Get klines (candlestick data)
klines = market_data.get_klines("BTCUSDT", "1h", limit=100)

# Get UI klines (optimized for charts)
ui_klines = market_data.get_ui_klines("BTCUSDT", "1h", limit=100)

# Get average price
avg_price = market_data.get_avg_price("BTCUSDT")

# Get 24hr ticker statistics
ticker_24hr = market_data.get_24hr_ticker("BTCUSDT")

# Get trading day ticker
trading_day_ticker = market_data.get_trading_day_ticker("BTCUSDT")

# Get symbol price ticker
price_ticker = market_data.get_symbol_price_ticker("BTCUSDT")

# Get order book ticker
book_ticker = market_data.get_order_book_ticker("BTCUSDT")

# Get rolling window ticker
rolling_ticker = market_data.get_rolling_window_ticker("BTCUSDT", window_size="1d")
```

#### ContextCol API Methods

```python
# Create Binance spot transaction log
client.create_binance_spot_transaction(transaction_data)

# Test Binance spot transaction
client.test_binance_spot_transaction(transaction_data)

# Get trading analytics
analytics = client.get_trading_analytics(start_date="2024-01-01", end_date="2024-01-31")
```

## Configuration

### Config Class

```python
from contextcol import Config

# Create configuration
config = Config(
    binance_api_key="your_key",
    binance_api_secret="your_secret",
    contextcol_api_key="your_contextcol_key",
    binance_testnet=True,  # Use testnet
    timeout=30,
    max_retries=3
)

# Initialize client with config
client = ContextColClient(config=config)
```

### Configuration Options

| Parameter             | Type | Default                    | Description                |
| --------------------- | ---- | -------------------------- | -------------------------- |
| `binance_api_key`     | str  | None                       | Binance API key            |
| `binance_api_secret`  | str  | None                       | Binance API secret         |
| `binance_testnet`     | bool | False                      | Use Binance testnet        |
| `contextcol_api_key`  | str  | None                       | ContextCol API key         |
| `contextcol_base_url` | str  | https://api.contextcol.com | ContextCol API base URL    |
| `timeout`             | int  | 30                         | Request timeout in seconds |
| `max_retries`         | int  | 3                          | Maximum retry attempts     |

## Error Handling

The SDK provides comprehensive error handling with custom exceptions:

```python
from contextcol_binance_spot_sdk.exceptions import (
    ContextColError,
    APIError,
    ConfigError,
    BinanceAPIError,
    AuthenticationError,
    ValidationError
)

try:
    result = client.execute_spot_trade("BTCUSDT", "BUY", "0.001")
except BinanceAPIError as e:
    print(f"Binance API error: {e.message} (Code: {e.code})")
except APIError as e:
    print(f"ContextCol API error: {e} (Status: {e.status_code})")
except ValidationError as e:
    print(f"Validation error: {e}")
```

## Advanced Usage

### Context Manager

```python
with ContextColClient() as client:
    # Your trading logic here
    result = client.execute_spot_trade("BTCUSDT", "BUY", "0.001")
    print(result)
# Client connections are automatically closed
```

### Validate Configuration

```python
client = ContextColClient()
validation_result = client.validate_configuration()

if validation_result['binance_connection']:
    print("Binance connection successful")
if validation_result['contextcol_connection']:
    print("ContextCol connection successful")

for error in validation_result['errors']:
    print(f"Error: {error}")
```

### Get Account Summary

```python
summary = client.get_account_summary()
print(f"Binance Account: {summary['binance_account']}")
print(f"ContextCol User: {summary['contextcol_user']}")
print(f"Recent Activities: {summary['recent_activities']}")
```

## ContextCol API Endpoints

The SDK supports all major ContextCol API endpoints:

- `POST /trading-bot-activity` - Create trading bot activity
- `POST /trading-bot-activity/:id/test` - Test trading bot activity
- `POST /binance/spot/transaction` - Create Binance spot transaction
- `POST /binance/spot/transaction/test` - Test Binance spot transaction

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Support

For support, please contact [khemmapich@gmail.com](mailto:khemmapich@gmail.com) or create an issue on GitHub.

## Changelog

### 0.1.0

- Initial release
- Binance API integration
- ContextCol API integration
- Comprehensive error handling
- Type hints support
- Configuration management

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "contextcol-binance-spot-sdk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "binance, trading, api, contextcol, cryptocurrency, binance, spot",
    "author": "khemmapich",
    "author_email": "khemmapich@contextcol.com",
    "download_url": "https://files.pythonhosted.org/packages/62/67/9545449f81535b07e8dae13be7b558f446d527b4567d81562e7f79747cc8/contextcol_binance_spot_sdk-0.1.11.tar.gz",
    "platform": null,
    "description": "# ContextCol SDK\n\nA comprehensive Python SDK for Binance trading with ContextCol API integration. This SDK provides seamless integration between Binance spot trading and ContextCol's trading bot analytics platform.\n\n## Features\n\n- **Binance Integration**: Complete Binance API wrapper with spot trading capabilities\n- **Market Data API**: Comprehensive market data endpoints using requests directly\n- **ContextCol API**: Full integration with ContextCol's trading bot activity tracking\n- **Secure Configuration**: Environment-based configuration with validation\n- **Comprehensive Error Handling**: Custom exceptions for different error scenarios\n- **Type Hints**: Full type annotation support for better IDE experience\n- **No External Dependencies**: Uses requests directly instead of outdated binance library\n\n## Installation\n\n```bash\npip install contextcol\n```\n\n## Quick Start\n\n### Basic Setup\n\n```python\nfrom contextcol import ContextColClient\n\n# Initialize with environment variables\nclient = ContextColClient()\n\n# Or initialize with direct configuration\nclient = ContextColClient(\n    binance_api_key=\"your_binance_api_key\",\n    binance_api_secret=\"your_binance_api_secret\",\n    contextcol_api_key=\"your_contextcol_api_key\"\n)\n```\n\n### Environment Variables\n\nCreate a `.env` file in your project root:\n\n```env\nBINANCE_API_KEY=your_binance_api_key\nBINANCE_API_SECRET=your_binance_api_secret\nBINANCE_TESTNET=false\nCONTEXTCOL_API_KEY=your_contextcol_api_key\nCONTEXTCOL_BASE_URL=https://api.contextcol.com\n```\n\n### Simple Trading Example\n\n```python\nfrom contextcol import ContextColClient\n\n# Initialize client\nclient = ContextColClient()\n\n# Execute a spot trade and log to ContextCol\nresult = client.execute_spot_trade(\n    symbol=\"BTCUSDT\",\n    side=\"BUY\",\n    quantity=\"0.001\",\n    type=\"MARKET\",\n    test=True  # Use test mode first\n)\n\nprint(f\"Order result: {result['binance_order']}\")\nprint(f\"ContextCol log: {result['contextcol_log']}\")\n```\n\n## API Reference\n\n### ContextColClient\n\nThe main client class that provides access to all SDK functionality.\n\n#### Trading Methods\n\n```python\n# Execute spot trade with ContextCol logging\nclient.execute_spot_trade(symbol, side, quantity, type=\"MARKET\", price=None, test=False)\n\n# Create trading bot activity\nclient.create_trading_bot_activity(activity_data)\n\n# Test trading bot activity\nclient.test_trading_bot_activity(activity_id, test_data)\n```\n\n#### Binance Methods\n\n```python\n# Get account information\naccount_info = client.binance.get_account_info()\n\n# Get account balance\nbalance = client.binance.get_balance(\"BTC\")\n\n# Create spot order\norder = client.binance.create_spot_order(\"BTCUSDT\", \"BUY\", \"0.001\")\n\n# Get ticker price\nprice = client.binance.get_ticker_price(\"BTCUSDT\")\n```\n\n#### Market Data Methods\n\n```python\n# Access market data client\nmarket_data = client.binance.market_data\n\n# Get order book\norder_book = market_data.get_order_book(\"BTCUSDT\", limit=100)\n\n# Get recent trades\ntrades = market_data.get_recent_trades(\"BTCUSDT\", limit=500)\n\n# Get historical trades\nhistorical_trades = market_data.get_historical_trades(\"BTCUSDT\", limit=500)\n\n# Get aggregate trades\nagg_trades = market_data.get_aggregate_trades(\"BTCUSDT\", limit=500)\n\n# Get klines (candlestick data)\nklines = market_data.get_klines(\"BTCUSDT\", \"1h\", limit=100)\n\n# Get UI klines (optimized for charts)\nui_klines = market_data.get_ui_klines(\"BTCUSDT\", \"1h\", limit=100)\n\n# Get average price\navg_price = market_data.get_avg_price(\"BTCUSDT\")\n\n# Get 24hr ticker statistics\nticker_24hr = market_data.get_24hr_ticker(\"BTCUSDT\")\n\n# Get trading day ticker\ntrading_day_ticker = market_data.get_trading_day_ticker(\"BTCUSDT\")\n\n# Get symbol price ticker\nprice_ticker = market_data.get_symbol_price_ticker(\"BTCUSDT\")\n\n# Get order book ticker\nbook_ticker = market_data.get_order_book_ticker(\"BTCUSDT\")\n\n# Get rolling window ticker\nrolling_ticker = market_data.get_rolling_window_ticker(\"BTCUSDT\", window_size=\"1d\")\n```\n\n#### ContextCol API Methods\n\n```python\n# Create Binance spot transaction log\nclient.create_binance_spot_transaction(transaction_data)\n\n# Test Binance spot transaction\nclient.test_binance_spot_transaction(transaction_data)\n\n# Get trading analytics\nanalytics = client.get_trading_analytics(start_date=\"2024-01-01\", end_date=\"2024-01-31\")\n```\n\n## Configuration\n\n### Config Class\n\n```python\nfrom contextcol import Config\n\n# Create configuration\nconfig = Config(\n    binance_api_key=\"your_key\",\n    binance_api_secret=\"your_secret\",\n    contextcol_api_key=\"your_contextcol_key\",\n    binance_testnet=True,  # Use testnet\n    timeout=30,\n    max_retries=3\n)\n\n# Initialize client with config\nclient = ContextColClient(config=config)\n```\n\n### Configuration Options\n\n| Parameter             | Type | Default                    | Description                |\n| --------------------- | ---- | -------------------------- | -------------------------- |\n| `binance_api_key`     | str  | None                       | Binance API key            |\n| `binance_api_secret`  | str  | None                       | Binance API secret         |\n| `binance_testnet`     | bool | False                      | Use Binance testnet        |\n| `contextcol_api_key`  | str  | None                       | ContextCol API key         |\n| `contextcol_base_url` | str  | https://api.contextcol.com | ContextCol API base URL    |\n| `timeout`             | int  | 30                         | Request timeout in seconds |\n| `max_retries`         | int  | 3                          | Maximum retry attempts     |\n\n## Error Handling\n\nThe SDK provides comprehensive error handling with custom exceptions:\n\n```python\nfrom contextcol_binance_spot_sdk.exceptions import (\n    ContextColError,\n    APIError,\n    ConfigError,\n    BinanceAPIError,\n    AuthenticationError,\n    ValidationError\n)\n\ntry:\n    result = client.execute_spot_trade(\"BTCUSDT\", \"BUY\", \"0.001\")\nexcept BinanceAPIError as e:\n    print(f\"Binance API error: {e.message} (Code: {e.code})\")\nexcept APIError as e:\n    print(f\"ContextCol API error: {e} (Status: {e.status_code})\")\nexcept ValidationError as e:\n    print(f\"Validation error: {e}\")\n```\n\n## Advanced Usage\n\n### Context Manager\n\n```python\nwith ContextColClient() as client:\n    # Your trading logic here\n    result = client.execute_spot_trade(\"BTCUSDT\", \"BUY\", \"0.001\")\n    print(result)\n# Client connections are automatically closed\n```\n\n### Validate Configuration\n\n```python\nclient = ContextColClient()\nvalidation_result = client.validate_configuration()\n\nif validation_result['binance_connection']:\n    print(\"Binance connection successful\")\nif validation_result['contextcol_connection']:\n    print(\"ContextCol connection successful\")\n\nfor error in validation_result['errors']:\n    print(f\"Error: {error}\")\n```\n\n### Get Account Summary\n\n```python\nsummary = client.get_account_summary()\nprint(f\"Binance Account: {summary['binance_account']}\")\nprint(f\"ContextCol User: {summary['contextcol_user']}\")\nprint(f\"Recent Activities: {summary['recent_activities']}\")\n```\n\n## ContextCol API Endpoints\n\nThe SDK supports all major ContextCol API endpoints:\n\n- `POST /trading-bot-activity` - Create trading bot activity\n- `POST /trading-bot-activity/:id/test` - Test trading bot activity\n- `POST /binance/spot/transaction` - Create Binance spot transaction\n- `POST /binance/spot/transaction/test` - Test Binance spot transaction\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Support\n\nFor support, please contact [khemmapich@gmail.com](mailto:khemmapich@gmail.com) or create an issue on GitHub.\n\n## Changelog\n\n### 0.1.0\n\n- Initial release\n- Binance API integration\n- ContextCol API integration\n- Comprehensive error handling\n- Type hints support\n- Configuration management\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python SDK for Binance trading with ContextCol API integration",
    "version": "0.1.11",
    "project_urls": {
        "Bug Tracker": "https://github.com/khemmapichpanyana/contextcol-binance-spot-sdk/issues",
        "Documentation": "https://github.com/khemmapichpanyana/contextcol-binance-spot-sdk",
        "Homepage": "https://github.com/khemmapichpanyana/contextcol-binance-spot-sdk",
        "Repository": "https://github.com/khemmapichpanyana/contextcol-binance-spot-sdk"
    },
    "split_keywords": [
        "binance",
        " trading",
        " api",
        " contextcol",
        " cryptocurrency",
        " binance",
        " spot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8dc2fb0806b5e236668bc87632c6b0678ad1ef7b2bd76d888cc51ea04dca6935",
                "md5": "60e15d1fab54a92938d75685ea78adf9",
                "sha256": "36aa7a8868475a21c747451b54d3e47a36eb18c5994ae222267149d11e9c124d"
            },
            "downloads": -1,
            "filename": "contextcol_binance_spot_sdk-0.1.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "60e15d1fab54a92938d75685ea78adf9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 21569,
            "upload_time": "2025-08-04T05:23:43",
            "upload_time_iso_8601": "2025-08-04T05:23:43.406890Z",
            "url": "https://files.pythonhosted.org/packages/8d/c2/fb0806b5e236668bc87632c6b0678ad1ef7b2bd76d888cc51ea04dca6935/contextcol_binance_spot_sdk-0.1.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62679545449f81535b07e8dae13be7b558f446d527b4567d81562e7f79747cc8",
                "md5": "6daf6e631ae8a932a8422c337cb671f6",
                "sha256": "5e846ccc4759539bda1f5e322d365eb44855a9f83c40e1e366daa30594803934"
            },
            "downloads": -1,
            "filename": "contextcol_binance_spot_sdk-0.1.11.tar.gz",
            "has_sig": false,
            "md5_digest": "6daf6e631ae8a932a8422c337cb671f6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 19010,
            "upload_time": "2025-08-04T05:23:44",
            "upload_time_iso_8601": "2025-08-04T05:23:44.864657Z",
            "url": "https://files.pythonhosted.org/packages/62/67/9545449f81535b07e8dae13be7b558f446d527b4567d81562e7f79747cc8/contextcol_binance_spot_sdk-0.1.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 05:23:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "khemmapichpanyana",
    "github_project": "contextcol-binance-spot-sdk",
    "github_not_found": true,
    "lcname": "contextcol-binance-spot-sdk"
}
        
Elapsed time: 1.10628s