Introduction
ProbIntel provides real-time prediction market intelligence through a simple, powerful API. Monitor significant activity, detect market movements, aggregate breaking news, and analyze sentiment across Polymarket, Kalshi, Opinion.trade, and all major prediction markets.
https://api.probintel.com
Key Features
- High-Volume Activity Tracking — Monitor 1000+ tracked wallets with historical performance data
- Market Movement Detection — Real-time odds shifts and volume patterns
- Liquidity Analysis — Order book depth and price differential tracking
- Sentiment Signals — Social and news correlation
- PredVol™ Index — Proprietary volatility measure for prediction markets
- News Terminal — Real-time breaking news and market-moving headlines
Quickstart
Get up and running in under 5 minutes.
1. Get Your API Key
Request access to receive your API credentials. We'll reach out within 24-48 hours.
2. Install the SDK
pip install probintel-sdk
3. Make Your First Request
from probintel import ProbIntel
client = ProbIntel(api_key="your_api_key")
# Get active markets
markets = client.markets.list()
# Get high-volume activity
whales = client.whales.activity(min_amount=10000)
# Stream real-time alerts
async for alert in client.stream():
print(alert)
Authentication
All API requests require authentication via an API key. Request access to receive your credentials.
API Key Authentication
Include your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Rate Limits
Rate limits vary by plan:
| Plan | Requests/Month | Rate Limit |
|---|---|---|
| Professional | 100,000 | 100 req/min |
| Enterprise | Unlimited | Custom |
Error Codes
| Code | Description |
|---|---|
401 |
Invalid or missing API key |
429 |
Rate limit exceeded |
500 |
Internal server error |
Markets API
List Markets
/markets
Returns a list of all active markets across Polymarket, Kalshi, and Opinion.trade.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
platform |
string | Filter by platform (polymarket, kalshi, Opinion.trade) |
category |
string | Filter by category (politics, crypto, sports) |
min_volume |
number | Minimum 24h volume in USD |
status |
string | active, closed, resolved (default: active) |
limit |
number | Max results (default: 50, max: 200) |
offset |
number | Pagination offset (default: 0) |
Example Request
curl https://api.probintel.com/markets?platform=polymarket&category=politics&limit=10 \
-H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
"markets": [
{
"id": "pm_abc123",
"platform": "polymarket",
"title": "Will Trump win 2024 election?",
"category": "politics",
"volume_24h": 24200000,
"liquidity": 8500000,
"current_odds": {
"yes": 0.52,
"no": 0.48
},
"created_at": "2024-01-15T10:30:00Z",
"ends_at": "2024-11-05T23:59:00Z"
}
],
"total": 142,
"limit": 10,
"offset": 0
}
Get Market Details
/markets/{id}
Returns detailed information about a specific market.
Get Market Odds
/markets/{id}/odds
Returns historical odds timeseries for a market.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
timeframe |
string | 1h, 24h, 7d, 30d, all (default: 24h) |
resolution |
string | 1m, 5m, 15m, 1h, 1d (default: 1h) |
Get Market Orderbook
/markets/{id}/orderbook
Returns current order book depth and liquidity analysis.
High-Volume Activity API
Get High-Volume Activity
/whales/activity
Returns recent high-value transactions from tracked wallets with historical performance data.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
min_amount |
number | Minimum transaction amount in USD (default: 10000) |
platform |
string | Filter by platform |
timeframe |
string | 1h, 24h, 7d (default: 24h) |
min_success_rate |
number | Minimum historical success rate (0-100) |
limit |
number | Max results (default: 50, max: 200) |
Example Response
{
"transactions": [
{
"id": "tx_xyz789",
"wallet_address": "0x742d...8f9a",
"wallet_success_rate": 68.5,
"market_id": "pm_abc123",
"market_title": "Will Trump win 2024 election?",
"side": "yes",
"amount_usd": 47000,
"odds_at_entry": 0.49,
"timestamp": "2025-01-28T15:23:45Z",
"platform": "polymarket"
}
],
"total": 23
}
Get Wallet Performance
/whales/wallet/{address}
Returns historical performance and statistics for a specific wallet.
Stream Activity Alerts
wss://stream.probintel.com/whales
Real-time WebSocket stream of high-volume transactions as they occur.
WebSocket Example
const ws = new WebSocket('wss://stream.probintel.com/whales');
ws.onopen = () => {
ws.send(JSON.stringify({
auth: 'YOUR_API_KEY',
min_amount: 25000,
platforms: ['polymarket', 'kalshi']
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('High-volume transaction:', data);
};
Signals API
Market Movements
/signals/movers
Returns markets with the largest odds shifts, volume changes, and momentum patterns.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
timeframe |
string | 1h, 6h, 24h (default: 24h) |
min_change |
number | Minimum odds change % (default: 5) |
platform |
string | Filter by platform |
category |
string | Filter by category |
limit |
number | Max results (default: 20, max: 100) |
Example Response
{
"movers": [
{
"market_id": "pm_abc123",
"title": "Will Trump win 2024 election?",
"platform": "polymarket",
"odds_change_24h": 12.3,
"volume_change_24h": 184.5,
"current_odds": {
"yes": 0.52,
"no": 0.48
},
"momentum_score": 87.2,
"last_updated": "2025-01-28T15:30:00Z"
}
]
}
Sentiment Analysis
/signals/sentiment
Returns social sentiment scores and news correlation analysis for markets.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market ID (optional) |
sources |
string | twitter, reddit, news, all (default: all) |
timeframe |
string | 1h, 24h, 7d (default: 24h) |
Example Response
{
"market_id": "pm_abc123",
"sentiment_score": 72.5,
"sentiment_trend": "bullish",
"mention_volume_24h": 15420,
"sources": {
"twitter": {
"score": 68.2,
"mentions": 12340
},
"reddit": {
"score": 75.8,
"mentions": 2140
},
"news": {
"score": 78.5,
"articles": 47
}
},
"top_keywords": ["election", "polls", "swing states"],
"divergence": 8.3
}
PredVol™ Volatility Index
/signals/predvol
Returns our proprietary volatility measure for prediction markets. Quantifies market uncertainty and rapid odds movements.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market ID (optional) |
timeframe |
string | 1h, 24h, 7d, 30d (default: 24h) |
platform |
string | Filter by platform (polymarket, kalshi, Opinion.trade) |
min_volatility |
number | Minimum volatility score (0-100) |
Example Response
{
"market_id": "pm_abc123",
"volatility_score": 64.2,
"volatility_rank": "high",
"odds_std_dev": 0.087,
"price_swings_24h": 12,
"max_swing_magnitude": 0.15,
"historical_comparison": {
"avg_7d": 52.3,
"avg_30d": 48.7
},
"timestamp": "2025-01-28T15:30:00Z"
}
Liquidity Depth
/signals/liquidity
Returns order book depth analysis and liquidity metrics.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market ID (required) |
depth_levels |
number | Number of price levels (default: 10) |
Price Differentials
/signals/arbitrage
Identifies cross-platform price differentials and market inefficiencies.
Example Response
{
"opportunities": [
{
"market_title": "Will BTC hit $100k by March?",
"platforms": {
"polymarket": { "yes": 0.42, "volume_24h": 850000 },
"kalshi": { "yes": 0.38, "volume_24h": 420000 }
},
"spread": 0.04,
"spread_pct": 10.5,
"detected_at": "2025-01-28T15:30:00Z"
}
]
}
Volume Spikes
/signals/volume-spikes
Detects unusual volume activity relative to historical averages.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
min_multiplier |
number | Minimum volume vs avg (default: 2x) |
timeframe |
string | 1h, 6h, 24h (default: 24h) |
platform |
string | Filter by platform |
Example Response
{
"spikes": [
{
"market_id": "pm_xyz789",
"title": "Fed rate decision March 2025",
"volume_24h": 2450000,
"avg_volume_7d": 380000,
"multiplier": 6.4,
"spike_start": "2025-01-28T12:00:00Z"
}
]
}
Smart Money Flow
/signals/smart-money
Aggregates positioning from wallets with >60% historical win rate.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market (optional) |
min_win_rate |
number | Min wallet win rate % (default: 60) |
timeframe |
string | 24h, 7d, 30d (default: 7d) |
Example Response
{
"market_id": "pm_abc123",
"smart_money_bias": "yes",
"confidence": 78.5,
"yes_volume": 1250000,
"no_volume": 340000,
"unique_wallets": 23,
"avg_wallet_win_rate": 67.2
}
Momentum Score
/signals/momentum
RSI-style momentum indicators adapted for prediction markets.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market (required) |
period |
number | Calculation period in hours (default: 24) |
Example Response
{
"market_id": "pm_abc123",
"momentum_score": 72.4,
"signal": "overbought",
"trend": "bullish",
"strength": "strong",
"reversal_probability": 0.35
}
Consensus Shifts
/signals/consensus
Detects when market consensus crosses key thresholds (50%, 75%, etc).
Example Response
{
"shifts": [
{
"market_id": "pm_abc123",
"title": "Will Trump win 2024?",
"previous_consensus": "no",
"new_consensus": "yes",
"threshold_crossed": 0.50,
"current_odds": 0.52,
"shift_time": "2025-01-28T14:22:00Z"
}
]
}
Time Decay
/signals/time-decay
Analyzes how odds typically change as events approach resolution.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market (required) |
Example Response
{
"market_id": "pm_abc123",
"days_to_resolution": 45,
"current_odds": 0.52,
"projected_odds": {
"7d": 0.54,
"14d": 0.57,
"30d": 0.61
},
"historical_pattern": "convergent",
"confidence": 0.72
}
Category Heatmap
/signals/heatmap
Returns activity heatmap across categories and platforms.
Example Response
{
"categories": {
"politics": {
"heat_score": 92,
"volume_24h": 45000000,
"active_markets": 234,
"trend": "rising"
},
"crypto": {
"heat_score": 67,
"volume_24h": 12000000,
"active_markets": 156,
"trend": "stable"
},
"sports": {
"heat_score": 45,
"volume_24h": 8500000,
"active_markets": 89,
"trend": "falling"
}
}
}
Custom Alerts
/signals/alerts
Create custom alert rules based on signal conditions.
Request Body
{
"name": "High volume whale alert",
"conditions": [
{ "field": "amount_usd", "operator": "gte", "value": 50000 },
{ "field": "wallet_win_rate", "operator": "gte", "value": 65 }
],
"channels": ["webhook", "email"],
"webhook_url": "https://your-app.com/webhook"
}
Example Response
{
"alert_id": "alert_abc123",
"status": "active",
"created_at": "2025-01-28T15:30:00Z"
}
News API
Breaking Headlines
/news/headlines
Returns real-time breaking news headlines and market-moving events with credibility scoring.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
category |
string | Filter by category (politics, crypto, sports, all) |
timeframe |
string | 1h, 6h, 24h (default: 24h) |
min_credibility |
number | Minimum source credibility score (0-100) |
min_impact |
string | low, medium, high (default: low) |
limit |
number | Max results (default: 50, max: 200) |
Example Response
{
"headlines": [
{
"id": "news_xyz456",
"title": "Federal Reserve announces surprise rate decision",
"summary": "Fed cuts rates by 0.5%, surprising markets...",
"source": "Reuters",
"credibility_score": 95,
"impact_level": "high",
"category": "crypto",
"related_markets": ["pm_abc123", "ks_def456"],
"url": "https://reuters.com/...",
"published_at": "2025-01-28T14:30:00Z",
"keywords": ["fed", "rates", "monetary policy"]
}
],
"total": 47
}
Event Timeline
/news/timeline
Returns chronological timeline of events for a specific market or topic.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
market_id |
string | Specific market ID (required) |
start_date |
string | Start date (ISO 8601 format) |
end_date |
string | End date (ISO 8601 format) |
News Alerts Stream
wss://stream.probintel.com/news
Real-time WebSocket stream for breaking news alerts.
WebSocket Example
const ws = new WebSocket('wss://stream.probintel.com/news');
ws.onopen = () => {
ws.send(JSON.stringify({
auth: 'YOUR_API_KEY',
categories: ['politics', 'crypto'],
min_impact: 'high',
min_credibility: 80
}));
};
ws.onmessage = (event) => {
const alert = JSON.parse(event.data);
console.log('Breaking news:', alert);
};
Source Credibility
/news/sources
Returns list of news sources with credibility scores and historical accuracy.
WebSockets
Real-time streaming data via WebSocket connections. All streams support authentication and filtering.
Connection
wss://stream.probintel.com
Authentication
Send your API key in the first message after connection:
const ws = new WebSocket('wss://stream.probintel.com/markets');
ws.onopen = () => {
ws.send(JSON.stringify({
auth: 'YOUR_API_KEY',
platforms: ['polymarket', 'kalshi'],
categories: ['politics', 'crypto']
}));
};
Available Streams
| Endpoint | Description |
|---|---|
/markets |
Real-time market updates and odds changes |
/whales |
High-volume transaction alerts |
/news |
Breaking news headlines |
/signals |
Market movers and volatility alerts |
Message Format
{
"type": "market_update",
"market_id": "pm_abc123",
"platform": "polymarket",
"odds": {
"yes": 0.52,
"no": 0.48
},
"volume_24h": 24200000,
"timestamp": "2025-01-28T15:30:00Z"
}
Heartbeat & Reconnection
Server sends heartbeat every 30 seconds. Implement reconnection logic for dropped connections:
let ws;
let reconnectAttempts = 0;
const maxReconnectAttempts = 5;
function connect() {
ws = new WebSocket('wss://stream.probintel.com/markets');
ws.onclose = () => {
if (reconnectAttempts < maxReconnectAttempts) {
setTimeout(() => {
reconnectAttempts++;
connect();
}, Math.min(1000 * Math.pow(2, reconnectAttempts), 30000));
}
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
if (data.type === 'heartbeat') {
ws.send(JSON.stringify({ type: 'pong' }));
}
};
}
Python SDK
Official Python client for ProbIntel API.
Installation
pip install probintel-sdk
Quick Start
from probintel import ProbIntel
# Initialize client
client = ProbIntel(api_key="YOUR_API_KEY")
# Get active markets
markets = client.markets.list(
platform="polymarket",
category="politics",
limit=10
)
# Get high-volume activity
whales = client.whales.activity(min_amount=10000)
# Stream real-time updates
async for update in client.stream_markets():
print(f"Market update: {update}")
# Get PredVol volatility index
predvol = client.signals.predvol(timeframe="24h")
# Get breaking news
news = client.news.headlines(
category="politics",
min_credibility=80
)
JavaScript SDK
Official JavaScript/TypeScript client for Node.js and browsers.
Installation
npm install @probintel/sdk
Quick Start
import { ProbIntel } from '@probintel/sdk';
// Initialize client
const client = new ProbIntel({
apiKey: 'YOUR_API_KEY'
});
// Get markets
const markets = await client.markets.list({
platform: 'polymarket',
category: 'politics',
limit: 10
});
// WebSocket streaming
const stream = client.stream('markets', {
platforms: ['polymarket', 'kalshi']
});
stream.on('update', (data) => {
console.log('Market update:', data);
});
// Get high-volume activity alerts
const whales = await client.whales.activity({
minAmount: 10000
});
// PredVol index
const volatility = await client.signals.predvol({
timeframe: '24h'
});
Go SDK
Official Go client for ProbIntel API.
Installation
go get github.com/probintel/probintel-go
Quick Start
package main
import (
"fmt"
"github.com/probintel/probintel-go"
)
func main() {
client := probintel.NewClient("YOUR_API_KEY")
// List markets
markets, err := client.Markets.List(&probintel.MarketListParams{
Platform: "polymarket",
Category: "politics",
Limit: 10,
})
// Get high-volume activity
whales, err := client.Whales.Activity(&probintel.WhaleParams{
MinAmount: 10000,
})
// Stream updates
stream := client.Stream.Markets()
for update := range stream.Updates {
fmt.Printf("Update: %+v\n", update)
}
}
Rust SDK
Official Rust client for ProbIntel API.
Installation
[dependencies]
probintel = "0.1"
Quick Start
use probintel::{ProbIntel, MarketListParams};
#[tokio::main]
async fn main() -> Result<(), Box> {
let client = ProbIntel::new("YOUR_API_KEY");
// List markets
let markets = client.markets().list(MarketListParams {
platform: Some("polymarket".to_string()),
category: Some("politics".to_string()),
limit: Some(10),
..Default::default()
}).await?;
// Get high-volume activity
let whales = client.whales().activity(10000).await?;
// Stream market updates
let mut stream = client.stream().markets().await?;
while let Some(update) = stream.next().await {
println!("Update: {:?}", update);
}
Ok(())
}