Market Index - Complete API Reference
Search, discover, and browse markets across all prediction market platforms with advanced filtering and categorization.
Chat Commands
Search
/index search "trump" # Search all indexed markets /index search "election" --platform poly # Search specific platform /index search "fed rate" --category finance # Filter by category /index search "crypto" --min-volume 10000 # Min volume filter /index search "sports" --active-only # Active markets only
Browse Categories
/index categories # List all categories /index category politics # Browse politics markets /index category crypto # Browse crypto markets /index category sports # Browse sports markets /index trending # Trending markets
Market Discovery
/index new # Newly created markets /index new --last 24h # Last 24 hours /index hot # High activity markets /index closing-soon # Markets ending soon
Index Management
/index update # Refresh market index /index update poly # Update specific platform /index stats # Index statistics /index status # Index health status
TypeScript API Reference
Create Market Index
import { createMarketIndex } from 'clodds/market-index';
const index = createMarketIndex({ platforms: ['polymarket', 'kalshi', 'manifold', 'betfair'],
// Auto-refresh autoRefresh: true, refreshIntervalMs: 300000, // 5 minutes
// Storage cachePath: './market-index.db', });
Search Markets
// Full-text search const results = await index.search('trump election', { platforms: ['polymarket', 'kalshi'], limit: 20, sortBy: 'volume', // 'volume' | 'relevance' | 'endDate' | 'created' });
for (const market of results) {
console.log([${market.platform}] ${market.question});
console.log( Category: ${market.category});
console.log( Volume: $${market.volume.toLocaleString()});
console.log( End: ${market.endDate});
}
// With filters const filtered = await index.search('', { category: 'politics', minVolume: 10000, activeOnly: true, endsBefore: '2024-12-31', });
Browse Categories
// Get all categories const categories = await index.getCategories();
for (const cat of categories) {
console.log(${cat.name}: ${cat.marketCount} markets);
}
// Get markets in category const politics = await index.getMarketsByCategory('politics', { limit: 50, sortBy: 'volume', });
Market Discovery
// Get new markets const newMarkets = await index.getNewMarkets({ since: Date.now() - 24 * 60 * 60 * 1000, // Last 24h limit: 20, });
// Get trending/hot markets const trending = await index.getTrendingMarkets({ period: '24h', limit: 10, });
for (const market of trending) {
console.log(${market.question});
console.log( Volume 24h: $${market.volume24h.toLocaleString()});
console.log( Volume change: ${market.volumeChange > 0 ? '+' : ''}${market.volumeChange}%);
}
// Markets closing soon const closingSoon = await index.getClosingSoon({ within: '48h', minVolume: 1000, });
Index Management
// Update index await index.update();
// Update specific platform await index.update('polymarket');
// Get index stats const stats = await index.getStats();
console.log(Total markets: ${stats.totalMarkets});
console.log(By platform:);
for (const [platform, count] of Object.entries(stats.byPlatform)) {
console.log( ${platform}: ${count});
}
console.log(By category:);
for (const [category, count] of Object.entries(stats.byCategory)) {
console.log( ${category}: ${count});
}
console.log(Last updated: ${stats.lastUpdated});
// Check status
const status = await index.getStatus();
console.log(Status: ${status.status});
console.log(Markets indexed: ${status.marketCount});
console.log(Index age: ${status.ageMinutes} minutes);
Get Single Market
// Get market details const market = await index.getMarket('polymarket', 'market-123');
console.log(Question: ${market.question});
console.log(Description: ${market.description});
console.log(Category: ${market.category});
console.log(Platform: ${market.platform});
console.log(Volume: $${market.volume.toLocaleString()});
console.log(Liquidity: $${market.liquidity.toLocaleString()});
console.log(Start: ${market.startDate});
console.log(End: ${market.endDate});
console.log(Outcomes: ${market.outcomes.join(', ')});
Categories
Standard categories across platforms:
Category Description
politics Elections, policy, government
crypto Cryptocurrency prices, events
finance Fed rates, stocks, economy
sports Games, tournaments, awards
entertainment Movies, TV, celebrities
science Research, space, climate
technology Tech companies, products
world International events
other Miscellaneous
Search Syntax
Syntax Example Description
Keywords trump election
Match any word
Exact phrase "federal reserve"
Match exact phrase
Exclude election -trump
Exclude word
Platform filter platform:poly
Specific platform
Category filter category:politics
Specific category
Sorting Options
Option Description
volume
Highest volume first
relevance
Best match first
endDate
Ending soonest first
created
Newest first
liquidity
Highest liquidity first
Best Practices
-
Refresh regularly - Markets change frequently
-
Use filters - Narrow down large result sets
-
Check liquidity - Not just volume
-
Monitor new markets - Opportunities in new listings
-
Track closing dates - Don't miss resolution