Skills prediction-market-arbitrage-api

Find arbitrage opportunities across Polymarket and Kalshi prediction markets via AIsa API. Scan sports markets for cross-platform price discrepancies, compare real-time odds, verify orderbook liquidity. Use when user asks about: prediction market arbitrage, cross-platform price differences, sports betting arbitrage, odds comparison, risk-free profit, market inefficiencies.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bibaofeng/prediction-market-arbitrage-api" ~/.claude/skills/clawdbot-skills-prediction-market-arbitrage-api && rm -rf "$T"
manifest: skills/bibaofeng/prediction-market-arbitrage-api/SKILL.md
source content

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:

  1. Scan matching markets across platforms (
    scan
    for bulk,
    match
    for specific)
  2. Review spreads — the tool calculates price differences automatically
  3. Verify liquidity — use
    prediction_market_client.py orderbooks
    to 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.40
on Polymarket + "No" at
0.55
on Kalshi = cost
0.95
, guaranteed payout
1.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.