market-index
SKILL.md
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
Weekly Installs
5
Repository
alsk1992/cloddsbotGitHub Stars
59
First Seen
Feb 20, 2026
Security Audits
Installed on
opencode5
gemini-cli5
github-copilot5
codex5
kimi-cli5
amp5