Claude
Skills
Sign in
Back

market-index

Included with Lifetime
$97 forever

Search, discover, and browse indexed markets across all platforms

General

What this skill does


# 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

Related in General