Search, discover, and browse indexed markets across all platforms
Scanned 2/12/2026
Install via CLI
openskills install alsk1992/CloddsBot---
name: market-index
description: "Search, discover, and browse indexed markets across all platforms"
emoji: "🔍"
---
# 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
```typescript
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
```typescript
// 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
```typescript
// 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
```typescript
// 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
```typescript
// 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
```typescript
// 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
1. **Refresh regularly** - Markets change frequently
2. **Use filters** - Narrow down large result sets
3. **Check liquidity** - Not just volume
4. **Monitor new markets** - Opportunities in new listings
5. **Track closing dates** - Don't miss resolution
No comments yet. Be the first to comment!