Arbitrage involves risk - odds change rapidly, no guaranteed profits.

Docs
Python Examples

Python Examples

Complete Python examples for the ArbBets API.

Basic Example

import requests
 
API_KEY = "your_api_key_here"
BASE_URL = "https://getarbitragebets.com"
 
headers = {
    "Authorization": f"Bearer {API_KEY}"
}
 
params = {
    "investment": 100,
    "min_profit": 1.9
}
 
response = requests.get(
    f"{BASE_URL}/api/internal/arbs-full_2",
    headers=headers,
    params=params
)
 
data = response.json()
print(f"Found {data['profitable_count']} profitable opportunities")

Processing Arbitrage Opportunities

import requests
 
def get_arbitrages(api_key, investment=100, min_profit=1.9):
    """Fetch arbitrage opportunities from ArbBets API."""
    response = requests.get(
        "https://getarbitragebets.com/api/internal/arbs-full_2",
        headers={"Authorization": f"Bearer {api_key}"},
        params={"investment": investment, "min_profit": min_profit}
    )
 
    if response.status_code != 200:
        raise Exception(f"API error: {response.status_code}")
 
    return response.json()
 
def display_opportunities(data):
    """Display profitable arbitrage opportunities."""
    print(f"Generated at: {data['generated_at']}")
    print(f"Investment: ${data['investment_amount']}")
    print(f"Markets analyzed: {data['total_markets_analyzed']}")
    print(f"Profitable opportunities: {data['profitable_count']}")
    print("-" * 50)
 
    for arb in data['profitable_arbitrages']:
        print(f"\nMarket: {arb['market_name_a']}")
        print(f"  Profit: ${arb['best_arbitrage']['net_profit']:.2f} ({arb['best_arbitrage']['roi_percent']:.2f}%)")
        print(f"  Strategy: {arb['best_arbitrage']['combination']}")
        print(f"  {arb['best_arbitrage']['platform_1']}: {arb['best_arbitrage']['side_1']} @ {arb['best_arbitrage']['price_1']} - ${arb['best_arbitrage']['bet_amount_1']:.2f}")
        print(f"  {arb['best_arbitrage']['platform_2']}: {arb['best_arbitrage']['side_2']} @ {arb['best_arbitrage']['price_2']} - ${arb['best_arbitrage']['bet_amount_2']:.2f}")
        print(f"  Kalshi: {arb['url_a']}")
        print(f"  Polymarket: {arb['url_b']}")
 
# Usage
API_KEY = "your_api_key_here"
data = get_arbitrages(API_KEY, investment=100, min_profit=2.0)
display_opportunities(data)

Filter by ROI

def get_high_roi_opportunities(data, min_roi=3.0):
    """Filter opportunities by minimum ROI percentage."""
    return [
        arb for arb in data['profitable_arbitrages']
        if arb['best_arbitrage']['roi_percent'] >= min_roi
    ]
 
# Get only opportunities with 3%+ ROI
high_roi = get_high_roi_opportunities(data, min_roi=3.0)
print(f"Found {len(high_roi)} opportunities with 3%+ ROI")

Sort by Profit

def sort_by_profit(data, descending=True):
    """Sort opportunities by net profit."""
    return sorted(
        data['profitable_arbitrages'],
        key=lambda x: x['best_arbitrage']['net_profit'],
        reverse=descending
    )
 
# Get top 5 most profitable
top_5 = sort_by_profit(data)[:5]
for arb in top_5:
    print(f"${arb['best_arbitrage']['net_profit']:.2f} - {arb['market_name_a'][:50]}")

Export to CSV

import requests
import csv
from datetime import datetime
 
def export_to_csv(api_key, filename=None):
    """Export arbitrage opportunities to CSV file."""
    response = requests.get(
        "https://getarbitragebets.com/api/internal/arbs-full_2",
        headers={"Authorization": f"Bearer {api_key}"},
        params={"investment": 100, "min_profit": 1.9}
    )
    data = response.json()
 
    if not filename:
        filename = f"arbitrages_{datetime.now().strftime('%Y%m%d_%H%M%S')}.csv"
 
    with open(filename, 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([
            'Market', 'Kalshi ID', 'Net Profit', 'ROI %',
            'Platform 1', 'Side 1', 'Price 1', 'Amount 1',
            'Platform 2', 'Side 2', 'Price 2', 'Amount 2',
            'Kalshi URL', 'Polymarket URL'
        ])
 
        for arb in data['profitable_arbitrages']:
            ba = arb['best_arbitrage']
            writer.writerow([
                arb['market_name_a'][:50],
                arb['kalshi_id'],
                f"{ba['net_profit']:.2f}",
                f"{ba['roi_percent']:.2f}",
                ba['platform_1'], ba['side_1'], ba['price_1'], f"{ba['bet_amount_1']:.2f}",
                ba['platform_2'], ba['side_2'], ba['price_2'], f"{ba['bet_amount_2']:.2f}",
                arb['url_a'],
                arb['url_b']
            ])
 
    print(f"Exported {data['profitable_count']} opportunities to {filename}")
    return filename
 
# Usage
export_to_csv("your_api_key")