# Prediction market opportunity scanner

**Use case:** 

Scan public Polymarket and Kalshi binary markets for qualifying theoretical opportunities suitable for scheduled downstream workflows.

## Input

```json
{
  "minPriceSpread": 1,
  "minEstimatedReturn": 1,
  "maxResults": 100,
  "minMatchConfidence": 70,
  "minLiquidity": 0,
  "minRecentVolume": 0,
  "feePercent": 0,
  "slippagePercent": 0
}
```

## Output

```json
{
  "opportunityId": {
    "label": "Opportunity ID",
    "format": "string"
  },
  "estimatedReturn": {
    "label": "Estimated return",
    "format": "number"
  },
  "estimatedProfitPerPayout": {
    "label": "Estimated profit per payout",
    "format": "number"
  },
  "rawReturn": {
    "label": "Raw return",
    "format": "number"
  },
  "profitPerPayout": {
    "label": "Raw profit per payout",
    "format": "number"
  },
  "totalCost": {
    "label": "Total cost",
    "format": "number"
  },
  "priceSpread": {
    "label": "Price spread",
    "format": "number"
  },
  "match.confidence": {
    "label": "Confidence",
    "format": "integer"
  },
  "polymarket.question": {
    "label": "Question",
    "format": "string"
  },
  "polymarket.yesPrice": {
    "label": "YES price",
    "format": "number"
  },
  "polymarket.noPrice": {
    "label": "NO price",
    "format": "number"
  },
  "polymarket.closeTime": {
    "label": "Close time",
    "format": "string"
  },
  "polymarket.liquidityUsd": {
    "label": "Liquidity",
    "format": "number"
  },
  "polymarket.recentVolumeUsd": {
    "label": "Recent volume",
    "format": "number"
  },
  "polymarket.url": {
    "label": "Market URL",
    "format": "string"
  },
  "kalshi.question": {
    "label": "Question",
    "format": "string"
  },
  "kalshi.yesPrice": {
    "label": "YES price",
    "format": "number"
  },
  "kalshi.noPrice": {
    "label": "NO price",
    "format": "number"
  },
  "kalshi.closeTime": {
    "label": "Close time",
    "format": "string"
  },
  "kalshi.liquidityUsd": {
    "label": "Liquidity",
    "format": "number"
  },
  "kalshi.recentVolumeUsd": {
    "label": "Recent volume",
    "format": "number"
  },
  "kalshi.url": {
    "label": "Market URL",
    "format": "string"
  },
  "legs": {
    "label": "Recommended legs",
    "format": "array"
  },
  "match.reasons": {
    "label": "Match reasons",
    "format": "array"
  },
  "match.warnings": {
    "label": "Review warnings",
    "format": "array"
  },
  "observedAt": {
    "label": "Observed at",
    "format": "string"
  }
}
```

## About this Actor

This example demonstrates how to use [Polymarket + Kalshi Arbitrage Finder](https://apify.com/maximedupre/prediction-market-arbitrage-finder) with a specific input configuration. Visit the [Actor detail page](https://apify.com/maximedupre/prediction-market-arbitrage-finder) to learn more, explore other use cases, and run it yourself.