Prediction Market Arbitrage Api
v1.0.0Find arbitrage opportunities across Polymarket and Kalshi prediction markets via AIsa API. Scan sports markets for cross-platform price discrepancies, compar...
Like a lobster shell, security has layers — review code before you run it.
License
Runtime requirements
SKILL.md
Prediction Market Arbitrage Api
Find arbitrage opportunities across Polymarket and Kalshi via AIsa API.
Setup
export AISA_API_KEY="your-key"
Get a key at aisa.one ($0.01/query, pay-as-you-go).
Workflow
Finding arbitrage involves these steps:
- Scan matching markets across platforms (
scanfor bulk,matchfor specific) - Review spreads — the tool calculates price differences automatically
- Verify liquidity — use
prediction_market_client.py orderbooksto check depth before acting
Quick Examples
Scan a sport for arbitrage
# Scan all NBA markets on a date — shows spreads automatically
python3 {baseDir}/scripts/arbitrage_finder.py scan nba --date 2025-04-01
Analyze a specific market
# By Polymarket slug
python3 {baseDir}/scripts/arbitrage_finder.py match --polymarket-slug <slug>
# By Kalshi ticker
python3 {baseDir}/scripts/arbitrage_finder.py match --kalshi-ticker <ticker>
Verify liquidity before acting
# Check orderbook depth on both sides
python3 {baseDir}/scripts/prediction_market_client.py polymarket orderbooks --token-id <id>
python3 {baseDir}/scripts/prediction_market_client.py kalshi orderbooks --ticker <ticker>
Commands
arbitrage_finder.py — Automated Detection
python3 {baseDir}/scripts/arbitrage_finder.py scan <sport> --date <YYYY-MM-DD> [--min-spread <pct>] [--min-liquidity <usd>] [--json]
python3 {baseDir}/scripts/arbitrage_finder.py match --polymarket-slug <slug> [--min-spread <pct>] [--min-liquidity <usd>] [--json]
python3 {baseDir}/scripts/arbitrage_finder.py match --kalshi-ticker <ticker> [--min-spread <pct>] [--min-liquidity <usd>] [--json]
Sports: nba, nfl, mlb, nhl, soccer, tennis.
prediction_market_client.py — Raw Market Data
Use for manual price checks and deeper analysis.
# Search markets
python3 {baseDir}/scripts/prediction_market_client.py polymarket markets --search <kw> --status open --limit 5
python3 {baseDir}/scripts/prediction_market_client.py kalshi markets --search <kw> --status open --limit 5
# Get prices (use token_id / market_ticker from markets output)
python3 {baseDir}/scripts/prediction_market_client.py polymarket price <token_id>
python3 {baseDir}/scripts/prediction_market_client.py kalshi price <market_ticker>
# Cross-platform sports matching
python3 {baseDir}/scripts/prediction_market_client.py sports by-date <sport> --date <YYYY-MM-DD>
python3 {baseDir}/scripts/prediction_market_client.py sports matching (--polymarket-slug <slug> | --kalshi-ticker <ticker>)
# Orderbook depth
python3 {baseDir}/scripts/prediction_market_client.py polymarket orderbooks --token-id <id>
python3 {baseDir}/scripts/prediction_market_client.py kalshi orderbooks --ticker <ticker>
Understanding Arbitrage
Arbitrage exists when the combined cost of all mutually exclusive outcomes across platforms is less than 1.0:
"Yes" at
0.40on Polymarket + "No" at0.55on Kalshi = cost0.95, guaranteed payout1.00→ 5.3% profit.
Always verify orderbook depth — a spread without liquidity is not executable.
Security & Permissions
Requires: AISA_API_KEY environment variable.
All operations are read-only via HTTPS GET to api.aisa.one. Arbitrage spreads are calculated locally. No trades executed, no wallets connected, no personal data sent beyond the API key. Every response includes usage.cost and usage.credits_remaining.
Full docs: AIsa API Reference.
Files
3 totalComments
Loading comments…
