Prediction Market Data Aggregator

v1.0.0

Prediction markets data - Polymarket, Kalshi markets, prices, positions, and trades

0· 94·0 current·0 all-time
byKaren Sheng@karensheng·duplicate of @aisadocs/pred-polymarket

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for karensheng/prediction-agg.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Prediction Market Data Aggregator" (karensheng/prediction-agg) from ClawHub.
Skill page: https://clawhub.ai/karensheng/prediction-agg
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: AISA_API_KEY
Required binaries: curl, python
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install prediction-agg

ClawHub CLI

Package manager switcher

npx clawhub@latest install prediction-agg
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (prediction market aggregator) matches the artefacts: examples use curl and a Python client that target https://api.aisa.one and the skill requires AISA_API_KEY. Required binaries (curl, python) are appropriate for the provided examples and script.
Instruction Scope
SKILL.md instructs the agent to call the AIsa API and run the included Python script; it does not ask the agent to read unrelated files, system config, or extra environment variables. The instructions are specific (API endpoints, token IDs, wallet addresses) and stay within the stated domain.
Install Mechanism
No install spec or remote downloads are present; the skill is instruction-only with an included Python script. Nothing is fetched from untrusted URLs or extracted to disk during install.
Credentials
Only a single API key (AISA_API_KEY) is required and is consistent with the skill's need to authenticate to api.aisa.one. There are no unrelated secret/env requests or config paths.
Persistence & Privilege
always is false and the skill does not request permanent elevated presence. Autonomous invocation is allowed (platform default) and is reasonable for this data-querying skill.
Assessment
This skill appears coherent: it needs an AISA_API_KEY to call the third-party API at api.aisa.one and uses python/curl as shown. Before installing, verify you trust the AIsa service (api.aisa.one) because wallet addresses, positions, and market queries will be sent to that API using your key. Treat AISA_API_KEY like any API secret: use a least-privilege/read-only key if possible, rotate/revoke it if you stop using the skill, and review the full Python script locally if you want to confirm there are no additional network calls or logging of sensitive data.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📈 Clawdis
Binscurl, python
EnvAISA_API_KEY
Primary envAISA_API_KEY
latestvk9724dbffw93k8zcq9szad7txn843nfy
94downloads
0stars
1versions
Updated 3w ago
v1.0.0
MIT-0

Cross-Platform Prediction Market Data 📈

Prediction markets data access for autonomous agents. Powered by AIsa.

One API key. Full Polymarket and Kalshi intelligence.

What Can You Do?

Probability Checks

"What are the odds of [event] happening?"

Market Sentiment

"Research the current market sentiment on the upcoming election."

Trading Analysis

"Analyze historical prices and orderbooks for this market."

Portfolio Tracking

"Track portfolio positions and P&L for wallet address X."

Arbitrage Detection

"Find arbitrage opportunities across Polymarket and Kalshi."

Quick Start

export AISA_API_KEY="your-key"

How to Look Up IDs

Most endpoints require an ID that comes from the /markets response. Always query markets first, then pass the relevant ID to downstream endpoints.

  1. Polymarket token_id: Query /polymarket/markets, find side_a.id or side_b.id in the response, then pass it to /polymarket/market-price/{token_id}.
  2. Polymarket condition_id: Query /polymarket/markets, find condition_id in the response, then pass it to /polymarket/candlesticks/{condition_id}.
  3. Kalshi market_ticker: Query /kalshi/markets, find market_ticker in the response, then pass it to /kalshi/market-price/{market_ticker}.

End-to-End Examples

Get the current price of a Polymarket market

Prices require a token_id, which comes from the /markets response. Always query markets first.

Step 1: Find a market and extract the token_id:

# Search for open election markets and grab a token_id
python scripts/prediction_market_client.py polymarket markets --search "election" --status open --limit 5

The response includes a side_a.id and side_b.id for each market; these are the token IDs for the Yes and No sides respectively:

{
  "markets": [
    {
      "title": "Will Trump nationalize elections?",
      "market_slug": "will-trump-nationalize-elections",
      "condition_id": "0xe6522d64f35a6843ebdbccab2e3d4a1385350be6d40a3de766330e207b71a8ba",
      "side_a": {
        "id": "44482086252598348208660011972852804909957485351743405768768577675743702971026",
        "label": "Yes"
      },
      "side_b": {
        "id": "68987475491741167427045844503509447338405188188495224371188027929166363674438",
        "label": "No"
      }
    }
  ]
}

Step 2: Fetch the current price using the token_id:

# Use side_a.id (Yes) or side_b.id (No) from Step 1
python scripts/prediction_market_client.py polymarket price 44482086252598348208660011972852804909957485351743405768768577675743702971026

The price is a decimal between 0 and 1 representing the probability (e.g. 0.20 = 20% chance of Yes).


Get the current price of a Kalshi market

Step 1: Find a market and extract the market_ticker:

python scripts/prediction_market_client.py kalshi markets --search "fed rate" --status open --limit 5
{
  "markets": [
    {
      "title": "Will the federal funds rate be above 3.75% after the Mar 2026 meeting?",
      "market_ticker": "KXFED-26MAR-T3.75",
      "last_price": 6
    }
  ]
}

Step 2: Fetch the price using the market_ticker:

python scripts/prediction_market_client.py kalshi price KXFED-26MAR-T3.75

Core Capabilities

Polymarket

Markets

# Find markets on Polymarket
curl -X GET "https://api.aisa.one/apis/v1/polymarket/markets?search=election&status=open" \
  -H "Authorization: Bearer $AISA_API_KEY"

Market Price

# Step 1: query /polymarket/markets to get a token_id from side_a.id or side_b.id
# Step 2: pass that token_id here to get the current price
curl -X GET "https://api.aisa.one/apis/v1/polymarket/market-price/{token_id}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Activity

# Fetch activity data for a specific user
curl -X GET "https://api.aisa.one/apis/v1/polymarket/activity?user={wallet_address}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Trade History

# Fetch historical trade data
curl -X GET "https://api.aisa.one/apis/v1/polymarket/orders?market_slug={market_slug}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Orderbook History

# Fetch historical orderbook snapshots for a specific asset
# token_id comes from side_a.id or side_b.id in /polymarket/markets response
curl -X GET "https://api.aisa.one/apis/v1/polymarket/orderbooks?token_id={token_id}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Candlesticks

# Fetch historical candlestick data for a market
# condition_id comes from /polymarket/markets response
curl -X GET "https://api.aisa.one/apis/v1/polymarket/candlesticks/{condition_id}?interval=60" \
  -H "Authorization: Bearer $AISA_API_KEY"

Positions

# Fetch all Polymarket positions for a proxy wallet address
curl -X GET "https://api.aisa.one/apis/v1/polymarket/positions/wallet/{wallet_address}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Wallet

# Fetch wallet information
curl -X GET "https://api.aisa.one/apis/v1/polymarket/wallet?eoa={wallet_address}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Wallet Profit-and-Loss

# Fetch realized profit and loss (PnL) for a specific wallet address
curl -X GET "https://api.aisa.one/apis/v1/polymarket/wallet/pnl/{wallet_address}?granularity=day" \
  -H "Authorization: Bearer $AISA_API_KEY"

Kalshi

Markets

# Find markets on Kalshi
curl -X GET "https://api.aisa.one/apis/v1/kalshi/markets?search=fed%20rate" \
  -H "Authorization: Bearer $AISA_API_KEY"

Market Price

# Fetch the current market price for a Kalshi market
# market_ticker comes from /kalshi/markets response
curl -X GET "https://api.aisa.one/apis/v1/kalshi/market-price/{market_ticker}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Trade History

# Fetch historical trade data for Kalshi markets
# ticker (market_ticker) comes from /kalshi/markets response
curl -X GET "https://api.aisa.one/apis/v1/kalshi/trades?ticker={ticker}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Orderbook History

# Fetch historical orderbook snapshots for a specific Kalshi market
# ticker (market_ticker) comes from /kalshi/markets response
curl -X GET "https://api.aisa.one/apis/v1/kalshi/orderbooks?ticker={ticker}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Cross-Platform

Sports Markets

# Find equivalent markets across platforms for sports events
curl -X GET "https://api.aisa.one/apis/v1/matching-markets/sports" \
  -H "Authorization: Bearer $AISA_API_KEY"

Sports Markets by Date

# Find equivalent markets across platforms for a sport on a given date
# sport options: nfl, mlb, cfb, nba, nhl, cbb, pga, tennis
# date format: YYYY-MM-DD
curl -X GET "https://api.aisa.one/apis/v1/matching-markets/sports/nba?date=2025-08-16" \
  -H "Authorization: Bearer $AISA_API_KEY"

Sport abbreviations:

AbbreviationSport
nflFootball
mlbBaseball
cfbCollege Football
nbaBasketball
nhlHockey
cbbCollege Basketball
pgaGolf
tennisTennis

API Endpoints Reference

Polymarket Endpoints (GET)

EndpointDescriptionKey Params
/polymarket/marketsFind marketssearch, status, market_slug, limit
/polymarket/market-price/{token_id}Get market pricetoken_id, at_time
/polymarket/activityGet user activityuser, start_time, end_time
/polymarket/ordersGet trade historymarket_slug, token_id, user
/polymarket/orderbooksGet orderbook historytoken_id, start_time, end_time
/polymarket/candlesticks/{condition_id}Get candlestick datacondition_id, start_time, end_time, interval
/polymarket/positions/wallet/{wallet_address}Get wallet positionswallet_address, limit
/polymarket/walletGet wallet infoeoa or proxy, with_metrics
/polymarket/wallet/pnl/{wallet_address}Get wallet PnLwallet_address, granularity

Kalshi Endpoints (GET)

EndpointDescriptionKey Params
/kalshi/marketsFind marketssearch, status, market_ticker
/kalshi/market-price/{market_ticker}Get market pricemarket_ticker, at_time
/kalshi/tradesGet trade historyticker, start_time, end_time
/kalshi/orderbooksGet orderbook historyticker, start_time, end_time

Cross-Platform Endpoints (GET)

EndpointDescriptionKey Params
/matching-markets/sportsFind matching sports marketspolymarket_market_slug or kalshi_event_ticker
/matching-markets/sports/{sport}Find sports markets by datesport (nfl|mlb|cfb|nba|nhl|cbb|pga|tennis), date (YYYY-MM-DD)

Response Schemas

Markets Response

Returns markets array:

  • title (string) - Market question (e.g., "Will Trump nationalize elections?")
  • market_slug (string) - URL-friendly identifier
  • condition_id (string) - Blockchain condition ID
  • start_time / end_time (integer) - Unix timestamps
  • completed_time (integer|null) - Null if still open
  • tags (array) - Category tags (e.g., ["politics", "us election"])
  • volume_1_week / volume_1_month / volume_1_year / volume_total (number) - Trading volume in USD
  • side_a / side_b (object) - id and label (typically "Yes"/"No")
  • winning_side (object|null) - Null if unresolved
  • image (string) - Market thumbnail URL

Activity Response

Returns activities array:

  • title (string) - Market title
  • market_slug (string) - Market identifier
  • side (string) - Trade side: BUY, SELL, or MERGE
  • shares (integer) - Raw share amount
  • shares_normalized (number) - Human-readable share amount
  • price (number) - Trade price (0-1, represents probability)
  • timestamp (integer) - Unix timestamp of the trade
  • user (string) - Wallet address of the trader
  • tx_hash (string) - Blockchain transaction hash

Understanding Odds

  • Prices are shown as decimals (0.65 = 65% probability)
  • "Yes" price = probability market thinks event will happen
  • Higher volume = more confidence/liquidity
  • Prices change based on trading activity

Pricing

APICost
Prediction market read query$0.01

Every response includes usage.cost and usage.credits_remaining.

Get Started

  1. Sign up at aisa.one
  2. Get your API key
  3. Add credits (pay-as-you-go)
  4. Set environment variable: export AISA_API_KEY="your-key"

Full API Reference

See API Reference for complete endpoint documentation.

Comments

Loading comments...